Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Creating a New Stream Data Pipeline on Google C...

Creating a New Stream Data Pipeline on Google Cloud Platform 20190719

大量のログデータを、より効率的に、より柔軟に扱うためのパイプラインをGCP使って作った話

Avatar for Shu Suzuki

Shu Suzuki

July 19, 2019
Tweet

More Decks by Shu Suzuki

Other Decks in Programming

Transcript

  1. 3 - Mercari Data Platform - Stream/Batch Pipeline Developer -

    Scala, Python, Java, Go, etc - Apache Beam, Kafka, Storm, Hive, Hadoop… Shu Suzuki @shoe116
  2. 4 指定された区間(data sources - data sinks)で データパイプライン? 信頼性のあるデータ処理やデータ転送を 安定的に提供する仕組み 2.

    3. 1. 今回は「本番環境のlogを、DWH等の分析環境に届ける」ことを 主眼にしたデータパイプラインについて話します。
  3. 9 メッセージ志向ミドルウェア(G製Kafka) 使っているGCPのサービス Beamで記述できる処理エンジン(G製Flink) Cloud Dataflow Cloud Pub/Sub Cloud Storage

    マルチリージョナルなオブジェクトストレージ BigQuery 大量データ向けのG製DWH、GCSからも読める。
  4. 14 DataHub Avro format {"type": "record", "name": "DataHubAvro", "namespace": "com.mercari.data.model.v3",

    "fields": [{ {"name": "uuid", "type": "string"}, {"name": "timestamp", "type": { "type": "long", "logicalType": "timestamp-micros" }}, {"name": "topic_name", "type": "string"}, {"name": "service_name", "type": "string"}, {"name": "log_name", "type": "string"}, {"name": "content_type", "type": ["null", "string"], "default": null}, {"name": "user_agent", "type": ["null", "string"], "default": null}, {"name": "payload","type": "bytes"} ]} } パイプラインの共通フォーマット Avroを採用した理由 - AvroはそのままGCSに書ける - AvroはそのままBQに書ける - Avro fileはBQから直接読める DataHub Avro に含まれるもの - パイプラインのdestination - Schemaの引き当て情報 - データ本体
  5. 16 Raw DataHubからデータを読む Raw DataHub -> Structured DataHub のETL DataHub

    Avroのpayloadのbyte[]を、 構造化されたAvroに変換する T L E 全レコードをStructured DataHubにwrite