カテゴリ:

Information Schemaテーブル関数

EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY

このテーブル関数は、次のような外部テーブルのメタデータ履歴に関する情報をクエリするために使用でき、次を含みます。

  • メタデータの更新の一部として自動的に追加または削除されるファイル。

  • メタデータの更新時に見つかったエラー。

構文

EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY (
      TABLE_NAME => '<string>'
      [, START_TIME => <constant_expr> ] )
Copy

引数

必須:

TABLE_NAME => 'string'

外部テーブル名を指定する文字列です。

オプション:

START_TIME => constant_expr

過去30日以内のタイムスタンプ(TIMESTAMP_LTZ 形式)で、メタデータ更新イベントを取得するための時間範囲の開始をマークします。

注釈

  • 開始時間が指定されていない場合、関数は過去30日以内のすべての更新イベントを返します。

  • 開始時間が過去30日間を超える場合、関数は過去30日以内の結果を返します。

  • 開始時刻がタイムスタンプでない場合は、無視されます。

使用上の注意

  • 外部テーブルの所有者(つまり、外部テーブルに対する OWNERSHIP 権限を持つロール)、またはそれより上位のロール、 または 外部テーブルを含んでいるデータベースおよびスキーマに対する USAGE 権限を持つロール、および外部テーブルに対する任意の権限を持つロールに結果を返します。

  • テーブル関数は、外部テーブルが更新(つまり、同期)されてデータファイルがメタデータに含まれるまで、ステージングされたデータファイルに関するメタデータを取得できません。

  • 情報スキーマテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。

出力

この関数は、次の列を返します。

列名

データ型

説明

JOB_CREATED_TIME

TIMESTAMP_LTZ

操作が発生したときのタイムスタンプ

FILE_NAME

TEXT

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

OPERATION_STATUS

TEXT

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

MESSAGE

TEXT

稼働ステータスに付随するメッセージ

FILE_SIZE

NUMBER

外部テーブルに追加されたファイルのサイズ(バイト単位)

LAST_MODIFIED

TIMESTAMP_LTZ

ステージでファイルが最後に更新されたときのタイムスタンプ

mytable 外部テーブルによって参照されるすべてのデータファイルに保存されているメタデータを取得します。

select *
from table(information_schema.external_table_file_registration_history(TABLE_NAME=>'MYTABLE'));
Copy

過去1時間以内に開始された外部テーブル mydb.public.external_table_name の登録イベントを取得します。

select *
  from table(information_schema.external_table_file_registration_history(
    start_time=>dateadd('hour',-1,current_timestamp()),
    table_name=>'mydb.public.external_table_name'));
Copy

2022年4月25日の午前0時から始まる外部テーブル mydb.public.external_table_name の登録イベントを取得します。

select *
  from table(information_schema.external_table_file_registration_history(
    start_time=>cast('2022-04-25' as timestamp),
    table_name=>'mydb.public.external_table_name'));
Copy