メインコンテンツまでスキップ

クラウドストレージ

備考

プレビュー

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つのディレクトリに混在させることはサポートされていません。

ディレクトリ構造の例:

Text
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/など)も含まれます。

データソースの作成​

データソース で、 データソースの追加 をクリックします。 カスタムおよび内部Logs で、ファイルを保持するストレージの種類を選択します。

  • Google Cloud Storage: Unity Catalog 外部ロケーションを通じた Google Cloud Storage のパス。
  • Unity Catalog ボリューム: Unity Catalog ボリューム内のフォルダー。

そのストレージタイプのセットアップページが開きます。後でストレージタイプを切り替えるには、セットアップページで「 ソースタイプ 」ピッカーを使用します。以下のフィールドに入力します:

  • データソース名: データソースの一意の名前を入力します(例: Cloudflare_WAF)。

  • ソースの場所: データソースをデータが格納されているフォルダーにポイントします。場所は個別のファイルではなく、フォルダーである必要があります。フィールドはストレージのタイプによって異なります:

    • 外部ロケーション と サブフォルダ (オプション): 参照 をクリックして 外部ロケーションの参照 を開き、Unity Catalog 外部ロケーションを選択し、そのルートまたはその中のフォルダを選択します。ロケーションとサブフォルダを直接入力することもできます。ロケーション全体を取り込むには、 サブフォルダ を空白のままにします。
    • Unity Catalog ボリュームパス: ログファイルが含まれるフォルダを入力するか (例: /Volumes/catalog/schema/volume/logs/)、 ボリュームの参照 をクリックします。
  • ファイル形式: Lakewatchがソースデータの解析に使用する形式: JSON、 JSONL、 Parquet、 CSV、 XML、またはテキスト。 Genieで推論 をクリックして、データのサンプルからGenieに形式を推論させます。 CSV を選択した場合は、 CSV形式のオプションを設定することもできます。

  • ヒストリカルデータの取り込み: これをオンにすると、その場所にすでに存在するファイルも取り込まれます。どちらの場合も新しいファイルが取り込まれます。この選択は、最初の起動時にのみ有効になります。

  • 詳細設定: このオプションセクションを展開して、以下を構成します。

    • 生の出力テーブル名: パーサーがランする前にLakewatchがソースイベントを書き込む生テーブルの名前。Lakewatchはそれをお使いの環境に作成します。名前は必須です。
    • パフォーマンス最適化: 取り込みを高速化する場合はパフォーマンス最適化コンピュート (オン) を使用し、標準コンピュート (オフ) を使用します。defaultはワークスペースの取り込みコンピュート設定です。

CSV 形式オプションの設定​

ファイル形式 を CSV に設定すると、 CSV形式オプション セクションが表示され、Lakewatchがファイルを読み取る方法をカスタマイズできます。 CSVオプションの追加 をクリックしてオプションを追加し、値を設定するか、オプションを削除してdefaultを使用します。スペースや空の値を含め、値は入力どおりに使用されます。

最も一般的なオプションは、 ヘッダー 、 デリミタ 、 クォート 、 エスケープ 、 複数行 、 エンコーディング 、 Null 値 、 日付フォーマット 、 Timestamp フォーマット です。その他の標準的な CSV 読み込みオプションは、オプション名の下に表示されます。完全なリストと各オプションの機能については、CSV オプションを参照してください。

ファイルの検出と資格情報​

Lakewatchは新しいファイルを自動的に検出します。ソースの Unity Catalog 外部ロケーションに ファイルイベント が設定されている場合、 Lakewatch はそれらを使用します。それ以外の場合、ディレクトリを一覧表示します。Lakewatchで設定するファイル通知設定はありません。

ソースがUnity Catalogボリュームまたは外部ロケーションである場合、Lakewatchはそれを通じて認証します。個別の資格情報やSecret Scopeのエントリはありません。実行者IDがUnity Catalogオブジェクトとその基になるストレージ資格情報を読み取れることを確認してください。

