効率的なデータ フローのための ETL システムの構築: データベース + サーバーレス ファンクション コンピューティングのベスト プラクティス

作者|柳下

概要

企業の規模とデータ量が増大するにつれて、データの価値がますます重要視されています。データの変更と更新はより頻繁かつ複雑になっているため、これらの変更をタイムリーに取得して処理することが重要になります。この需要を満たすために、データベース CDC (Change Data Capture) テクノロジーが登場しました。ただし、ETL アーキテクチャの観点から見ると、CDC はデータ抽出 (Extract) 機能のみを満たします。完全な ETL アーキテクチャと効率的かつリアルタイムのデータ統合、処理、同期を実現するために、Alibaba Cloud サーバーレス ファンクション コンピューティング (FC) とデータベース CDC テクノロジーが緊密に統合されています。企業がデータの抽出、変換、読み込みを実現するための完全な ETL アーキテクチャを構築できるように支援します。CDC をイベント ドリブン データ ソースとして使用し、データの変更をサーバーレス機能の実行をトリガーするイベントとして使用することにより、リアルタイムのデータ処理と同期が実現され、ビジネス上の意思決定と分析の精度と効率の向上に役立ちます。

アーキテクチャの紹介

以下では、ETL モデルから始めて、FC + CDC が ETL モデルに準拠するビジネスにどのように適応するかを徐々に説明します。

ETLモデル

ビッグ データの分野では、データ フローと処理サービスを実行するシステム アーキテクチャを ETL モデルに抽象化できます。ETL モデルは、抽出、変換、読み込みの 3 つの主要なステップで構成されます。

  1. 抽出: データ ソースからデータを抽出します。データ ソースには、さまざまなデータ ストレージ システムを使用できます。例: データベース、ファイル システム、メッセージ キュー、API インターフェイスなど。
  2. 変換: データは、一連の変換操作を通じて、ターゲット システムが受け入れられる形式と構造に変換されます。例: データ クリーニング、データ マージ、データ エンリッチメントなど。
  3. ロード: 変換されたデータをターゲット サービスにロードします。対象となるサービスは、データ ウェアハウス、データ レイク、BI システムなどです。

このアーキテクチャは、企業がデータを管理および利用してデータ主導の意思決定とビジネス変革を実現するのに役立つように広く使用されています。スクリーンショット 2023-10-27 4.56.16.png

CDC + ETL

CDC と Extract(E) はデータ処理の 2 つの概念であり、前者の目的はデータベース内の変化するデータをキャプチャすることであり、後者の目的はデータ ソースから特定のデータ セットを抽出することです。しかし、ビジネスそのものに話を戻すと、どちらもビジネスに必要なデータをデータソースから取得するため、CDC と ETL の組み合わせも必然的な結果になります。この 2 つを組み合わせることで、より完全で効率的なデータ処理プロセスを構築し、リアルタイムの増分データ抽出と処理を実現できます。従来の定期的なバッチ抽出方法と比較して、CDC はデータの変更をよりタイムリーにキャプチャできるため、ターゲット システム内のデータがよりリアルタイムで正確になります。画像.png

アリババクラウド DTS + FC

Alibaba Cloud データベース製品システムでは、データ送信サービス DTS (Data Transmission Service) が CDC の役割を果たし、リアルタイムのデータ ストリーミング送信サービスとして、上流のデータベースの変更情報を取得し、その変更を下流にプッシュすることができます。サービス。ダウンストリーム サービスが Function Compute の場合、Function Compute のカスタム コード機能を使用して、データのカスタム処理 (T) と配信 (L) を実行できます。以下の図に示すように、FC と DTS の緊密な統合により完全な ETL システムが構築され、ビジネス システムの迅速な構築に役立ちます。スクリーンショット 2023-10-31 午後 2.53.55.png

詳しい機能説明

前述の DTS + FC アーキテクチャに関して、システムがどのように動作するかを深く理解するために、以下で内部の詳細を分析します。

