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

生データを最速で取り込むチャレンジ ~LayerXデータ基盤成長物語 part1~ / Bui...

Civitaspo
December 12, 2023

生データを最速で取り込むチャレンジ ~LayerXデータ基盤成長物語 part1~ / Building a data infrastructure that captures raw data at the fastest

『Data Engineering Study #22 5社のデータエンジニアが振り返る2023』の登壇資料。
https://forkwell.connpass.com/event/299633/

カジュアル面談はこちら:
全員アナリストを実現する Data Enablingを支えるData Engineeringについて語らいましょう〜〜!!!
https://jobs.layerx.co.jp/2c0258fa624f4a25975bc59767a81225

Civitaspo

December 12, 2023
Tweet

More Decks by Civitaspo

Other Decks in Technology

Transcript

  1. 2 © 2023 LayerX Inc. 所属 バクラク事業部 Platform Engineering部 DevOpsグループ

    マネージャー 兼 バクラク事業部 Platform Engineering部 Product Securtyグループ 兼 バクラク事業部 機械学習・データ部 データグループ ⇐ 今日の人格 兼 CTO室 SNS 𝕏 civitaspo   civitaspo その他 Embulk Core Team 福岡在住なので 福岡のデータコミュニティが あったら誘ってほしいです!! @civitaspo (きびたすぽ、きびちゃん)
  2. 3 © 2023 LayerX Inc. バクラクシリーズラインナップ 稟議・支払申請・経費精算 仕訳・支払処理効率化 法人カードの発行・管理 帳票保存・ストレージ

    帳票発行 * 経費精算のSlack連携は申請内容の通知のみ ・AIが領収書を5秒でデータ化 ・スマホアプリとSlack連携あり ・領収書の重複申請などミス防止機能 ・AIが請求書を5秒でデータ化 ・仕訳・振込データを自動作成 ・稟議から会計までスムーズに連携 ・年会費無料で何枚でも発行可 ・インボイス制度・電帳法対応 ・すべての決済で1%以上の還元 ・AIが書類を5秒でデータ化 ・あらゆる書類の電子保管に対応 ・電子取引・スキャナ保存に完全対応 ・帳票の一括作成も個別作成も自由自在 ・帳票の作成・稟議・送付・保存を一本化 ・レイアウトや項目のカスタマイズも可能
  3. 4 © 2023 LayerX Inc. 経理業務を一元管理し、債権・債務に関連する業務を一気通貫でなめらかに連携。経理業務の工数を大幅削減。 「バクラク」 の特徴 会計システム インターネット

    バンキング (EBシステム) 法人カード 支払管理 経費精算 管理 請求書 支払管理 ワークフローツールの統一 経理ツールの統一 会計システム・ EBシステム連携 一 気 通 貫 で 連 携 出張申請 取引先申請 押印申請 契約申請 購買申請 法人カード 利用申請 請求書支払申請 経費精算申請 請求書 発行管理 保管場所の統一 領収書 保管 受領請求書 保管 発行帳票 保管 国税関係書類 保管
  4. 6 © 2023 LayerX Inc. このLTの内容をざっくり 今年のチャレンジのうち「生データを最速で取り込む基盤づくり」について話します • バクラクはサービス提供基盤としてAWSを利用しています。 •

    一方、分析基盤としてBigQueryを利用しています。 • そのため、AWSからBigQueryへのデータ転送が必要です。 • 今回は、このデータ転送をリアルタイム・ニアリアルタイムで実現する手法をいくつか紹介します。
  5. 7 © 2023 LayerX Inc. このLTの内容をざっくり 「え〜、いまさらデータ転送の話?」「生データの取り込みなんてコモディティ化してるのでは?」 • そうですね。僕もEmbulkに関わってきたので、それなりにコモディティ化しているのを知っています。 •

    一方、リアルタイム・ニアリアルタイムにデータ転送するのは、まだ難易度が高い状態だと思っています。 • また、セキュリティを意識する(OIDC接続の徹底、踏み台サーバーを許さない、etc...)と選択肢が更に狭 くなると思います。 • SaaSを利用した場合にかかるコストも無視できません。僕は予算が決まっているならBIツールに投資した ほうが事業をドライブできると考えている派閥です。(※ trocco は良い製品ですよ!)
  6. 8 © 2023 LayerX Inc. このLTの内容をざっくり 想定視聴者と得られるもの • バクラクと同様にサービス提供環境をAWS、データ基盤はGCPという構成の会社に所属している方が、 データ転送に関して、良いインサイトが得られると良いなと思っています。

    Disclaimer • まだ開発途中の情報も含みます。(発表に間に合わなかった!)開発途中の情報は開発途中とわかるように 表現します。運用後どうなったかは別の機会に発表するのでご期待ください! • 実際に資料作って発表練習したら全然時間足りなくてだいぶ削りました。各パートの内容が想像以上に あっさりしてるように感じるかもしれません。僕も発表し足りません。ので、X(Twitter) でもDMでもなん でも良いのでお話しましょう!
  7. 10 © 2023 LayerX Inc. バクラクデータ基盤の歴史 2022年4月時点 • 本番Aurora MySQLのRead

    ReplicaにRedashから直接接続する牧歌的分析環境 Amazon Aurora
  8. 11 © 2023 LayerX Inc. バクラクデータ基盤の歴史 2023年4月時点 • Aurora MySQLのデータ/SalesforceのデータをEmbulkでBigQueryへ(≠リアルタイム)

    • ELTツールとしてdbtを導入し、BigQuery上で集計 • BIツールとしてLooker Studioを導入 Amazon Aurora
  9. 12 © 2023 LayerX Inc. バクラクデータ基盤の歴史 2023年12月時点 • データソースとしてEventBridgeとS3が追加。経路も複雑に。 •

    Aurora MySQLのCDCはDebezium with Beam on Managed Flinkで実装中。 •   は開発中を意味しています。 今日話す部分
  10. 14 © 2023 LayerX Inc. EventBridge➧…➧Cloud Pub/Sub➧BigQueryパターン どんな構成? • EventBridgeに格納されたイベントをフィルターしてSQSに格納したのち、EventBridge

    Pipesを利 用してCloud Pub/Subへ格納。その後、BigQuery Subscriptionを使ってBigQueryへデータ格納 するパターン。 • この構成の最大の特徴はComputing Resourceが不要なこと。 • バクラクではマイクロサービス間のイベントのやりとりでEventBridgeを利用しており、分析関連イベント に関しても同様にEventBridgeに格納してもらっている。 EventBridge Pipes States.Base64Encodeで Cloud Pub/Sub用のBodyを作る BigQuery Subscription Amazon Simple Queue Service (Amazon SQS) Amazon EventBridge AWS Fargate AWS Step Functions Google Cloud Pub/Sub Google Cloud BigQuery
  11. 15 © 2023 LayerX Inc. EventBridge➧…➧Cloud Pub/Sub➧BigQueryパターン 何が嬉しいの? • EventBridgeは様々なSaaSと連携できます

    ◦ https://aws.amazon.com/eventbridge/integrations/ ◦ SalesforceやKARTEなど、パートナーとして登録されているサービスはSaaSの変更イベントを受 け取って分析ができるようになります。 • 自前でイベントを受け付けるエンドポイントを書くのも容易です。 ◦ AWSがいくつかテンプレートを用意してくれています。 ◦ https://aws.amazon.com/about-aws/whats-new/2022/08/amazon-eventbridg e-supports-receiving-events-github-stripe-twilio-using-webhooks/ ◦ GitHubのイベントを受け付けてFour Keys分析したいといった要望にもWebhookを受け付ける エンドポイントをテンプレートに沿って実装するだけで対応できます。
  12. 16 © 2023 LayerX Inc. EventBridge➧…➧Cloud Pub/Sub➧BigQueryパターン 注意点 • Step

    Functionsの States.Base64Encode は10,000文字までしか処理できない制約があるため、 大きなデータを取り扱う場合はAWS Lambda等で処理する必要があります。 ◦ https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-langu age-intrinsic-functions.html#asl-intrsc-func-data-encode-decode
  13. 18 © 2023 LayerX Inc. S3➧…➧GCS➧…➧Cloud Workflows➧BigQueryパターン どんな構成? • S3のPutObject

    EventをSQSに通知し、Cloud Storage Transfer ServiceのEvent-driven data transfer機能を用いて、GCSへオブジェクトをコピー。その後、GCSのfinalized Eventを EventArcで取得し、Cloud WorkflowsでBigQuery Load Jobを実行するパターン。 • この構成もComputing Resourceが不要。 • バクラクではDatadogのLog ArchiveをS3に保存しており、Datadogに格納されたあらゆるログを BigQueryに格納するために利用している。 s3:PutObject Event Watch google.cloud.storage .object.v1.finalized Trigger Load Job Object取得 Load後削除 GCP to AWSのOIDC接続 Google Cloud BigQuery Amazon Simple Storage Service (Amazon S3) Amazon Simple Queue Service (Amazon SQS) Google Cloud Storage Transfer Service Google Cloud Storage Eventarc Google Cloud Workflows
  14. 19 © 2023 LayerX Inc. S3➧…➧GCS➧…➧Cloud Workflows➧BigQueryパターン 何が嬉しいの? • S3にオブジェクトをPutしてから1分以内にBigQueryへデータ格納、を非常に安く実現できる。

    ◦ この構成でコストがかかるのはS3のインターネットアウトとCloud Workflowsのみ ▪ S3のインターネットアウトはどんな手法をとってもかかるので割愛 ▪ Cloud Workflowsに関しては1オブジェクトあたり3Steps程度必要なので、仮に10万オブ ジェクトを転送したとしても(10万×3Steps/1000Steps)×$0.01 = $3 ▪ https://cloud.google.com/workflows/pricing#price-tables ▪ 一時的にGCSにオブジェクトが置かれるがBigQuery Load後に消すのでコストはほぼ誤差。
  15. 20 © 2023 LayerX Inc. S3➧…➧GCS➧…➧Cloud Workflows➧BigQueryパターン 注意点 • BigQueryのLoad

    Jobは一日あたりの上限値が存在します。その上限を超えないようなデータ転送設計 が必要です。 ◦ https://cloud.google.com/bigquery/quotas#load_jobs
  16. 22 © 2023 LayerX Inc. Debezium with Beam on Managed

    Flinkパターン どんな構成? • Apache BeamのI/O ConectorとしてDebeziumを使用し、BigQueryにデータ格納するパターン。 • Debezium ServerやKafka/Kafka Connectの運用が不要。 • 代わりにAmazon Managed Service for Apache Flinkの運用が必要になる。 • Apache Beamの資産を使えるため、BigQueryへのデータ転送以外の用途にも利用可能。 • Under Construction   なので詳細割愛します!!! Amazon Managed Service for Apache Flink Amazon Aurora Google Cloud BigQuery
  17. 24 © 2023 LayerX Inc. 俺たちの戦いはこれからだ! もっと事業貢献できるデータ組織にしたい!助けてください! • 弊社では「全員アナリスト」として活躍できるデータ基盤を作ろうと頑張っています •

    まだまだやりたいことがたくさんあって、特にアナリティクスエンジニア・アナリストは大募集中です • ホントに大募集中です • 少しでも興味を持たれた方はぜひカジュアル面談にいらしてください! ◦ 全員アナリストを実現する Data Enablingを支えるData Engineeringについて語らいましょ う〜〜!!! ◦ X(Twitter) DMで連絡してもらっても構いません! • よろしくお願いします!!!!!