0

データウェアハウスの要件としてBigQueryを検討しています。今、Googleのクラウド(クラウドSQLとBigTable)に自分のデータがあります。両方からデータを取得するためにREST APIを公開しました。今、これらのAPIからデータを取得し、ETLを実行してBigQueryにデータをロードしたいと思います。私は今、ETL(時給データのための仕事の日々の周波数)の2つのオプションを評価しています: -Google CloudのETL - (データフローvs.バッチバッチ) - > BigQuery

  1. 使用するJavaの春のバッチとはmicroserviceを作成し、デプロイメント環境としてKubernetesを使用しています。それは拡大縮小しますか? (ソースの新しいデータが利用可能にする場合増分ロード用)ETL

ため

  • 使用クラウドデータフローは、その後のBigQueryをロードするために(初期負荷用)のBigQueryバッチ挿入APIとストリーミング挿入APIを使用してスキーマを非正規化。

    あなたの意見をお知らせください。あなたのデータボリュームを知らず

  • 答えて

    1

    、特にどのくらいの新規または差分データあなたが一日あたりに持っているとどのようにあなたのREST APIとページングを行っている - ここでは

    あなたがの道を行けば...私の指導でありますSpring Batchを使用すると、あなた自身のシャーディングメカニズムを思い付く必要があるでしょう:Springサービスをインスタンス化するためにREST呼び出しをどのように分割しますか?あなたはKubの管理スペースにも入り、BQへのストリーミングAPIを使って再試行を処理する必要があります。

    データフロールートを下った場合は、REST APIを呼び出すための変換コードを記述し、ページングを実行してBQ向けのPCollectionにデータを移入する必要があります。最近Dataflowテンプレートを追加することで、N時間ごとにトリガーされるパイプラインを作成し、RESTコールをパラメータ化して= latestCallからデータを取り出すことができます。そこからBigQueryの書き込みを実行できます。私はバッチモードでこれを行うことをお勧めします。1)数百万行の行がある場合は2)管理するのが面倒ではない(非アクティブな時間に)。

    Cloud DataflowはBiqQueryの再試行ロジックを組み込んでおり、すべての入力と出力のコレクション間で一貫性を提供しているので、私の投票はこの場合のデータフローです。

    RESTコールの結果のレコード数はどのくらいですか?

    +0

    @Eric ...回答ありがとうございます...このAPIから、私は毎日集計する2番目のデータデータを取得できます。このAPIは各呼び出しで最大10000データポイントを与えることができます...それにもページ分割のサポートがあります。 (各測定値の1日の入力) - 365(日数なし)* 10,000(全エンティティ)* 1000(合計測定値) = 3650000000(約40億) – Abhay

    +0

    @abhay - 私は私の答えで立っている、私はDataflowに行くだろう。ワークフローの毎日の流れはテンプレートでうまく機能し、BY日にパーティションを分割してクエリを費用対効果の高いものにすることができます。 –

    +0

    @ Eric ..答えに感謝 – Abhay

    関連する問題