ファイルイベントを使用してAuto Loaderに移行する
ディレクトリ リストまたは従来の通知を使用してファイルを検出する既存の Auto Loader ストリームがある場合は、ファイル イベントを使用してそれらを Auto Loader に移行できます。
ディレクトリリストから移行
ディレクトリ リストを使用して Auto Loader ストリームをファイル イベントに移行するには:
- ファイル イベントの前提条件が満たされていることを確認します。
- ロード パスが外部ロケーションにあり、ファイル イベントが有効になっていること、およびファイル イベントが期待どおりに動作していることを確認します。
- ストリーム コードを変更して、
cloudFiles.useManagedFileEventstrueに設定します。同じチェックポイントの場所を引き続き使用します。 - ストリーム コードからサポートされていない設定を削除します。
- ストリームを再開します。ファイル イベントを有効にして初めて実行すると、Auto Loader はディレクトリ リストを実行して、ファイル イベント キャッシュを最新の状態にします (キャッシュ内の有効な読み取り位置を確保し、それをストリームのチェックポイントに保存します)。後続の実行では、ファイル イベント キャッシュから直接読み取ります。ファイル イベントを含む Auto Loader の概要を参照してください。
Auto Loaderストリームをファイル イベントからディレクトリ リストに移行するには、次の手順を実行します。
- ストリーム コードからオプション
cloudFiles.useManagedFileEventsを削除します。 - ストリームを再開します。
従来のファイル通知からの移行
S3のソースデータ
S3 では、プレフィックスが重複するイベント通知構成は許可されません。ソース データが S3 にある場合は、まず既存のイベント通知設定を解除する必要があります。
ファイルイベントへのレガシーファイル通知(S3)
レガシー ファイル通知を使用して S3 からデータを消費する Auto Loader ストリームをファイル イベントに移行するには:
- 外部ロケーションでファイル イベントを有効にする前に、 Auto Loaderストリームを停止し、関連する通知リソースを破棄します。 ファイル通知リソースを手動で構成または管理するで説明されているように、
CloudFilesAWSResourceManagerのtearDownNotificationResourcesAPI を使用できます。 - ファイル イベントの前提条件が満たされていることを確認します。
- ロード パスが外部ロケーションにあり、ファイル イベントが有効になっていること、およびファイル イベントが期待どおりに動作していることを確認します。
- ストリーム コードを変更して、
cloudFiles.useManagedFileEventstrueに設定します。同じチェックポイントの場所を引き続き使用します。 - ストリーム コードからサポートされていない設定を削除します。
- ストリーム コードからクラウド固有の通知オプション(
cloudFiles.queueUrl、databricks.serviceCredential、cloudFiles.awsAccessKeyなど) を削除します。 - ストリームを再開します。ファイル イベントを有効にして初めて実行すると、Auto Loader はディレクトリ リストを実行して、ファイル イベント キャッシュを最新の状態にします (キャッシュ内の有効な読み取り位置を確保し、それをストリームのチェックポイントに保存します)。後続の実行では、ファイル イベント キャッシュから直接読み取ります。ファイル イベントを含む Auto Loader の概要を参照してください。
ファイルイベントからレガシーファイル通知(S3)
ファイル イベントを使用して S3 からデータを消費する Auto Loader ストリームを従来のファイル通知に移行するには:
- Auto Loaderストリームを停止し、外部ロケーション UI を使用して外部ロケーションのファイル イベントをオフにします。 S3 では、プレフィックスが重複するイベント通知構成は許可されません。ファイル イベントを設定するときにキュー URL を指定した場合、Databricks では、ファイルの欠落を回避するために、以前の設定を破棄し、新しいキュー設定を作成することをお勧めします。
- ストリーム コードからオプション
cloudFiles.useManagedFileEventsを削除します。 - オプション
cloudFiles.useNotificationstrueに設定します。 - Auto Loader がクラウドに対して認証し、通知リソースを設定し、キューから読み取るために必要なクラウド固有の通知オプション(
cloudFiles.queueUrl、databricks.serviceCredential、cloudFiles.awsAccessKeyなど) を追加します。 - ストリームを開始します。
cloudFiles.queueUrlオプション(事前設定されたキューを指定)を指定した場合、Auto Loader はキューを使用してファイルの検出を開始します。また、移行中にファイルが失われていないことを確認するために、ディレクトリの一覧を 1 回だけ作成します。キューを指定し なかっ た場合、Auto Loader は通知に必要なすべてのリソースを作成しようとします。Auto Loaderストリームを再起動したときにエラーが発生した場合、 Databricksファイル イベント用に作成した通知リソースの削除を完了していない可能性があります。 数分後に再試行してください。
Azure Storage または Google Cloud Storage のソースデータ
ファイル イベントへの従来のファイル通知 (Azure、GCP)
従来のファイル通知を使用して Azure または GCP からデータを消費する Auto Loader ストリームをファイル イベントに移行するには、次の手順を実行します。
- ファイル イベントの前提条件が満たされていることを確認します。
- ロード パスが外部ロケーションにあり、ファイル イベントが有効になっていること、およびファイル イベントが期待どおりに動作していることを確認します。
- ストリーム コードを変更して、
cloudFiles.useManagedFileEventstrueに設定します。同じチェックポイントの場所を引き続き使用します。 - ストリーム コードからサポートされていない設定を削除します。
- ストリーム コードからクラウド固有の通知オプション(
cloudFiles.queueName、cloudFiles.subscription、databricks.serviceCredential、cloudFiles.privateKey、cloudFiles.clientSecretなど) を削除します。 - ストリームを再開します。ファイル イベントを有効にして初めて実行すると、Auto Loader はディレクトリの一覧を実行して、ファイル イベント キャッシュを最新の状態にします (キャッシュ内の有効な読み取り位置を確保し、それをストリームのチェックポイントに保存します)。後続の実行では、ファイル イベント キャッシュから直接読み取ります。ファイル イベントを含む Auto Loader の概要を参照してください。
- 従来のファイル通知モードで実行されたときに Auto Loader によって作成された通知リソースを削除します。ファイル通知リソースを手動で構成または管理するで説明されているように、
CloudFilesAWSResourceManagerのtearDownNotificationResourcesAPI を使用できます。
ファイル イベントから従来のファイル通知 (Azure、GCP)
ファイル イベントを使用して Azure または GCP からデータを消費する Auto Loader ストリームを従来のファイル通知に移行するには、次の手順を実行します。
- ストリーム コードからオプション
cloudFiles.useManagedFileEventsを削除します。 - オプション
cloudFiles.useNotificationstrueに設定します。 - Auto Loader がクラウドに対して認証し、通知リソースを設定し、キューから読み取るために必要なクラウド固有の通知オプション(
cloudFiles.queueName、cloudFiles.subscription、databricks.serviceCredential、cloudFiles.privateKey、cloudFiles.clientSecretなど) を追加します。 - ストリームを再開します。
cloudFiles.queueNameまたはcloudFiles.subscriptionオプションを指定した場合 (事前構成されたキューを指定した場合)、Auto Loader はキューを使用してファイルの検出を開始します。また、移行中にファイルが失われていないことを確認するために、ディレクトリの一覧を 1 回だけ作成します。キューを指定し なかっ た場合、Auto Loader は通知に必要なすべてのリソースを作成しようとします。Auto Loaderストリームを再起動したときにエラーが発生した場合、 Databricksファイル イベント用に作成した通知リソースの削除を完了していない可能性があります。 数分後に再試行してください。