שדרוג ספריות לקוח

בדף הזה מוסבר איך לשדרג ספריית לקוח של Cloud Bigtable שהותקנה בעבר. אם אתם צריכים להתקין ספריית לקוח בפעם הראשונה, אתם יכולים לפעול לפי ההוראות לשפת התכנות המועדפת שלכם במאמר ספריות לקוח של Cloud Bigtable.

לקוח Bigtable ל-Java

השיטות הנוחות ב-BigtableTableAdminClient וב-BigtableInstanceAdminClient יצאו משימוש.

כדי לשדרג את הקוד, פועלים לפי השלבים הבאים:

  1. מפעילים את הלקוחות של גרסה 2, ‏ BigtableTableAdminClientV2 ו-BigtableInstanceAdminClientV2, באמצעות שיטת היצירה הסטטית create().
  2. מחליפים את אובייקטי הבקשה של העטיפה המותאמת אישית, כמו com.google.cloud.bigtable.admin.v2.models.CreateTableRequest, באובייקטי בקשה של פרוטוקול סטנדרטי, כמו com.google.bigtable.admin.v2.CreateTableRequest.
  3. מוודאים שאובייקטים חדשים של בקשות פרוטוקול buffer רגילות משתמשים בשמות משאבים מלאים.
  4. מתקשרים ישירות לשיטות של מאגר פרוטוקולים רגיל בלקוחות החדשים של גרסה 2.
  5. מחליפים את משתני ה-placeholder בקוד במזהים, כמו בדוגמה הבאה:

    // Existing code
    BigtableTableAdminClient adminClient = BigtableTableAdminClient.create(PROJECT_ID, INSTANCE_ID);
    adminClient.createTable(
        CreateTableRequest.of(TABLE_ID)
            .addFamily("cf1"));
    
    // New code
    import com.google.bigtable.admin.v2.ColumnFamily;
    import com.google.bigtable.admin.v2.CreateTableRequest;
    import com.google.bigtable.admin.v2.Table;
    import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClientV2;
    
    // ...
    
    try (BigtableTableAdminClientV2 adminClient = BigtableTableAdminClientV2.create()) {
      String parent = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID;
      CreateTableRequest request =
          CreateTableRequest.newBuilder()
              .setParent(parent)
              .setTableId(TABLE_ID)
              .setTable(Table.newBuilder()
                  .putColumnFamilies("cf1", ColumnFamily.getDefaultInstance())
                  .build())
              .build();
      adminClient.createTable(request);
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של פרויקט Bigtable
    • INSTANCE_ID: המזהה של מופע Bigtable
    • TABLE_ID: המזהה של הטבלה החדשה

לקוח HBase ל-Java

אם אתם משדרגים מגרסה 1.0 ואילך של HBase client for Java, השינוי היחיד שאתם צריכים לבצע הוא עדכון של מספר הגרסה בהגדרה. אין צורך לעדכן את הקוד.

אם אתם משדרגים מלקוחות HBase בגרסה pre-1.0, אתם צריכים לבצע את השלבים הבאים:

  1. מעדכנים את יחסי התלות כדי להשתמש בספריית הלקוח החדשה ביותר ומסירים ארטיפקטים שכבר לא צריך:

    • מסירים את ארטיפקטים bigtable-hbase-1.0, bigtable-hbase-1.1 ו-bigtable-hbase-1.2 מהתלות, אם הם קיימים.

    • מסירים את netty-tcnative-boringssl-static מהתלות אלא אם חלק אחר באפליקציה דורש זאת.

    • מוסיפים את אחד מהארטיפקטים הבאים לתלות, בהתאם לתרחיש השימוש. גרסאות 2.x כוללות לקוח HBase אסינכרוני שגרסאות 1.x לא כוללות.

      • bigtable-hbase-1.x או bigtable-hbase-2.x: לשימוש באפליקציות עצמאיות שבהן אתם שולטים ביחסי התלות.
      • bigtable-hbase-1.x-hadoop או bigtable-hbase-2.x-hadoop: לשימוש בסביבות Hadoop.
      • bigtable-hbase-1.x-shaded או bigtable-hbase-2.x-shaded: לשימוש בסביבות שאינן Hadoop שנדרשות בהן גרסאות קודמות של רכיבים כמו protobuf או Guava.
  2. מעדכנים את הגדרות התצורה לחיבור אל Bigtable.

    • אם הגדרות התצורה בקוד או בקובץ hbase-site.xml כוללות ערך ל-hbase.client.connection.impl, צריך לשנות את הערך ל-com.google.cloud.bigtable.hbase1_x.BigtableConnection.

    • אם אתם משתמשים ישירות במחלקה BigtableConnection, אתם צריכים לעדכן את הקוד כך שישתמש במחלקה com.google.cloud.bigtable.hbase1_x.BigtableConnection במקום זאת.

    • אם משתמשים בקובץ hbase-site.xml כדי להתחבר ל-Bigtable:

      • מוסיפים את המאפיין google.bigtable.instance.id אם הוא לא מופיע. מגדירים את ערך הנכס למזהה המופע.
      • מסירים את המאפיין google.bigtable.cluster.name אם הוא קיים.
      • מסירים את המאפיין google.bigtable.zone.name אם הוא קיים.
    • אם אתם מתחברים ל-Bigtable באמצעות קריאה ל-BigtableConfiguration.connect(), אתם צריכים לעדכן את הקוד כמו בדוגמה הבאה:

    // Existing code
    BigtableConfiguration.connect(PROJECT_ID, ZONE_ID, CLUSTER_ID);
    
    // New code
    BigtableConfiguration.connect(PROJECT_ID, INSTANCE_ID);
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: המזהה של הפרויקט.
    • ZONE_ID: האזור שבו נמצא האשכול.
    • CLUSTER_ID: המזהה של האשכול.
    • INSTANCE_ID: המזהה של המכונה.
  3. פורסים מחדש את האפליקציה בכל הסביבות, כולל פיתוח מקומי, בדיקה, Staging וייצור.

רשימת הגרסאות של לקוח HBase ל-Java זמינה בהיסטוריית הגרסאות ב-GitHub.

המשך

ביוני 2016, לקוח Go שינה את הדרך להתחבר ל-Bigtable. במקום לציין מזהה אשכול ואזור, מציינים מזהה מכונה. אפשר למצוא את מזהה המופע במסוףGoogle Cloud .

כדי להוריד את ספריית הלקוח, אפשר להיכנס אל מאגר הקוד ב-GitHub.

מעדכנים את הקוד כמו בדוגמה הבאה:

  // Existing code
  adminClient, err := bigtable.NewAdminClient(ctx, PROJECT_ID, ZONE, CLUSTER_ID)
  client, err := bigtable.NewClient(ctx, PROJECT_ID, ZONE, CLUSTER_ID)

  // New code
  adminClient, err := bigtable.NewAdminClient(ctx, PROJECT_ID, INSTANCE_ID)
  client, err := bigtable.NewClient(ctx, PROJECT_ID, INSTANCE_ID)

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: המזהה של הפרויקט.
  • ZONE: האזור שבו נמצא האשכול.
  • CLUSTER_ID: המזהה של האשכול שאליו רוצים להתחבר.
  • INSTANCE_ID: המזהה של המופע שאליו רוצים להתחבר.

רשימת הגרסאות של ספריית הלקוח Go זמינה בהיסטוריית הגרסאות ב-GitHub.

המאמרים הבאים