DTS アーキテクチャ

DTS は、データ収集とデータ送信における完全な機能を提供します。DTS システムは、次の 3 つのモジュールに抽象化できます。

  1. ポーラー: 次のように、アップストリームのリッチ データベース サービスからデータを取得します。
    • 送信データタイプ: ストックデータまたはインクリメンタルデータを送信できます。
    • データ取得方法: 既存データの場合、DTS ポーラーは同時クエリ モードでテーブル全体をスキャンし、スキャン結果をダウンストリームに配信します。増分データの場合、DTS ポーラーはアップストリーム データベースの増分ログ ファイルを監視して読み取り、ログ情報を解析します。ファイルを作成し、下流に配信します。
    • 増分データ ソース: DTS は、異なるアップストリーム データベースの異なる増分ログ ファイルを読み取ります。たとえば、データベースが MySQL の場合は Binlog ファイルが読み取られ、データベースが MongoDB の場合は Oplog ファイルが読み取られます。
  2. フォーマット プラグイン: 取得したデータをCanal Json フォーマットに統一してフォーマットします。フォーマットの統一標準化により、さまざまなデータ ソースのデータ解析ロジックの再利用が容易になります。
  3. シンカー: フォーマットされたデータをダウンストリーム FC にプッシュします。

スクリーンショット 2023-10-30 5.34.11.png

FCアーキテクチャ

FC と DTS の緊密な統合により、FC は DTS によって収集されたデータベース データを受信し、次のようにユーザー定義コードに基づいてデータ処理およびデータ配信機能を実装できるようになります。

  1. リクエスト ルーティング: FC ゲートウェイは、DTS によって送信されたイベントを FC バックエンドにルーティングします。
  2. スケジューリング処理: FC スケジューリング層は、コンピューティング ノードを自動的に拡張して、ユーザー コードを実行し、上流に渡された DTS イベントを処理します。
  3. コードの実行: ユーザーのコードは期待どおりに実行されます。通常、ロジックはイベントを処理し、処理結果を SDK/API などを介して外部サービスに送信します。

スクリーンショット 2023-10-31 午後 2.53.02.png上の図からわかるように、データの処理と配信のビジネス ロジックに焦点を当て、単純なコード スニペットで実装するだけで済みます。FC バックエンドは、コードを実行するためにコンピューティング ノードを自動的にスケーリングします。インフラストラクチャの構築とシステムのリソースの運用と保守、スケーリング、監視、アラームなどの一連の面倒なタスクに注意を払うことで、開発効率が大幅に向上します。同時に、FC はサーバーレス アプリケーションとして従量課金制をサポートし、マシン リソースの長期予約によるリソースの非効率性を回避します。

アプリケーションシナリオ

OLTP から OLAP へのデータ転送

OLTPとOLAPとは何ですか?

  • OLTP: オンライン トランザクション処理を指します。トランザクション単位で動作し、高い同時書き込みとデータの一貫性をサポートします。共通サービスには、リレーショナル データベース (MySQL、PostgreSQL など)、注文処理システム、顧客関係管理システムなどが含まれます。
  • OLAP: オンライン分析処理を指します。通常、データ分析や意思決定支援に対応するために、大量のデータから情報を抽出、集約、分析するために使用されます。OLAP システムは通常、クエリベースであり、複雑なデータ クエリおよび分析操作を実行できます。共通サービスには、AnalyticDB、ClickHouse、Power BI などが含まれます。

上記の説明から、OLTP と OLAP は、さまざまなビジネス ニーズを満たすために使用される 2 つの異なるデータ処理サービスであることがわかります。OLTP システムはリアルタイムのトランザクションや業務の処理に適しており、OLAP システムは大量のデータからの分析や意思決定のサポートに適しています。実際のアプリケーションでは、OLAP のデータ ソースは異なる OLTP データベースであるため、OLAP 自体はデータを生成しません。データは ETL を介して OLTP から抽出され、分析可能なデータ標準を達成するために OLAP データベース、つまりデータ ウェアハウスに統合およびクリーンアップされます。 。DTS + FC は、2 種類のサービスを接続し、データ パスを開くだけです。画像.png

