Snowflake向けELTパイプラインアクセラレーターのヒントとトラブルシューティング
ソース
ソースシステムのカスタマイズ
Salesforce以外のソースシステムを使用する場合は、Salesforceレシピをモデルとして使用してDevelopmentの指針にできます。 Salesforceは一括アクションとトリガーを使用します。 使用する予定のソースに一括機能がない場合は、回避策としてWorkatoレシピ内にページネーションを含めるようにレシピを変更できます。
ファイルシステムソース
ファイルシステムをソースとして使用している場合、OPAにより既存のオンブレミスファイルまたはオンプレミスコマンドラインスクリプトを実行できます。 スケジューラーを使用して、オンプレミスネットワークファイルシステムからS3またはSnowflakeの内部ファイルシステムにファイルを移動することもできます。 オンブレミスファイルコネクターでは、ファイルをフィルタリングするためのパターンマッチングも提供されています。 ガイドとなる情報については、オンブレミスファイルおよびオンプレミスコマンドラインのドキュメントを参照してください。
データベースソースシステム
データベースをソースとして使用する場合、ELT AcceleratorはSQL Server向けのWorkatoのクラウドおよびオンプレミスコネクターを示します。 この方法により、データベースに負荷をかけることを回避できます。 他のデータベースをソースとして使用する予定の場合は、ELTアクセラレーター内のレシピを例として使用できます。 コネクターの可用性と成熟度に応じて、他の データベースをソースとして実装できます。
ターゲット
ターゲットテーブルは、アクセラレーターがソースから最初に抽出するrawテーブルをより洗練したバージョンです。 Workatoのコネクターライブラリとサンプルレシピを使用して、ターゲットを他のコネクターに拡張できます。 コネクターの詳細を確認し、bulk write to data lake/data warehouse機能がすでにコネクターに含まれているかどうかを確認してください。
Workatoがデータを抽出した後、市場で利用可能な他のツールを使用して、データパイプライン、SQLコードリポジトリを管理し、パラメーター化をサポートできます。 これらのツールには、GIT、DBT、Dataform、LookerMLが含まれます。
ステージング
Workatoのコネクターを使用して、複数のステージング領域をサポートできます。 たとえば、ユーザーはS3、Snowflake、オンプレミス内部ファイルシステムレシピの組み合わせを使用することを選択できます。 さらに、このアクセラレーターのELTフレームワークを使用して、ウェアハウスの精製済みデータ、および統合 およびマージ済みテーブルをスケジュールし、ディスパッチできます。 また、SnowflakeやAWS Lambdaなど、選択したプラットフォームでSQLとLambdaを実行するようにアクセラレーターを設定できます。
スキーマの前処理
ソースシステムからスキーマとメタデータを保持することは、 データレプリケーションに関してユーザーが直面する主要な課題の1つです。
このアクセラレーターは、ソースシステム > スキーマのレプリケーションからSnowflake > LOADまでスキーマを処理することで、スキーマとメタデータを保持するソリューションを提供します。
コントロールテーブル
ELTを出発点として使用すると、コントロールテーブルを拡張してタスクのチェーン化と冪等性をサポートできます。
チームが必要とするワークフローを実行中に追加のメトリクスやステータスを追跡する必要がある場合は、それらをコントロールテーブルに追加します。
ジョブテーブル
ELTを出発点として使用すると、ジョブテーブルを拡張してタスクのチェーン化と冪等性をサポートできます。
チームが必要とするワークフローを実行中に追加のメトリクスやステータスを追跡する必要がある場合は、それらをコントロールテーブルに追加します。
ディスパッチャー
さらに多くのソースレシピを開発し、ディスパッチャーに追加できます。 ディスパッチャーレシピロジックを参照して、FULLおよび Incremental/Extractジョブタイプのレシピを追加します。
より細かい通知とエラーを定義し、ディスパッチャーに追加できます。
ジョブをスケジュールする際は、時間枠が重複しないようにしてください。 ジョブが重複すると、アクセラレーターはジョブをキューに追加します。 これにより、ジョブの処理が遅延します。
スケジューラー
スケジューラーの同時実行は1つであり、パイプラインの失敗を避けるために常時実行する必要があります。
ControlおよびJobsテーブルを使用して、追加のパイプラインおよびジョブメタデータをスケジューラーに追加できます。 コントロールテーブルと併用しながら、スケジューラーをフィルタリングできます。
スケジューラーを使用して、追加のエラーと通知をカスタマイズできます。
通知
ELT PipelineボットがSlackまたはMicrosoft Teamsで送信する通知をカスタマイズできます。 ユーザーがパイプラインを作成または開始したとき、およびパイプラインが完了したときに通知を送信するように、このアクセラレーターは事前設定されています。
通知をカスタマイズして、より多くの情報を追加できます。 デフォルトでは、作成、開始、完了通知には、パイプラインの名前とロードタイプのみが記述されます。
このアクセラレーターを設定して、組織のサービスおよびチケット発行システムに通知を渡すこともできます。
ソース/ターゲットシステムのレイテンシーと帯域幅
ソース/ターゲットシステムから高ボリュームのデータを頻繁に抽出すると、APIレート制限、ダウンロードの遅延、コネクションタイムアウトの影響を受けます。
ビジネス運用に影響しない時間帯にパイプラインを実行するようにスケジュールする必要があります。
ソースシステムまたはターゲットシステムに追加のリソースを追加すると、パフォーマンスが向上します。
OPAベースの抽出システムは、ネットワークと、ターゲットS3バケットまたはSnowflakeの書き込みスループットに依存します。 スレッドを追加し、仮想プライベートネットワークを作成すると、抽出率が向上します。
ソースシステムの変更の処理
特定のスキーマの状態を保存するには、このアクセラレーターをカスタマイズする必要があります。
Salesforceのみがスキーマレプリケーションと管理をサポートしています。
削除を処理するCDC
ソースアプリケーションが削除をサポートしている場合、最終更新日が提供されます。 一部のソースアプリケーションは論理削除をサポートしています。 このシナリオでは、レコードが廃止または非アクティブ化された日付をソースで利用できます。
削除をキャプチャし、ソースデータベース内の別のテーブルにロードするようにトリガーを設定できます。 これらは顧客側で設定する必要があります。
ボット
SlackまたはMicrosoft TeamsからELT Pipelineを管理するために必要な機能がすべて備わっているため、Enterpriseボットの使用をお勧めします。 Enterpriseボットがない場合は、通常のWorkbotを使用できます。 通常のWorkbotを使用する予定の場合は、Enterprise Workbotのように中央のダッシュボードを使用するのではなく、コマンドを実行する必要があります。 パイプラインを制御するもう1つの方法は、ルックアップ テーブルを使用することです。 この方法はエラーが発生しやすく、推奨されません。
Last updated: