ディレクトリテーブルの管理

このトピックでは、ディレクトリテーブルを使用して外部ステージまたは内部ステージを作成および管理する方法について説明します。

ディレクトリテーブルを使用したステージの作成

このセクションでは、ディレクトリテーブルを階層化してステージングされたファイルに関するメタデータを保存するステージを(CREATE STAGE を使用して)作成する手順について説明します。

内部ステージのディレクトリテーブルでは、 手動でメタデータをリフレッシュする 必要があります。外部ステージにディレクトリテーブルを含めて、手動でメタデータを更新することもできます。自動メタデータリフレッシュについては、 自動メタデータリフレッシュ をご参照ください。

ディレクトリテーブルを使用してステージを作成するための構文は、標準の外部ステージまたは内部ステージを作成する場合とほぼ同じです。オプションの DIRECTORY パラメーターを TRUE に設定します。

完全な構文とパラメーターの説明については、 CREATE STAGE をご参照ください。既存のステージにディレクトリテーブルを追加するには、 ALTER STAGE ... SET DIRECTORY コマンドを使用します。

注釈

ディレクトリテーブルを使用してステージを作成した後、 ALTER STAGE ... REFRESH を実行して、ディレクトリテーブルのメタデータを手動で更新する 必要 があります。

ディレクトリテーブルを含む mystage という名前の内部ステージを作成します。ステージは myformat という名前のファイル形式を参照します。

CREATE STAGE mystage
  DIRECTORY = (ENABLE = TRUE)
  FILE_FORMAT = myformat;
Copy

ディレクトリテーブルを含む mystage という名前の外部ステージを作成します。ステージは、パスが filesload という名前のバケットまたはコンテナーを参照します。 my_storage_int ストレージ統合により、クラウドストレージの場所への安全なアクセスが提供されます。

注釈

URL 値の保存場所は、スラッシュ(/)で終わる必要があります。

Amazon S3

CREATE STAGE mystage
  URL='s3://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);
Copy

Google Cloud Storage

CREATE STAGE mystage
  URL='gcs://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);
Copy

Microsoft Azure

CREATE STAGE mystage
  URL='azure://myaccount.blob.core.windows.net/load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);
Copy

ディレクトリテーブルメタデータのリフレッシュ

自動リフレッシュ

クラウドストレージサービスのメッセージングサービスを使用すると、ディレクトリテーブルのメタデータを自動的にリフレッシュできます。自動リフレッシュを構成するには、 ディレクトリテーブルのメタデータ自動更新 をご参照ください。

手動リフレッシュ

注釈

  • 外部ステージで手動リフレッシュを行うと、同時自動リフレッシュをブロックします。手動リフレッシュが完了すると、自動リフレッシュが再開されます。

  • 手動リフレッシュは、ステージ上でリスト操作を実行し、大きなステージや急速に成長するステージでは、時間がかかったり、コストが高くなることがあります。代わりに、イベントベースの 自動リフレッシュ を使用します。

ディレクトリテーブルのメタデータを手動でリフレッシュするには、 ALTER STAGE コマンドを使用します。

最高のパフォーマンスを実現するには、 ALTER STAGE で選択的な SUBPATH を使用してください。そうすることで、リストアップとチェックが必要なファイルの数を減らすことができます。パスによるデータの整理については、 データファイルのステージングのベストプラクティス をご参照ください。

例:

ALTER STAGE my_stage REFRESH SUBPATH = '2024/01/31';
Copy

このコマンドは、次の列を返します。

説明

file

ステージングされたソースファイルの名前とファイルへの相対パス。

status

ステータス: REGISTERED_NEW、 REGISTERED_UPDATE、 REGISTER_SKIPPED、 REGISTER_FAILED、 UNREGISTERED、または UNREGISTER_FAILED。

description

ファイル登録状況の詳細説明。