CDC イベント駆動型モデル

イベントとイベント駆動型とは何ですか?

  • イベント: ビジネス システムでは、イベントとは、システムやビジネス内で発生する重要で意味のある事柄や状態の変化を指します。イベントは内部的にトリガーすることも、外部から入力することもでき、通常はビジネス プロセス、データ変更、ユーザー操作などに関連します。
  • イベント駆動型: イベント駆動型アーキテクチャは、イベントがシステムの中核コンポーネントであるシステム設計パラダイムです。このアーキテクチャでは、システムのさまざまなコンポーネントがイベントをサブスクライブしてイベントに応答することで通信および連携し、疎結合でスケーラブルなシステム アーキテクチャを実現します。

CDC はデータベース内のデータ変更をキャプチャするために使用されるため、後続のプロセスのイベント駆動型の実行としてよく使用されます。一般的なシナリオは次のとおりです。

  • サブスクリプションおよび公開システム: CDC をサブスクリプションおよび公開システムの一部として使用して、データベース内のデータ変更をイベントとして関連するサブスクライバーに公開できます。これを使用して、パブリッシュ/サブスクライブ パターンでイベント駆動型のシステム アーキテクチャを実装できます。
  • データ検証: CDC はデータベース内の変更されたデータを FC にプッシュできます。カスタマイズされたデータ検証を実行して、データの合理的なコンプライアンスを検証します。これは、金融や金融注文などのシステムでは非常に重要です。
  • データ監査: CDC は、データベース内の変更されたデータを FC にプッシュし、データ監査およびデータ トレーサビリティ要件のために FC を介してサードパーティ サービスにデータを永続化できます。
  • 変更通知: 特定のキーデータが変更されると、電子メール、DingTalk、SMS、電話などの何らかの方法で特定の通知が送信されます。画像.png

概要と展望

CDC とサーバーレス ファンクション コンピューティングを組み合わせることで、インフラストラクチャと管理への依存を軽減しながら、リアルタイムのデータ処理と応答を実現できます。実際のアプリケーションでは、CDC をイベント駆動型のデータ ソースとして使用し、データ変更をサーバーレス機能の実行をトリガーするイベントとして使用できます。これにより、リアルタイムのデータ処理と配信を実現すると同時に、サーバーレス ファンクション コンピューティングの柔軟な拡張機能を利用して、実際の負荷に応じてコンピューティング リソースを動的に割り当てることができます。全体として、DTS とサーバーレス ファンクション コンピューティングの統合により、企業はより効率的で柔軟かつ信頼性の高いデータ処理ソリューションを提供できます。将来的には、Function Compute は、より多くのビジネス ニーズを満たすために、より多くのデータ ソース (Oracle、PolarDB PostgreSQL、PolarDB MySQL など) を探索する予定です。詳細やニーズについては、DingTalk でお問い合わせください (DingTalk グループ公式番号: 11721331)。

OpenAI が ChatGPT Voice Vite 5 をすべてのユーザーに無料で公開、正式にリリース オペレーターの魔法の操作: バックグラウンドでネットワークを切断、ブロードバンド アカウントを非アクティブ化、ユーザーに光モデムの変更を強制 Microsoft オープン ソースの ターミナル チャット プログラマーが ETC 残高を改ざんし、年間 260 万元以上を横領 Redis の父が使用する Pure C 言語コードは、Telegram Bot フレームワークを実装しています あなたがオープンソース プロジェクトのメンテナである場合、この種の返答にどこまで耐えることができますか? Microsoft Copilot Web AI は 12 月 1 日に正式にリリースされ、中国の OpenAI をサポートします 元 CEO 兼社長の Sam Altman 氏と Greg Brockman 氏が Microsoft に加わりました Broadcom は VMware の買収に成功したと発表しました
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4611872/blog/10151099