Upgrade delle librerie client in corso…

L'upgrade delle librerie client Cloud Bigtable per Java, HBase per Java e Go ti consente di eseguire la migrazione dai metodi obsoleti e adottare gli attuali pattern di connessione e buffer di protocollo. Se devi installare una libreria client per la prima volta, segui le istruzioni per il tuo linguaggio di programmazione preferito in Librerie client Bigtable.

Client Bigtable per Java

I metodi pratici in BigtableTableAdminClient e BigtableInstanceAdminClient sono obsoleti.

Per eseguire l'upgrade del codice:

  1. Crea un'istanza dei client V2, BigtableTableAdminClientV2 e BigtableInstanceAdminClientV2, utilizzando il metodo statico di creazione create().
  2. Sostituisci gli oggetti richiesta wrapper personalizzati, ad esempio com.google.cloud.bigtable.admin.v2.models.CreateTableRequest, con oggetti richiesta buffer di protocollo standard, ad esempio com.google.bigtable.admin.v2.CreateTableRequest.
  3. Assicurati che i nuovi oggetti richiesta del buffer di protocollo standard utilizzino nomi di risorse completamente qualificati.
  4. Chiama direttamente i metodi standard del buffer di protocollo sui nuovi client V2.
  5. Sostituisci le variabili segnaposto nel codice con gli identificatori, come mostrato nell'esempio seguente:

    // 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);
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'identificatore del tuo progetto Bigtable
    • INSTANCE_ID: l'identificatore dell'istanza Bigtable
    • TABLE_ID: l'identificatore della nuova tabella

Client HBase per Java

Se esegui l'upgrade dalla versione 1.0 o successive del client HBase per Java, l'unica modifica da apportare è l'aggiornamento del numero di versione nella configurazione. Non è necessario aggiornare il codice.

Se esegui l'upgrade da client HBase precedenti alla versione 1.0, completa i seguenti passaggi:

  1. Aggiorna le dipendenze per utilizzare la libreria client più recente e rimuovere gli artefatti che non ti servono più:

    • Rimuovi gli artefatti bigtable-hbase-1.0, bigtable-hbase-1.1 e bigtable-hbase-1.2 dalle dipendenze, se presenti.

    • Rimuovi netty-tcnative-boringssl-static dalle dipendenze a meno che non sia richiesto da un'altra parte dell'applicazione.

    • Aggiungi uno dei seguenti artefatti alle dipendenze, a seconda del caso d'uso. Le versioni 2.x includono un client asincrono HBase che le versioni 1.x non hanno.

      • bigtable-hbase-1.x o bigtable-hbase-2.x: utilizza per applicazioni autonome in cui hai il controllo delle dipendenze.
      • bigtable-hbase-1.x-hadoop o bigtable-hbase-2.x-hadoop: utilizza in ambienti Hadoop.
      • bigtable-hbase-1.x-shaded o bigtable-hbase-2.x-shaded: utilizza in ambienti diversi da Hadoop che richiedono versioni precedenti di componenti come protobuf o Guava.
  2. Aggiorna le impostazioni di configurazione per la connessione a Bigtable.

    • Se le impostazioni di configurazione nel codice o in un file hbase-site.xml includono un valore per hbase.client.connection.impl, modifica il valore in com.google.cloud.bigtable.hbase1_x.BigtableConnection.

    • Se utilizzi direttamente la classe BigtableConnection, aggiorna il codice in modo da utilizzare com.google.cloud.bigtable.hbase1_x.BigtableConnection.

    • Se utilizzi un file hbase-site.xml per connetterti a Bigtable:

      • Aggiungi la proprietà google.bigtable.instance.id se non è presente. Imposta il valore della proprietà sull'ID istanza.
      • Rimuovi la proprietà google.bigtable.cluster.name se è presente.
      • Rimuovi la proprietà google.bigtable.zone.name se presente.
    • Se ti connetti a Bigtable chiamando BigtableConfiguration.connect(), aggiorna il codice come mostrato nell'esempio seguente:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'identificatore del progetto.
    • ZONE_ID: la zona in cui si trova il cluster.
    • CLUSTER_ID: l'identificatore del cluster.
    • INSTANCE_ID: l'identificatore dell'istanza.
  3. Esegui nuovamente il deployment dell'applicazione in tutti gli ambienti, inclusi sviluppo locale, test, gestione temporanea e produzione.

Per un elenco delle release del client HBase per Java, consulta la cronologia delle release su GitHub.

Vai

A giugno 2016, il client Go ha modificato il modo di connettersi a Bigtable. Anziché specificare un ID cluster e una zona, specifica un ID istanza. Puoi trovare l'ID istanza visitando la consoleGoogle Cloud .

Per scaricare la libreria client, visita il repository di codice su GitHub.

Aggiorna il codice come mostrato nell'esempio seguente:

  // 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)

Sostituisci quanto segue:

  • PROJECT_ID: l'identificatore del progetto.
  • ZONE: la zona in cui si trova il cluster.
  • CLUSTER_ID: l'identificatore del cluster a cui vuoi connetterti.
  • INSTANCE_ID: l'identificatore dell'istanza a cui vuoi connetterti.

Per un elenco delle release della libreria client Go, consulta la cronologia delle release su GitHub.

Passaggi successivi