Exporta datos como archivos de secuencias

En esta página, se explica cómo exportar una tabla desde HBase o Cloud Bigtable como una serie de archivos de secuencias de Hadoop.

Si migras desde HBase, puedes exportar tu tabla desde HBase y, luego, importarla en Cloud Bigtable.

Si deseas crear una copia de seguridad de una tabla de Cloud Bigtable o moverla, puedes exportarla desde Cloud Bigtable y, luego, importarla en Cloud Bigtable.

También puedes usar una plantilla de Cloud Dataflow para exportar archivos de secuencia a Cloud Storage.

Exportar una tabla desde HBase

Cómo identificar las familias de columnas de una tabla

Cuando exportes una tabla, debes registrar una lista de las familias de columnas que esta use. Necesitarás esta información cuando importes la tabla a Cloud Bigtable.

Para obtener una lista de las familias de columnas de tu tabla, sigue estos pasos:

  1. Accede a tu servidor de HBase.
  2. Inicia la shell de HBase:

    hbase shell
    
  3. Usa el comando describe para obtener información sobre la tabla que deseas exportar:

    describe '[TABLE_NAME]'
    

    Con el comando describe, se imprime información detallada sobre las familias de columnas de la tabla.

Cómo exportar archivos de secuencias

El servidor HBase proporciona una utilidad que exporta una tabla como una serie de archivos de secuencias de Hadoop. Consulta la documentación de HBase para obtener instrucciones sobre cómo usar esta herramienta.

Para reducir el tiempo de transferencia, puedes exportar archivos de secuencias comprimidos desde HBase. El importador de Cloud Bigtable es compatible con archivos de secuencias comprimidos y descomprimidos. Sin embargo, Cloud Bigtable no es compatible con los archivos de secuencias exportados con SnappyCodec. Usa GzipCodec en su lugar.

Copia archivos de secuencias a Cloud Storage

Usa la herramienta gsutil para copiar los archivos de secuencias exportados en un depósito de Cloud Storage y reemplazar los valores entre corchetes con los valores que correspondan:

gsutil cp [SEQUENCE_FILES] gs://[BUCKET_PATH]

Consulta la documentación de gsutil para obtener más información sobre el comando gsutil cp.

Exporta una tabla desde Cloud Bigtable

Cloud Bigtable ofrece una herramienta que usa un trabajo de Cloud Dataflow para exportar una tabla como una serie de archivos de secuencias de Hadoop. El trabajo de Cloud Dataflow se ejecuta en Google Cloud Platform.

Cómo identificar las familias de columnas de una tabla

Cuando exportes una tabla, debes registrar una lista de las familias de columnas que esta use. Necesitarás esta información cuando importes la tabla.

Para obtener una lista de las familias de columnas de tu tabla, sigue estos pasos:

  1. Instala la herramienta cbt:

    gcloud components update
    gcloud components install cbt
    
  2. Usa el comando ls para obtener una lista de familias de columnas de la tabla que deseas exportar:

    cbt -instance [INSTANCE_ID] ls [TABLE_NAME]
    

Cómo crear un depósito de Cloud Storage

Puedes almacenar la tabla exportada en un depósito existente de Cloud Storage o en uno nuevo. Para crear un depósito nuevo, usa la herramienta gsutil y reemplaza [BUCKET_NAME] con el valor que corresponda:

gsutil mb gs://[BUCKET_NAME]

Consulta la documentación de gsutil para obtener más información sobre el comando gsutil mb.

Exporta archivos de secuencias

Para exportar la tabla como una serie de archivos de secuencias, sigue estos pasos:

  1. Descarga el archivo JAR de importación o exportación, que incluye todas las dependencias necesarias:

    curl -f -O http://repo1.maven.org/maven2/com/google/cloud/bigtable/bigtable-beam-import/1.10.0/bigtable-beam-import-1.10.0-shaded.jar
    
  2. Ejecuta el siguiente comando para exportar la tabla y reemplaza los valores entre corchetes con los valores que corresponda. Asegúrate de que [EXPORT_PATH] y [TEMP_PATH] sean rutas que aún no existan en el depósito de Cloud Storage:

    java -jar bigtable-beam-import-1.10.0-shaded.jar export \
        --runner=dataflow \
        --project=[PROJECT_ID] \
        --bigtableInstanceId=[INSTANCE_ID] \
        --bigtableTableId=[TABLE_ID] \
        --destinationPath=gs://[BUCKET_NAME]/[EXPORT_PATH] \
        --tempLocation=gs://[BUCKET_NAME]/[TEMP_PATH] \
        --maxNumWorkers=[10x_NUMBER_OF_NODES] \
        --zone=[DATAFLOW_JOB_ZONE]
    

    Por ejemplo, si los clústeres de tu instancia de Cloud Bigtable tienen 3 nodos:

    java -jar bigtable-beam-import-1.10.0-shaded.jar export \
        --runner=dataflow \
        --project=my-project \
        --bigtableInstanceId=my-instance \
        --bigtableTableId=my-table \
        --destinationPath=gs://my-export-bucket/my-table \
        --tempLocation=gs://my-export-bucket/jar-temp \
        --maxNumWorkers=30 \
        --zone=us-east1-c
    

    El trabajo de exportación almacena tu tabla en el depósito de Cloud Storage como un conjunto de archivos de secuencias de Hadoop. Puedes usar Google Cloud Platform Console para supervisar el trabajo de exportación mientras se ejecuta.

    Cuando el trabajo se complete, se imprime el mensaje Job finished with status DONE en Console.

¿Qué sigue?

Más información sobre cómo importar archivos de secuencias a Cloud Bigtable.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Bigtable