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

שדרוג של ספריות הלקוח של Cloud Bigtable ל-Java,‏ HBase ל-Java ו-Go מאפשר לכם להפסיק להשתמש בשיטות מיושנות ולעבור לשיטות עדכניות של חיבור ודפוסי מאגר אחסון לפרוטוקולים. אם אתם צריכים להתקין ספריית לקוח בפעם הראשונה, אתם יכולים לפעול לפי ההוראות לשפת התכנות המועדפת שלכם במאמר ספריות לקוח של Bigtable.

לקוח Bigtable ל-Java

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

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

  1. יצירת אובייקט של הלקוחות מגרסה 2, ‏ BigtableTableAdminClientV2 ו-BigtableInstanceAdminClientV2, באמצעות שיטת הפקטורי הסטטית create().
  2. מחליפים את אובייקטי הבקשה של ה-wrapper המותאמת אישית, כמו com.google.cloud.bigtable.admin.v2.models.CreateTableRequest, באובייקטי בקשה של מאגר אחסון לפרוטוקולים רגיל, כמו com.google.bigtable.admin.v2.CreateTableRequest.
  3. חשוב לוודא שאובייקטים חדשים של בקשות מאגר אחסון לפרוטוקולים סטנדרטיות משתמשים בשמות משאבים מלאים.
  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. במקום לציין מזהה אשכול ואזור, מציינים מזהה מכונה. כדי למצוא את מזהה המופע, נכנסים למסוףCloud de Confiance .

כדי להוריד את ספריית הלקוח, אפשר להיכנס אל מאגר המקורות של הקוד ב-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.

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