Campaign:Adobe CampaignからDatabricks (DBX)へのデータ転送が遅い

この記事では、Adobe CampaignからDatabricksへのデータ転送が予想よりも大幅に遅くなるパフォーマンスの問題について説明します。 この動作は、Campaignが一括読み込みメカニズムを使用できず、代わりに低速の行ごとの挿入戦略にフォールバックする場合に発生します。

説明 description

一部のAdobe Campaign ワークフローでは、他のデータベース転送パスが正常に動作している場合でも、Databricksに書き込まれるデータが非常に遅くなる場合があります。

典型的な症状は次のとおりです。

  • Adobe CampaignまたはフェデレーションデータソースからDatabricksへの転送は、予想よりもはるかに時間がかかります。
  • 逆または代替データフローは、引き続き正常に実行される場合があります。
  • この問題は、複数のワークフローまたは環境で再現可能です。
  • ワークフローログまたは監査ログには、次のような警告が含まれます。

一括読み込みに使用されている​ストレージアカウントが見つかりません。 既定の一括読み込み戦略を使用しています

この警告は、一括読み込みパスに必要なリンクされたストレージ設定がCampaignで見つからないことを示します。 その結果、コネクタはODBCよりもデフォルトの行ごとの挿入方法にフォールバックします。

解決策 resolution

Adobe CampaignからDatabricksにデータを書き込む際に発生するデータ転送の遅いパフォーマンスは、Databricks外部アカウントにリンクされたクラウドストレージアカウント(Azure BlobまたはAWS S3)が設定されていないことから生じます。

根本原因

Campaignは、データをDatabricksに書き込む際、リンクされたクラウドストレージアカウントに依存する一括読み込みパスを中間ステージング領域として使用しようとします。 プロセスは次のように設計されています。

  • Campaignは、アウトバウンドデータを圧縮されたCSV ファイルとしてシリアル化します。
  • Campaignは、これらのファイルをリンクされたクラウドストレージアカウント(Azure BlobまたはS3)にアップロードします。
  • CampaignはDatabricks COPY INTO コマンドを発行し、Databricksに対して、クラウドストレージから直接ステージングされたファイルを取り込むように指示します。
  • Databricksは、ネイティブ速度でファイルを並行して読み取ります。

リンクされたストレージアカウントが設定されていない場合、Campaignはこの一括読み込みパスを使用できません。 システムは次の警告をログに記録します。

一括読み込みに使用されている​ストレージアカウントが見つかりません。 既定の一括読み込み戦略を使用しています

この警告は、ワークフローの監査ログに表示されます。 この警告の後、CampaignはODBC接続を介して個々の行レベルのINSERT ステートメントを送信するようになります。 各行には、Databricks SQL Warehouseへの個別のネットワーク ラウンドトリップが必要です。これにより、データ量に応じてパフォーマンスが直線的に低下します。

このフォールバック動作は、劣化した「遅いモード」ではありません。実稼動規模のデータボリュームには適していません。 それは最後の手段としてのメカニズムとしてのみ存在します。

そのため、リンクされたストレージアカウント(Azure BlobまたはAWS S3)をDatabricks外部アカウントに追加すると、このパフォーマンスの問題が解決されます。 ストレージアカウントが設定されている場合、Campaignでは、Databricksの推奨データ取り込みメカニズムであるCOPY INTO一括読み込みパスを使用します。

recommendation-more-help
experience-cloud-kcs-help-kbarticles