ここでは、Lakeflow Connectで生産者をZerobus Ingestに安全かつ効率的に接続する方法を詳しく解説します:フロントエンドのPrivate Link、ファイアウォールストレージへの接続、圧縮です。
Zerobus Ingestは常にワークスペースの領域内で動作します。 プロデューサーはネットワークを通じてその地域エンドポイントにデータを送信し、Zerobus Ingestはそれをターゲットのデルタテーブルに書き込みます。 Zerobus Ingestは一部の地域で利用可能です。 インジェストの可用性を参照してください。
Zerobus Ingest への書き込みには 2 つのネットワーク経路があり、それぞれ異なる方法で保護します。
- Zerobus Ingest サービスへのプロデューサーです。 パブリックインターネット経由で地域エンドポイントに到達するか、フロントエンドのPrivate Linkでトラフィックをプライベートパスに保つ方法もあります。
- テーブルのストレージへの Zerobus Ingest サービス。 Zerobus IngestはDatabricksのサーバーレスコンピュートからストレージに接続します。 ストレージがファイアウォールの背後にある場合は、DatabricksのサーバーレスアウトバウンドIPをAllowlistにしてZerobus Ingestが到達できるようにします。 「 ファイアウォールストレージに接続」を参照してください。
フロントエンド プライベート リンク
デフォルトでは、プロデューサーはネットワーク経由で、お使いのワークスペースのリージョン エンドポイントを通じて Zerobus Ingest に接続します。 トラフィックが公共インターネットを通過させたくない場合や、より多くの帯域幅や予測可能なネットワーク経路が必要な場合は、フロントエンドのPrivate Linkを使って、プロデューサーとZerobus Ingestサービス間の接続をプライベートパスに保ちましょう。
以下の場合、フロントエンドのPrivate Linkを検討してください:
- インゲストトラフィックが公共のインターネットを通過しないことを義務付けてください。
- 公共パスよりも高く、または予測可能な帯域幅が必要です。
- ネットワークトラフィックコストの削減を検討したいです。インジェストをプライベートパスに置くことで、パブリックインターネットのデータ転送が減少する可能性があるからです。
Front-end Private Link to Zerobus Ingestは、ワークスペースの他の部分と同じフロントエンドのプライベート接続環境を使用します。 クラウドで設定するには、こちらをご覧ください:
Azure Private Link フロントエンド接続を有効にする。 基礎となる概念については「Private Link concepts」を参照してください。
ファイアウォール化されたストレージに接続
Zerobus Ingestはデータを耐久性にし、Databricksのサーバーレスコンピュートからターゲットテーブルのストレージに書き込みます。 ストレージアカウントやバケットがファイアウォールでインバウンドトラフィックを制限している場合は、DatabricksのサーバーレスアウトバウンドIP範囲をZerobus Ingestがアクセスできるように許可リストに設定してください。
DatabricksはサーバーレスのアウトバウンドIPを ip-ranges.jsonにJSONファイルとして公開し、ネットワーク参照の地域ごとにリストアップしています。 ワークスペースのクラウドとリージョンの範囲だけを許可リストに追加する必要がある:
サーバーレスコンピュートについてはアウトバウンドIPを参照してください。
地域横断的な考慮事項
Zerobus Ingestはワークスペースの領域内で動作します(テーブル 要件を参照)。 可能な限り生産者をその領域に留めておくと良いです。生産者がエンドポイントに近いほどネットワークの遅延が低く、維持できるスループットも高くなります。
プロデューサーがZerobus Ingestエンドポイントとは異なるリージョンで動作すると、トラフィックがリージョンを越えて移動し、遅延が発生しクラウド出口料金が発生することがあります。 正確な費用はクラウドや地域、データ量によって異なり、単一の数字で説明すると誤解を招くことがあります。 Databricksは、クロスリージョントポロジーにコミットする前に、自身のワークロードとリージョンで実際のコストを測定するための概念実証を実行することを推奨しています。
ネットワーク上の圧縮
ネットワークに流す前にレコードを圧縮すると、送信するバイト数を減らせるため、クライアント側で追加のCPU負荷がかかる代わりに、帯域幅のボトルネックを回避できます。 選択肢はインターフェースによって異なります:
-
Arrow Flight はIPC圧縮(最適な比率のために
ZSTD、クライアントがCPU制約されている場合LZ4_FRAME)をサポートしています。 IPC 圧縮を参照してください。 - OpenTelemetry(OTLP)は すべてのサービスでgzipをサポートしています。 圧縮を参照してください。
コンパクト なレコード形式、プロトコルバッファ(protobuf)、またはJSONの代わりにArrowを選ぶことで、配線上のバイト数も減ります。
Related
- APIプロトコル:インターフェースの選択。
- メッセージの種類:レコードフォーマットとそのサイズトレードオフ。
- Zerobus Ingest クォータ: デフォルトのスループットクォータ。