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");
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しかし、私は、次の例外java.lang.IllegalArgumentExceptionが得た:elをエンコードすることができませんがコーダ「HBaseMutationCoder」で「ヌル」を返す。 – Amandeep
コードのどこかのように見えますが、Bigtableのライターは受け入れないnull値を生成しています。突然変異をログに記録して、そのコンポーネントまたはそのコンポーネントがnullかどうかを確認し、convertDataToRow関数がNULLを生成できないことを確認してください。 – danielm