Como exportar dados como arquivos sequenciais

Esta página explica como exportar uma tabela do HBase ou do Cloud Bigtable como uma série de arquivos sequenciais do Hadoop.

Caso esteja migrando do HBase, exporte a tabela dele e importe-a para o Cloud Bigtable.

Caso esteja fazendo backup ou migrando uma tabela do Cloud Bigtable, exporte essa tabela e importe-a novamente para o Cloud Bigtable.

Você também pode usar um modelo do Cloud Dataflow para exportar arquivos sequenciais para o Cloud Storage.

Como exportar uma tabela do HBase

Como identificar os grupos de colunas da tabela

Ao exportar uma tabela, é necessário registrar a lista de grupos de colunas que a tabela usa. Você precisará dessa informação para importar a tabela para o Cloud Bigtable.

Para ver uma lista de grupos de colunas na tabela:

  1. Faça login no servidor do HBase.
  2. Inicie o shell do HBase:

    hbase shell
    
  3. Use o comando describe para receber informações sobre a tabela que você planeja exportar.

    describe '[TABLE_NAME]'
    

    O comando describe imprime informações detalhadas sobre os grupos de colunas da tabela.

Como exportar arquivos sequenciais

O servidor do HBase fornece um utilitário para exportar a tabela como uma série de arquivos sequenciais do Hadoop. Consulte a documentação do HBase para instruções sobre como usar esse utilitário.

Para reduzir o tempo de transferência, você pode exportar arquivos de sequência compactados do HBase. O importador do Cloud Bigtable aceita arquivos sequenciais compactados e descompactados. No entanto, o Cloud Bigtable não aceita arquivos sequenciais exportados usando SnappyCodec. Como alternativa, use GzipCodec.

Como copiar arquivos sequenciais para o Cloud Storage

Use a ferramenta gsutil para copiar os arquivos sequenciais exportados para um intervalo do Cloud Storage, substituindo o que está entre colchetes pelos valores adequados:

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

Consulte a documentação de gsutil para saber mais sobre o comando gsutil cp.

Como exportar uma tabela do Cloud Bigtable

Está disponível no Cloud Bigtable um utilitário que usa um job do Cloud Dataflow para exportar a tabela como uma série de arquivos sequenciais do Hadoop. O job do Cloud Dataflow é executado no Google Cloud Platform.

Como identificar os grupos de colunas da tabela

Ao exportar uma tabela, é necessário registrar a lista de grupos de colunas que a tabela usa. Você precisará dessa informação para importar a tabela.

Para ver uma lista de grupos de colunas na tabela:

  1. Instale a ferramenta cbt:

    gcloud components update
    gcloud components install cbt
    
  2. Use o comando ls para receber uma lista de grupos de colunas da tabela que você planeja exportar:

    cbt -instance [INSTANCE_ID] ls [TABLE_NAME]
    

Criação de um intervalo do Cloud Storage

É possível armazenar a tabela exportada em um intervalo do Cloud Storage existente ou novo. Para criar um novo intervalo, use a ferramenta gsutil, substituindo [BUCKET_NAME] pelo valor adequado:

gsutil mb gs://[BUCKET_NAME]

Consulte a documentação de gsutil para saber mais sobre o comando gsutil mb.

Como exportar arquivos sequenciais

Para exportar a tabela como uma série de arquivos sequenciais:

  1. Faça download do arquivo JAR de importação/exportação, que inclui todas as dependências obrigatórias:

    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. Execute o comando abaixo para exportar a tabela, substituindo o que está entre colchetes pelos valores apropriados. Certifique-se de que [EXPORT_PATH] e [TEMP_PATH] sejam caminhos que ainda não existem no intervalo do 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 exemplo, caso os clusters na instância do Cloud Bigtable tenham três nodes:

    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
    

    A tarefa de exportação salva a tabela no intervalo do Cloud Storage como um grupo de arquivos sequenciais do Hadoop. Use o console do Google Cloud Platform para monitorar a tarefa de exportação durante a execução.

    A mensagem Job finished with status DONE será exibida no console quando a tarefa for concluída.

Próximas etapas

Saiba como importar arquivos sequenciais para o Cloud Bigtable.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Bigtable