2

Google Cloud Bigtableにデータを入力する必要があり、データのソースはGoogle BigQueryになります。Google BigQueryからGoogle Cloud Bigtableにデータを読み込む方法

練習として、私はread the data from BigQueryになり、別の練習としてはwrite data into Bigtable as wellにできるようになりました。

これらの2つの操作を1つのGoogle Cloud Dataflowジョブに組み込む必要があります。どんな例も大きな助けになるでしょう。を参照することができ、将来的にBigtableのためにBigQueryのデータを変換したい人のため

Pipeline p = Pipeline.create(options); 
.apply(BigQueryIO.Read.from("some_table")) 
.apply(ParDo.of(new DoFn<TableRow, Row>() { 
    public void processElement(ProcessContext c) { 
    Row output = somehowConvertYourDataToARow(c.element()); 
    c.output(output); 
    } 
    }) 
.apply(BigtableIO.Write.withTableId("some_other_table"); 

答えて

3

あなただけのこれらの例に示すようにトランスフォームを使用することができ、追加リンク以下

参考:私は、次のコードを実行しようとしたhttps://github.com/GoogleCloudPlatform/cloud-bigtable-examples/blob/master/java/dataflow-connector-examples/src/main/java/com/google/cloud/bigtable/dataflow/example/BigQueryBigtableTransfer.java

+0

CloudBigtableIO.initializeForWrite(p); \t \t p.apply(BigQueryIO.Read.fromQuery(getQuery())) \t \t .apply(ParDo.of(new DoFn() { \t \t \t public void processElement(ProcessContext c) { \t \t \t Mutation output = convertDataToRow(c.element()); \t \t \t c.output(output); \t \t \t } \t \t \t })) \t \t \t .apply(CloudBigtableIO.writeToTable(config)); Amandeep

+0

しかし、私は、次の例外java.lang.IllegalArgumentExceptionが得た:elをエンコードすることができませんがコーダ「HBaseMutationCoder」で「ヌル」を返す。 – Amandeep

+0

コードのどこかのように見えますが、Bigtableのライターは受け入れないnull値を生成しています。突然変異をログに記録して、そのコンポーネントまたはそのコンポーネントがnullかどうかを確認し、convertDataToRow関数がNULLを生成できないことを確認してください。 – danielm

0

:あなたはたとえば、間に必要なロジックを全て

関連する問題