データをプレビュー​

ソースの場所とファイル形式を設定した後、 データプレビュー パネルの データのプレビュー をクリックしてサンプルを表示します。プレビューには、Lakewatchによる書き込み時の生データが表示されます。各レコードを保持するdata列と_metadata列です。プレビューのラン後に設定を変更した場合、プレビューは期限切れとマークされます。 プレビューを更新 をクリックして再実行します。

defaultでは、Lakewatchは構成されたソースからサンプリングします。代わりに特定のフォルダーからサンプリングするには、「 プレビューソースの編集 」をクリックして、「 サンプルサブフォルダーの使用 」を選択します。「 プレビューパス 」には、継承されたソースの場所とサブフォルダーが読み取り専用として表示されます。その内のフォルダーを入力するか、「 参照 」をクリックしてフォルダーを選択します。プレビュー パスはファイルではなくフォルダーである必要があり、実行IDがそれを読み取れる必要があります。Unity Catalogボリューム データソースはボリューム パスからプレビューし、個別のプレビュー パスは提供しません。

サンプルはプレビューにのみ影響し、データソースには保存されません。データソースがランすると、設定されたソースから取り込みが行われます。

時間列の処理​

time列は、クラスタリング、ストリーミング、ウォーターマーク、クエリーのパフォーマンスにとって重要です。Lakewatchは、TimestampがVARIANT構造内にネストされている場合を含め、セットアップ中に自動的にそれを検出して抽出します。各行を生テーブルに書き込む前に、Lakewatchはnull time値をインジェクションタイムスタンプ(lw_meta.ingestion_time)に置き換えるため、生テーブルのtime列はnullになることはありません。インジェクション時のfallbackと元のイベント時間を区別できるように、これらの行のlw_meta.missing_timestampをtrueに設定します。

パーサーを添付してデータソースを作成する​

同じ作成フォームで、 「パーサー」 セクションまでスクロールします:

  1. パーサーをアタッチします。 1つ以上のパーサーをアタッチしてデータをスキーマ化します。ソースに一致する組み込みパーサーか、自分で作成したパーサーを使用します。ソースがラップされたレコードを配信する場合は、 ラップされたレコードのラップ解除 で説明されている ラップ解除 オプションも設定します。パーサーの一致方法とパーサーが生成する列の詳細については、パーサーのアタッチを参照してください。
  2. データソースを作成します。 [データソースの作成] をクリックします。データソースは処理スケジュールに従って直ちに起動します。停止するには、データソースを削除してください。

データソースの他の設定(処理スケジュール、コンピュート、アノテーション)は、作成後にその 概要 tabでいつでも編集できます。データソース設定の構成を参照してください。

エンベロープ化されたレコードをラップ解除する​

一部のソースは、行ごとに 1 つのレコードではなく、コンテナ内に複数のイベントを配信します。サンプリングされたデータがイベントのJSON配列であるか、またはAWS CloudWatch Logs配信エンベロープでラップされたイベントである場合、Lakewatchはコンテナをラップ解除して、各イベントが独自の行になるようにすることができます。パーサーステップで、 ラップ解除 オプション(defaultは ラップ解除なし )を使用して、レコードのラップ方法と一致させます。セットアップ中にサーフェスされたレコードシェイプのみがサポートされます。ラップ解除はクラウドストレージデータソースで利用可能ですが、Unity Catalogテーブルをそのまま取り込む既存のテーブルメソッドでは利用できません。

  • JSON配列: JSON配列キー を入力します。これは、イベントの配列を含むルートレベルのキーです(例: Records)。ネストされたパスはサポートされていません。
  • AWS CloudWatch Logs: CloudWatch Logsヘッダーを保持 を有効にして、ラップ解除された各イベントで元のCloudWatch Logsエンベロープメタデータを保持します。defaultではオフになっています。