ディレクトリテーブル¶
このトピックでは、主要な概念、補助的な情報、ディレクトリテーブルを使用するための手順へのリンクを提供します。
このトピックの内容:
ディレクトリテーブルとは¶
ディレクトリテーブルは、ステージで複数層になった暗黙のオブジェクトで(独立したデータベースオブジェクトではない)、ステージ内のデータファイルに関するファイルレベルのメタデータを格納するため、概念的には外部テーブルに似ています。ディレクトリテーブルには、独自の付与可能な権限はありません。
外部(外部クラウドストレージ)ステージと内部(Snowflake)ステージの両方でディレクトリテーブルをサポートします。ディレクトリテーブルは、ステージの作成時(CREATE STAGE を使用)またはそれ以降(ALTER STAGE を使用)にステージに追加できます。
特に、ディレクトリテーブルを使用すると、以下のような非構造化データのタスクを達成できます。
ステージにあるすべての非構造化ファイルのリストをクエリする。ディレクトリテーブルをクエリして、ステージにあるすべてのファイルのリストを取得できます。クエリ出力には、サイズ、最終更新日時のタイムスタンプ、および Snowflakeファイル URL などの各ファイルに関する情報が含まれます。
非構造化データのビューを作成する。非構造化ファイルに関する追加データとメタデータを含んだSnowflakeテーブルとディレクトリテーブルを結合して、非構造化ファイルとその関連データを単一のビューで表示することができます。
ファイル処理パイプラインを構築する。ディレクトリテーブルをSnowpark API または外部関数で使用して、ファイル処理パイプラインを作成できます。
ディレクトリテーブルのメタデータ自動更新¶
ディレクトリテーブルのメタデータは、クラウドストレージサービスのイベント通知サービスを使用して自動的に更新できます。更新操作は、メタデータを外部ステージと外部パスの関連ファイルの最新セットと同期します。つまり、
パス内の新しいファイルがテーブルメタデータに追加されます。
パス内のファイルへの変更は、テーブルメタデータで更新されます。
パス内になくなったファイルは、テーブルのメタデータから削除されます。
詳細については、 ディレクトリテーブルのメタデータ自動更新 をご参照ください。
ディレクトリテーブルの請求¶
ディレクトリテーブルのメタデータの自動更新に関するイベント通知を管理するためのオーバーヘッドは料金に含まれています。このオーバーヘッドは、ディレクトリテーブルを含むステージのために、クラウドストレージに追加されるファイルの数に関連して増加します。Snowpipeはディレクトリテーブルの自動更新のイベント通知に使用されるため、このオーバーヘッド料金は請求明細書にSnowpipe料金として表示されます。この料金は、 PIPE_USAGE_HISTORY 関数をクエリするか、Account Usage PIPE_USAGE_HISTORY ビュー を調べると見積もることができます。
さらに、ディレクトリテーブルのメタデータを手動で更新する場合(ALTER STAGE ... REFRESH を使用)は、メンテナンスオーバーヘッドが若干請求されます。このオーバーヘッドは、Snowflakeにおける他の類似のアクティビティすべてと同様に、標準の クラウドサービス課金モデル に従って課金されます。
ACCOUNTADMIN ロールを持つユーザー、または MONITOR USAGE グローバル権限を持つロールは、 AUTO_REFRESH_REGISTRATION_HISTORY テーブル関数にクエリを実行して、指定されたオブジェクトのメタデータに登録されているデータファイルの履歴と、これらの操作に対して請求されるクレジットを取得できます。
ディレクトリテーブルのアクセス制御要件¶
次の表は、ディレクトリテーブルを操作するときに一般的な SQL コマンドの実行に必要となる、ステージの 権限 をまとめたものです。
操作 |
オブジェクト型 |
必要な権限 |
---|---|---|
SELECT FROM DIRECTORY ステートメントを使用して、ディレクトリテーブルからファイル URLs を取得します。 |
ステージ |
ステージの型に応じて、次のいずれか。
|
PUT コマンドを使用してデータをアップロードします。 |
ステージ(内部のみ) |
ステージに対する WRITE 権限を持つアカウントロールまたはデータベースロール。 |
REMOVE コマンドを使用してファイルを削除します。 |
ステージ |
ステージの型に応じて、次のいずれか。
|
ALTER STAGE コマンドを使用してメタデータを更新します。 |
ステージ |
ステージの型に応じて、次のいずれか。
|
情報スキーマ¶
Snowflake Snowflake Information Schema には、ディレクトリテーブルに関する情報を取得するためにクエリできるテーブル関数が含まれています。
テーブル関数¶
- AUTO_REFRESH_REGISTRATION_HISTORY
指定されたオブジェクトのメタデータに登録されているデータファイルの履歴と、これらの操作に対して請求されるクレジットを取得します。
- STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY
メタデータの更新時に見つかったエラーを含む、ディレクトリテーブルのメタデータ履歴に関する情報を取得します。
次のトピック: