case-kの備忘録

日々の備忘録です。データ分析とか基盤系に興味あります。

技術調査メモ:Dataflow_Pythonサポート状況について_20200917

社内でデータ基盤を作っており、データの加工のしやすさだったり、書きやすさだったりでPythonで書き直すことができるか調べてみました。
調べた限りでは使いたい機能は既にサポートされていそうです。

BigQueryのerror_recordテーブルへの出力

PythonでBQインサート時にエラーレコードを検知して書き込む方法。Google提供のテンプレートにも同様のメソッドがあることを確認。

https://beam.apache.org/documentation/patterns/bigqueryio/

Streaming Engine

Pythonで対応可能。

注: Streaming Engine には Python バージョン 2.16.0 以降の Apache Beam SDK が必要です。

https://beam.apache.org/releases/pydoc/2.23.0/apache_beam.io.gcp.bigquery.html#writing-data-to-bigquery

メッセージの重複排除

サポート済み

id_label: The attribute on incoming Pub/Sub messages to use as a unique record identifier. When specified, the value of this attribute (which can be any string that uniquely identifies the record) will be used for deduplication of messages. If not provided, we cannot guarantee that no duplicate data will be delivered on the Pub/Sub stream. In this case, deduplication of the stream will be strictly best effort.

https://beam.apache.org/releases/pydoc/2.23.0/_modules/apache_beam/io/gcp/pubsub.html

Dataflow AI Platform integration patterns

ログ収集基盤完了後だと思うが、RTMとかである程度使えそう。Dataflowからクエリ投げられるのでBigQuery MLを使っても良いかもしれない。

https://beam.apache.org/documentation/patterns/ai-platform/

アプローチ 1: AI Platform オンライン予測を使用した Dataflow

https://cloud.google.com/solutions/comparing-ml-model-predictions-using-cloud-dataflow-pipelines?hl=ja#streaming-approach-1-cloud-dataflow-with-cloud-ml-engine-online-prediction

BigQuery ML

https://cloud.google.com/bigquery-ml/docs/bigqueryml-ncaa?hl=ja#bqml_ncaa_tutorial_predict_outcomes-python

その他