クラウドストレージ
プレビュー
Lakewatchは プライベート プレビュー段階です。アクセスをリクエストするには、Databricksアカウントチームにお問い合わせください。
サポートされているクラウドオブジェクトストアからファイルを取り込むには、 クラウドストレージ 取り込み方法を使用します。Lakewatchは Auto Loader でソースを読み取ります。
このページでは、クラウドストレージデータソースを作成する方法を学習します。データソース作成後の管理については、「 データソースの作成と管理」を参照してください。
Lakewatchは、Unity Catalogボリュームまたは外部ロケーションを介してGoogle Cloud Storageからデータを取り込みます。
前提条件
データソースを作成する前に、次の要件を満たしていることを確認してください。
- Unity Catalog のソース: ストレージを Unity Catalog ボリュームまたは外部ロケーションとして構成します。Unity Catalog がソースへのアクセスを管理するため、これが推奨されるパスです。セットアップについては、 外部ロケーションの管理を参照してください。
- ソースへの実行者アクセス: データソースの 実行者ID には、ソースを読み取る権限が必要です。外部ロケーションでの
READ FILES権限、またはボリュームでのREAD VOLUME権限が必要です。これをID自体ではなく、 Unity Catalogの外部ロケーションまたはボリュームに付与します。手順については、「 外部ロケーションの管理」または「 Unity Catalogボリュームの特権」を参照してください。Lakewatchは、ユーザーアカウントではなく、実行者IDとしてインジェストするため、データへの個々のアカウントレベルのアクセスでは十分ではありません。IDが親カタログやスキーマ、またはグループから継承するアクセス権も、この要件を満たします。
取り込み用にデータを準備する
各Lakewatchデータソースは単一のディレクトリから取り込み、 1つのファイル形式 を使用してすべてのファイルを読み取ります。データソースを作成する前に、取り込みを計画している各ディレクトリに以下が含まれるようにクラウドストレージを整理してください:
- ファイル形式が 1 つ : すべてのファイルが同じ形式である必要があります (例: すべて JSON、すべて Parquet、またはすべて CSV)。異なる形式のファイルは、解析エラーを引き起こします。
- 1つのソースタイプ :ファイルは同じソースシステムから取得し、互換性のあるスキーマを共有する必要があります(例:すべてのAWS CloudTrail Logs、またはすべてのCrowdStrike検出イベント)。同じ形式内での小さなスキーマのバリエーションは自動的に処理されますが、基本的に異なるスキーマを1つのディレクトリに混在させることはサポートされていません。
ディレクトリ構造の例:
s3://my-security-bucket/
├── cloudtrail/ ← Datasource 1 (JSON)
│ ├── 2025/01/01/
│ │ ├── event1.json.gz
│ │ └── event2.json.gz
│ └── 2025/01/02/
│ └── event3.json.gz
├── vpc-flow-logs/ ← Datasource 2 (Parquet)
│ ├── region=us-east-1/
│ │ └── flowlogs.parquet
│ └── region=us-west-2/
│ └── flowlogs.parquet
└── waf-logs/ ← Datasource 3 (JSON)
└── waf-events.json
各トップレベルディレクトリが別々のLakewatchデータソースになります。サブディレクトリは自動的に走査されます。これには、Lakewatchが検出してパーティション列としてマッピングするHiveスタイルのパーティションパス(region=us-east-1/など)も含まれます。
データソースの作成
データソース から、 データソースを追加 をクリックし、 カスタムデータソース を選択します。作成ページで、 ソースタイプ をストレージの場所として設定し、次のフィールドに入力します。
-
データソース名: データソースの一意の名前を入力します(例:
Cloudflare_WAF)。 -
データのロケーション: データを含む ディレクトリ へのパスを入力します(例:
s3://my-bucket/cloudtrail/、dbfs:/mnt/logs/、または/Volumes/catalog/schema/volume/)。パスは、個々のファイルではなく、ディレクトリを指す必要があります。パターンに一致するファイルのみを取り込むには、パスにglobパターンを含めることができます。たとえば、s3://my-bucket/logs/{2025,2026}/*.json.gzです。サポートされている文字は*、?、{、}、[、および]です。完全な構文の詳細については、Databricks autoloader パスのフィルタリングのドキュメントを参照してください。 -
ファイル形式: Lakewatchがソースデータを解析するために使用する形式: JSON、JSONL、Parquet、CSV、XML、またはテキスト。 Genieで推論 をクリックすると、Genieがデータサンプルから形式を提案します。
-
データ取り込み: 取り込むソースの量を選択します。この選択は、最初の起動時のみ有効になります。
- 新しいデータ (default): データソースが最初に起動した後に到着したファイルのみを取り込みます。場所にある既存のファイルはスキップされます。
- すべてのデータ : 場所に既に存在するファイルを取り込み、その後、後で到着するファイルを取り込みます。
-
詳細設定: このオプションセクションを展開して、以下を構成します。
- 未加工出力テーブル名: パーサーが実行される前にLakewatchがソースイベントを書き込む未加工テーブルの名前。Lakewatchはそれをお使いの環境に作成します。名前が必要です。
- パフォーマンス最適化: 取り込みを高速化する場合はパフォーマンス最適化コンピュート (オン) を使用し、標準コンピュート (オフ) を使用します。defaultはワークスペースの取り込みコンピュート設定です。
ファイルの検出と資格情報
Lakewatchは新しいファイルを自動的に検出します。ソースのUnity Catalog外部ロケーションにファイルイベントが設定されている場合、Lakewatchはそれらを使用します。それ以外の場合、ディレクトリを一覧表示します。Lakewatchで設定するファイル通知設定はありません。
ソースがUnity Catalogボリュームまたは外部ロケーションである場合、Lakewatchはそれを通じて認証します。個別の資格情報やSecret Scopeのエントリはありません。実行者IDがUnity Catalogオブジェクトとその基になるストレージ資格情報を読み取れることを確認してください。
データをプレビュー
データの場所とファイル形式を設定したら、ページの下部にある データプレビュー を確認します。Lakewatchが書き込む生データが表示されます:各レコードを保持する data 列と _metadata 列です。Lakewatchは、構成された データの場所 からファイルをサンプリングします。
サンプルはプレビューにのみ影響します。データソースのラン時には、構成されたソースから取り込まれます。
時間列の処理
time列は、クラスタリング、ストリーミング、ウォーターマーク、クエリーのパフォーマンスにとって重要です。Lakewatchは、TimestampがVARIANT構造内にネストされている場合を含め、セットアップ中に自動的にそれを検出して抽出します。各行を生テーブルに書き込む前に、Lakewatchはnull time値をインジェクションタイムスタンプ(lw_meta.ingestion_time)に置き換えるため、生テーブルのtime列はnullになることはありません。インジェクション時のfallbackと元のイベント時間を区別できるように、これらの行のlw_meta.missing_timestampをtrueに設定します。
パーサーを添付してデータソースを作成する
同じ作成フォームで、 「パーサー」 セクションまでスクロールします:
- パーサーをアタッチします。 1つ以上のパーサーをアタッチしてデータをスキーマ化します。ソースに一致する組み込みパーサーか、自分で作成したパーサーを使用します。ソースがラップされたレコードを配信する場合は、 ラップされたレコードのラップ解除 で説明されている ラップ解除 オプションも設定します。パーサーの一致方法とパーサーが生成する列の詳細については、パーサーのアタッチを参照してください。
- データソースを作成します。 [データソースの作成] をクリックします。データソースは処理スケジュールに従って直ちに起動します。停止するには、データソースを削除してください。
データソースの他の設定(処理スケジュール、コンピュート、アノテーション)は、作成後にその 概要 tabでいつでも編集できます。データソース設定の構成を参照してください。
エンベロープ化されたレコードをラップ解除する
一部のソースは、行ごとに 1 つのレコードではなく、コンテナ内に複数のイベントを配信します。サンプリングされたデータがイベントのJSON配列であるか、またはAWS CloudWatch Logs配信エンベロープでラップされたイベントである場合、Lakewatchはコンテナをラップ解除して、各イベントが独自の行になるようにすることができます。パーサーステップで、 ラップ解除 オプション(defaultは ラップ解除なし )を使用して、レコードのラップ方法と一致させます。セットアップ中にサーフェスされたレコードシェイプのみがサポートされます。ラップ解除はクラウドストレージデータソースで利用可能ですが、Unity Catalogテーブルをそのまま取り込む既存のテーブルメソッドでは利用できません。
- JSON配列: JSON配列キー を入力します。これは、イベントの配列を含むルートレベルのキーです(例:
Records)。ネストされたパスはサポートされていません。 - AWS CloudWatch Logs: CloudWatch Logsヘッダーを保持 を有効にして、ラップ解除された各イベントで元のCloudWatch Logsエンベロープメタデータを保持します。defaultではオフになっています。