シーケンス ファイルからのデータのインポート

このページでは、Hadoop シーケンス ファイル一式を Cloud Bigtable にインポートする方法について説明します。テーブルを HBase または Cloud Bigtable からエクスポートして、Hadoop シーケンス ファイルを作成する必要があります。

Cloud Dataflow テンプレートを使用して Cloud Storage からシーケンス ファイルをインポートすることもできます。

CSV データをインポートする場合は、CSV ファイルの Cloud Bigtable テーブルへのインポートをご覧ください。

始める前に

テーブルを Cloud Bigtable にインポートする前に、以下のタスクを完了しておく必要があります。

  1. HBase または Cloud Bigtable からテーブルをエクスポートします。

    HBase と Cloud Bigtable のどちらからテーブルをエクスポートした場合でも、インポート処理は同じです。

  2. 元のテーブルで使用するストレージ量を確認し、Cloud Bigtable クラスタにストレージ量に対して十分なノードがあることを確認します。

    必要なノード数の詳細については、ノードあたりのストレージ使用率をご覧ください。

新規 Cloud Bigtable テーブルの作成

データをインポートするには、エクスポートされたテーブルと同じ列ファミリーがある新しい空白のテーブルを作成する必要があります。

新規テーブルを作成するには:

  1. cbt ツールをインストールします。

    gcloud components update
    gcloud components install cbt
    
  2. createtable コマンドを使用して、テーブルを作成します。

    cbt -instance [INSTANCE_ID] createtable [TABLE_NAME]
    
  3. 必要な回数 createfamily コマンドを使用して、すべての列ファミリーを作成します。

    cbt -instance [INSTANCE_ID] createfamily [TABLE_NAME] [FAMILY_NAME]
    

    たとえば、テーブル名が my-table で、列ファミリー cf1cf2 を追加する場合、次のコマンドを実行します。

    cbt -instance my-instance createfamily my-new-table cf1
    cbt -instance my-instance createfamily my-new-table cf2
    

テーブルのインポート

Cloud Bigtable には、Cloud Dataflow を使用して一連の Hadoop シーケンス ファイルからテーブルをインポートするユーティティがあります。

テーブルをインポートするには:

  1. 必要な依存関係をすべて含むインポート / エクスポート JAR ファイルをダウンロードします。

    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. 次のコマンドを実行してテーブルをインポートします。大かっこの値は適切な値で置き換えます。[TEMP_PATH] には、まだ存在しない Cloud Storage パス、またはテーブルをエクスポートしたときに使用したパスを指定します。

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

    たとえば、Cloud Bigtable インスタンスに 3 つのノードがある場合、次のようになります。

    java -jar bigtable-beam-import-1.10.0-shaded.jar import \
        --runner=dataflow \
        --project=my-project \
        --bigtableInstanceId=my-instance \
        --bigtableTableId=my-new-table \
        --sourcePattern='gs://my-export-bucket/my-table/part-*' \
        --tempLocation=gs://my-export-bucket/jar-temp \
        --maxNumWorkers=9 \
        --zone=us-east1-c
    

    インポート ジョブが Hadoop シーケンス ファイルを Cloud Bigtable テーブルにインポートします。Google Cloud Platform Console を使用すると、実行中のインポート ジョブをモニタリングできます。

    ジョブが完了すると、コンソールに Job finished with status DONE というメッセージが表示されます。

インポート処理の結果の確認

cbt ツールを使用してテーブルの行数を調べると、テーブルがインポートされたことを確認できます。

cbt -instance [INSTANCE_ID] count [TABLE_NAME]

このコマンドは、テーブル内の行の総数を出力します。行の総数が、エクスポートしたテーブルの行数と一致していることを確認します。

次のステップ

HBase または Cloud Bigtable からシーケンス ファイルをエクスポートする方法について学習する

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Bigtable ドキュメント