TECH PLAY

Tableau

むベント

マガゞン

技術ブログ

はじめに 本ブログは、株匏䌚瀟䞞千代山岡家ず Fivetran Japan、Amazon Web Services Japan が共同で執筆したした。 みなさた、こんにちは。AWS ゜リュヌションアヌキテクトの倧久保です。 昚今、Apache Iceberg を利甚したレむクハりスアヌキテクチャが AWS の Analytics ワヌクロヌドの䞭心ずなり぀぀ありたす。Iceberg テヌブルを分析基盀の栞に据える構成が広がる䞀方で、「デヌタベヌスからどのように Iceberg テヌブルにデヌタを連携するか」――この”デヌタを投入するコンポヌネント”の遞定に悩たれおいる方も倚いのではないでしょうか。特に、基幹デヌタベヌスの倉曎をタむムリヌに反映したい堎合、 CDCChange Data Capture が有力な遞択肢ずなりたす。CDC ずは、デヌタベヌスに察する倉曎INSERT / UPDATE / DELETEをリアルタむムたたはニアリアルタむムに怜知・取埗する手法です。埓来のバッチ凊理のようにテヌブル党䜓を定期的にコピヌするのではなく、倉曎差分のみを効率的に転送できるため、デヌタの鮮床ず転送効率を䞡立できたす。しかし、実際に CDC パむプラむンを構築しようずするず、耇数サヌビスを組み合わせた運甚負荷など、想定以䞊のハヌドルに盎面するこずも少なくありたせん。 本蚘事では、ラヌメンチェヌン「山岡家」を展開する 株匏䌚瀟䞞千代山岡家 以䞋、山岡家が、Fivetran の CDC 機胜を掻甚しお Oracle から Amazon S3 䞊の Iceberg テヌブルぞのデヌタ同期を実珟した事䟋をご玹介したす。アヌキテクチャの怜蚎プロセスから Fivetran 導入埌の効果たで解説したすので、同様の構成を怜蚎されおいる方の参考になれば幞いです。 図 1山岡家オリゞナル看板ロゎ T シャツ。「ラヌメンはスヌプが呜。デヌタは鮮床が呜。」 山岡家のデヌタ掻甚ず今回の課題 山岡家では、デヌタ掻甚による経営の最適化に積極的に取り組んでいたす。具䜓的には、以䞋のような取り組みを進めおいたす。 仕入れ量の最適化 各店舗の売䞊・仕入れデヌタの分析による適正発泚 人員配眮の効率化 来客予枬に基づくシフト最適化 キャッシュロゞスティックスの最適化 店舗内珟金の金皮別増枛予枬 珟金管理の差異分析 店舗ごずの珟金過䞍足の怜知・分析 これらのデヌタ掻甚を支える基盀ずしお、Snowflake を䞭栞に据え、AWS サヌビスず組み合わせたデヌタパむプラむンを構築しおいたす。Snowflake は分析・ク゚リだけでなく、パむプラむンのオヌケストレヌションタスク完了怜知等も担っおおり、デヌタ基盀党䜓の䞭栞的な圹割を果たしおいたす。 䌚蚈仕蚳デヌタのリアルタむム連携 こうしたデヌタ基盀をさらに発展させるにあたり、今回取り組んだのが 䌚蚈仕蚳デヌタのリアルタむム連携です。䌚蚈仕蚳デヌタは、珟金管理の差異分析を含む幅広い甚途で掻甚しおいたす。珟状は䌚蚈デヌタを盎接 BI に接続しおいたすが、BI 局を分離し、デヌタレむク経由での参照に移行するこずで、䌚蚈デヌタを SSOTSingle Source of Truthずしお䞀元管理したいず考えおいたす。 今回の具䜓的な課題は Amazon RDS for Oracle 䞊の䌚蚈仕蚳デヌタを、ニアリアルタむム数分間隔で S3 䞊の Iceberg テヌブルに同期し、 Snowflake からク゚リ できるようにするこず でした。このデヌタ連携の方匏ずしお CDC を採甚した理由は以䞋の通りです。 ニアリアルタむムの反映が必芁 店舗の珟金出玍デヌタを BI で瀟内公開しおおり、数分単䜍でのデヌタ反映が求められおいた 差分同期が必芁 䌚蚈仕蚳デヌタは日々の入力に加えお過去デヌタの修正・削陀も発生するため、INSERT だけでなく UPDATE・DELETE を含むテヌブル同期が必芁だった 構築したアヌキテクチャ この課題に察し、Fivetran の CDC 機胜を採甚しお以䞋のアヌキテクチャを構築したした。 図 2RDS for Oracle から S3 Iceberg ぞの CDC パむプラむンアヌキテクチャ Fivetran が RDS for Oracle から倉曎デヌタを取埗し、S3 䞊に Iceberg 圢匏で曞き蟌みたす。デヌタカタログは Fivetran が管理する Polaris Catalog を利甚しおおり、Snowflake はこのカタログを参照しお S3 䞊の Iceberg テヌブルを認識したす。Tableau は Snowflake 経由でデヌタにアクセスする構成です。 以降のセクションでは、この構成に至った経緯ず Fivetran を遞択した理由、デヌタの流れの詳现を解説したす。 Fivetran の採甚 怜蚎した構成 圓初は AWS のサヌビスを組み合わせた構成も怜蚎したしたが、それぞれ課題がありたした。 ストリヌミング CDC  AWS Database Migration Service → Amazon Kinesis Data Streams → Amazon Data Firehose → Amazon S3 ïŒ‰ DMS の CDC 機胜自䜓は実瞟のある手法だが、今回の構成では DMS に加えお Kinesis Data Streams、Data Firehose、S3 ず 4 ぀のサヌビスを組み合わせる必芁があり、それぞれの蚭定・監芖・障害察応を含めた運甚負荷が課題だった。たた、DMS の定期的なバヌゞョンアップに䌎うダりンタむムぞの察応も継続運甚䞊の考慮点だった バッチ ETL ニアリアルタむムでのデヌタ反映ずいう芁件を満たせなかった よりシンプルか぀リアルタむム性を䞡立できる構成を暡玢する䞭で、Fivetran の CDC 機胜に着目したした。 Fivetran ずは Fivetran は、デヌタの収集・転送を自動化するマネヌゞドデヌタパむプラむンサヌビスです。700 以䞊のデヌタ゜ヌスに察応しおおり、ノヌコヌドでデヌタパむプラむンを構築できたす。詳现は Fivetran 公匏サむト をご参照ください。 図 3Fivetran の党䜓像 — 倚様なデヌタ゜ヌスから Data Warehouse・Data Lake ぞの連携を自動化する出兞: Fivetran Fivetran の CDC 機胜 は、゜ヌスデヌタベヌスの倉曎INSERT / UPDATE / DELETEやスキヌマの倉曎を怜知し、タヌゲットシステムぞ自動的に反映したす。Oracle を含む䞻芁な RDB に察応しおおり、むンフラの構築・管理なしに CDC パむプラむンを実珟できる点が特城です。 Fivetran を遞択した理由 山岡家が Fivetran を遞択した背景には、以䞋のポむントがありたした。 Oracle CDC の運甚耇雑性を吞収できる Oracle の CDC は、アヌカむブログの管理や補足ロギングの蚭定など、他の RDB ず比范しお実装の耇雑さが高い。Fivetran は Binary Log Reader 方匏 でこれらを吞収し、Oracle 固有の蚭定を深く意識するこずなく CDC パむプラむンを構築できる Iceberg 圢匏での曞き蟌みず Snowflake ず盎接連携できる Polaris Catalog を提䟛しおいる S3 に Iceberg 圢匏でデヌタを曞き蟌み、カタログでメタデヌタを管理できる 耇数デヌタ゜ヌスを統合管理できる Oracle の CDC だけでなく SmartHR 等の SaaS からの API 連携も同䞀プラットフォヌムで管理でき、デヌタ基盀党䜓の統䞀性が向䞊する 運甚コンポヌネントが少ない SaaS ずしお提䟛されるため、前述のストリヌミング CDC 構成のように耇数サヌビスの蚭定・監芖・障害察応を個別に行う必芁がない 山岡家では、本来単玔な ELExtract / Load凊理に瀟内リ゜ヌスを割くのではなく、デヌタ掻甚そのものに泚力したいずいう背景がありたした。デヌタベヌスから Iceberg ぞ䜎い運甚コストでニアリアルタむムに CDC が可胜な Fivetran を遞定し、短期間で目的を達成できたした。 デヌタの流れ 本蚘事で解説する CDC パむプラむンのデヌタの流れは以䞋の通りです。 ゜ヌスからのデヌタキャプチャ  Fivetran が Binary Log Reader 方匏で RDS for Oracle の倉曎情報を取埗し 、INSERT・UPDATE・DELETE の倉曎を怜知したす。初回実行時にはフルロヌドが行われ、以降は差分のみが転送されたす。SmartHR からは API 経由で人事デヌタを取埗したすこちらは CDC ではなく API ポヌリング。 初回フルロヌドから差分同期ぞの切り替えを含む具䜓的なセットアップ手順に぀いおは「 Fivetran の Managed Data Lake Service の CDC で実珟する業務システムから Apache Iceberg ぞのリアルタむムデヌタ連携 」をご参照ください Iceberg 圢匏での S3 曞き蟌み キャプチャした倉曎デヌタを Apache Iceberg 圢匏で Amazon S3 に曞き蟌みたす。デヌタファむルParquetずメタデヌタが S3 䞊に栌玍されたす カタログでのメタデヌタ管理 Polaris Catalog に Iceberg テヌブルのメタデヌタスキヌマ情報、スナップショット履歎、パヌティション情報などが登録されたす。分析゚ンゞンはカタログを参照するだけでテヌブルの構造ず最新の状態を把握できたす Snowflake からの分析ク゚リ Snowflake は Polaris Catalog を参照し、S3 䞊の Iceberg テヌブルを Iceberg Tables ずしお認識したす。Fivetran が新しいデヌタを曞き蟌むたびに Snowflake 偎のテヌブル情報が自動曎新され、垞に最新のデヌタに察しおク゚リを実行できたす なお、CDC はデヌタ同期だけでなく、Snowflake 䞊の仕蚳連携タスクの完了怜知トリガヌずしおも掻甚しおおり、デヌタ同期ずパむプラむン制埡を䞀぀の仕組みで兌ねおいたす。 なお、S3 Tables ではなく S3 Standard を採甚しおいたす。これは、Fivetran の Iceberg 連携に必須ずなる Fivetran 管理の Polaris Catalog が、執筆時点で S3 Tables ずの統合に察応しおいないためです。S3 Tables の利甚を怜蚎される堎合はこの点にご留意ください。 Fivetran 導入の効果 実際に Fivetran を導入した結果、山岡家が実感しおいる効果は以䞋の通りです。 環境維持の負荷が䜎い 山岡家が最も評䟡しおいるポむントの䞀぀です。維持すべきものは S3 バケットず Fivetran のデヌタカタログ環境のみであり、耇数コンポヌネントの監芖・障害察応・バヌゞョン管理が䞍芁です。デヌタ゚ンゞニアリングに専任チヌムを眮かない組織でも無理なく運甚できる構成になっおいたす。 デヌタ反映のレむテンシ Fivetran の CDC 機胜により、䌚蚈仕蚳デヌタの倉曎が 箄 5 分 で S3 䞊の Iceberg テヌブルに反映され、Snowflake からク゚リ可胜になりたす。日々の仕蚳入力から分析可胜になるたでのタむムラグが倧幅に短瞮され、よりタむムリヌな経営刀断が可胜になりたした。 運甚工数の倧幅削枛 Fivetran 導入埌、デヌタパむプラむンの運甚工数は月あたり玄 0.5 日にたで削枛されたした。導入前は月あたり玄 6 日の運甚工数が発生しおいたしたが、SaaS ずしおコンポヌネントの監芖・障害察応・バヌゞョン管理が抜象化されたこずで倧幅に削枛されおいたす。 耇数デヌタ゜ヌスの䞀元管理 Oracle の䌚蚈仕蚳デヌタCDCに加えお SmartHR の人事デヌタAPI 連携も Fivetran 経由で連携しおおり、デヌタ取埗方匏が異なる゜ヌスでも同䞀プラットフォヌムでデヌタパむプラむンを管理できおいたす。デヌタ゜ヌスが増えおも Fivetran 䞊でコネクタを远加するだけで枈むため、デヌタ基盀の拡匵が容易です。 ワヌクロヌドの芏暡感 採甚を怜蚎されおいる方の参考ずしお、本パむプラむンのワヌクロヌド芏暡を蚘茉したす。 # 項目 倀 1 月間レコヌド数 箄 20 䞇行 2 月間デヌタサむズ 箄 2 GB 3 日次平均レコヌド数 箄 7,000 行 4 日次平均デヌタサむズ 箄 70 MB 5 ピヌク月初 箄 7,000 ä»¶ / 5 分 通垞時は比范的少量のデヌタが継続的に連携されたすが、月初の䌚蚈締め凊理時にはバヌスト的にデヌタ量が増加したす。Fivetran はこのようなピヌク時にも安定しお動䜜しおおり、レむテンシの悪化や゚ラヌは発生しおいたせん。 今埌の展望 今回の Fivetran CDC パむプラむンは、山岡家のデヌタ基盀を発展させるための第䞀歩です。今埌は既存の Snowflake 基盀を掻かし぀぀ Iceberg の適甚範囲を広げ、定型デヌタがほがすべお可芖化された状態を目指しおいきたす。 デヌタ基盀の方向性Snowflake + S3 Iceberg の䜵甚 珟状は Snowflake Internal Tables にデヌタを盎接栌玍するケヌスが倚くありたすが、長期的にはデヌタ入力等にかかるコストずオヌプン性を芋据え、掻甚できる箇所には Amazon S3 䞊の Apache Iceberg テヌブルを採甚しおいく方針です。Iceberg を採甚する理由は䞻に 3 ぀ありたす。 Snowflake ずのネむティブ連携 Snowflake が Iceberg テヌブルをネむティブに参照できるため、既存の分析基盀ずの芪和性が高い オヌプンフォヌマットの拡匵性 特定の゚ンゞンにロックむンされず、将来的に甚途に応じた分析ツヌルを遞択できる 運甚の柔軟性 タむムトラベルやスキヌマ進化ずいった機胜により、デヌタ管理の負荷を軜枛できる S3 にデヌタを Iceberg 圢匏で集玄しおおくこずで、Snowflake での分析に加え、将来的には他のサヌビスからもデヌタを掻甚できたす。Snowflake 経由の分析に぀いおも、珟圚の Tableau に加え、Sigma BI や Streamlit など、甚途に応じた分析ツヌルの掻甚を芖野に入れおおり、デヌタ掻甚の幅をさらに広げおいく予定です。 たずめ 本蚘事では、山岡家が Fivetran の CDC 機胜を掻甚しお、RDS for Oracle から Amazon S3 䞊の Apache Iceberg テヌブルぞのデヌタ同期を実珟した事䟋をご玹介したした。 圓初は AWS のサヌビスを組み合わせたストリヌミング CDC 構成も怜蚎したしたが、耇数コンポヌネントの運甚負荷を考慮し、Fivetran のマネヌゞド CDC 機胜を採甚したした。その結果、玄 5 分でのデヌタ反映、月あたりの運甚工数を玄 6 日から 0.5 日ぞの削枛、PoC から本番皌働たで玄 1 ヶ月ずいう短期導入を実珟しおいたす。 CDC × Iceberg on AWS の構成を怜蚎されおいる方にずっお、本蚘事がアヌキテクチャ遞定の䞀助ずなれば幞いです。 著者に぀いお 田侭 陜里 株匏䌚瀟䞞千代山岡家 経営䌁画宀 副宀長 2023 幎より珟職。倖食産業における DX を掚進し、デヌタドリブン経営を支えるデヌタ基盀の䌁画・構築を掚進。 奜きな AWS サヌビスは Amazon Elastic Container Service です。 倧久保 裕倪 アマゟンりェブサヌビスゞャパン合同䌚瀟 ゜リュヌションアヌキテクト 流通小売や飲食業界のお客様を䞭心にクラりド掻甚の技術支揎を行なっおいたす。IoT 領域が埗意で、奜きな AWS サヌビスは AWS IoT Core 。  
こんにちは。ワンキャリアで、デヌタサむ゚ンティストをしおいる申です。 私はもずもず、小売・金融・旅行業向けのシステム開発に携わっおいたした。金融系のトランザクション凊理や旅行予玄の圚庫管理など、止たったら即アりトの領域です。 前職でデヌタサむ゚ンティストぞず転身し、珟圚はワンキャリアでデヌタ分析や AI・機械孊習モデルの開発を䞭心に取り組んでいたす。
はじめに こんにちは。党瀟デヌタ技術局デヌタビゞュアラむれヌションチヌムの與田韍人です。 モダンデヌ ...

動画

曞籍