ACCESS_HISTORY ビュー

このAccount Usageビューを使用して、過去365日(1年)以内のSnowflakeオブジェクト(例: テーブル、ビュー、列)のアクセス履歴をクエリできます。

このセクションには2つのテーブルがあります。

  • 最初のテーブルは、 ACCESS_HISTORY ビューの列を定義します。

  • 2番目のテーブルは、 BASE_OBJECTS_ACCESSED、 DIRECT_OBJECTS_ACCESSED、および OBJECTS_MODIFIED 列の JSON 配列のフィールドを定義します。

列名

データ型

説明

QUERY_ID

TEXT

SQL ステートメントのための内部、システム生成識別子。この値は QUERY_HISTORY ビュー にも記載されています。

a0fda135-d678-4184-942b-c3411ae8d1ce

QUERY_START_TIME

TIMESTAMP_LTZ

ステートメントの開始時刻(UTC タイムゾーン)。

2022-01-25 16:17:47.388 +0000

USER_NAME

TEXT

クエリを発行したユーザー。

JSMITH

DIRECT_OBJECTS_ACCESSED

ARRAY

テーブル、ビュー、列などのデータオブジェクトの JSON 配列は、クエリで明示的に、またはアスタリスク(つまり *)を使用するなどのショートカットを介して直接指定されます。このフィールドには仮想列を返すことができます。

[
  {
    "columns": [
      {
        "columnId": 68610,
        "columnName": "CONTENT"
      }
    ],
    "objectDomain": "Table",
    "objectId": 66564,
    "objectName": "TEST_DB.TEST_SCHEMA.T1"
  }
]

BASE_OBJECTS_ACCESSED

ARRAY

すべてのベースデータオブジェクトの JSON 配列、具体的には、クエリを実行するためのテーブルの列。

注: このフィールドが、仮想列を含むビュー名またはビュー列を指定することはありません。

[
  {
    "columns": [
      {
        "columnId": 68610,
        "columnName": "CONTENT"
      }
    ],
    "objectDomain": "Table",
    "objectId": 66564,
    "objectName": "TEST_DB.TEST_SCHEMA.T1"
  }
]

OBJECTS_MODIFIED

ARRAY

クエリの書き込み操作に関連付けられたオブジェクトを指定する JSON 配列。

[
  {
    "columns": [
      {
        "columnId": 68611,
        "columnName": "CONTENT"
      }
    ],
    "objectDomain": "Table",
    "objectId": 66566,
    "objectName": "TEST_DB.TEST_SCHEMA.T6"
  }
]

DIRECT_OBJECTS_ACCESSEDBASE_OBJECTS_ACCESSED、および OBJECTS_MODIFIED 列の JSON 配列のフィールドについて以下で説明します。

フィールド

データ型

説明

columnId

NUMBER

アカウント内で一意の列 ID。この値は、 COLUMNS ビューの columnID と同じです。

columnName

TEXT

アクセスされた列の名前。

objectId

NUMBER

特定のアカウントおよびドメイン内で一意であるオブジェクトの識別子。この番号は一致します。

objectName

TEXT

アクセスされたオブジェクトの完全修飾名。

ステージにアクセスした場合、この値は次のようになります。

  • username (ユーザーステージ)

  • table_name (テーブルステージ)

  • stage_name (名前付きステージ)

objectDomain

TEXT

次のいずれかを使用します。 TableViewMaterialized viewExternal tableStream または Stage

位置

TEXT

データアクセスが外部ロケーション(例: s3://mybucket/a.csv)の場合における外部ロケーションの URL。 . クエリがステージにアクセスしない場合、このフィールドは省略されます。

stageKind

TEXT

ステージに書き込むときは、次のいずれかです。 Table | User | Internal Named | External Named

クエリがステージにアクセスしない場合、このフィールドは省略されます。

使用上の注意

  • ビューには、2021年2月22日から始まるデータが表示されます。

  • パフォーマンスを向上させるには、 QUERY_START_TIME 列でクエリをフィルターし、より狭い時間範囲を選択します。サンプルクエリについては、 ACCESS_HISTORY ビューのクエリ をご参照ください。

  • このビューは、次のタイプの 読み取り クエリをサポートします。

    • SELECT、CREATE TABLE ... AS SELECT (つまり、 CTAS)を含む。

      • Snowflakeは、 CTAS 操作で SELECT サブクエリを記録します。

    • CREATE TABLE ... CLONE

      • Snowflakeは、 CLONE 操作でソーステーブルを記録します。

    • COPY INTO ... TABLE

      • Snowflakeは、テーブルが FROM 句でソースとして指定されている場合に 限り、このクエリをログに記録します。

    • DML データを読み取る操作(例: SELECT サブクエリを含み、 WHERE または JOIN の特定の列を指定): INSERT ... SELECT、 UPDATE、 DELETE、および MERGE。

    • 関数内のクエリにテーブルが含まれている場合は、 ユーザー定義関数 (つまり、UDFs)と 表形式 SQL UDFs (UDTFs)。これは BASE_OBJECTS_ACCESSED フィールドでログに記録されます。

  • このビューは、次の型の 書き込み 操作をサポートします。

    • GET <内部ステージ>

    • PUT <内部ステージ>

    • DELETE

    • TRUNCATE

    • INSERT

      • INSERT INTO ... FROM SELECT *

      • INSERT INTO TABLE ... VALUES ()

    • MERGE INTO ... FROM SELECT *

    • UPDATE

      • UPDATE TABLE ... FROM SELECT * FROM ...

      • UPDATE TABLE ... WHERE ...

    • データのロードステートメント:

      • COPY INTO TABLE FROM internalStage

      • COPY INTO TABLE FROM externalStage

      • COPY INTO TABLE FROM externalLocation

    • データのアンロードステートメント:

      • COPY INTO internalStage FROM TABLE

      • COPY INTO externalStage FROM TABLE

      • COPY INTO externalLocation FROM TABLE

    • CREATE:

      • CREATE DATABASE ... CLONE

      • CREATE SCHEMA ... CLONE

      • CREATE TABLE ... CLONE

      • CREATE TABLE ... AS SELECT

  • このビューは、次のタイプのアクセスをログに記録 しません

  • さらに、このビューは次をサポートして いません

    • 新しい値の生成などの、 シーケンス

    • 外部関数の使用中にSnowflakeに出入りするデータ。

    • ベーステーブルと直接オブジェクトの間でアクセスされる中間ビュー。

      たとえば、次のオブジェクト構造を持つView_Aのクエリについて考えてみます。View_A » View_B » View_C » Base_Table。

      ACCESS_HISTORY ビューは、View_AとBase_Tableにクエリを記録しますが、View_BとView_Cには記録 しません

    • ビュー、マテリアライズドビュー、およびストリームに読み込むための操作。

    • 複製に起因するデータの移動。

  • Data Sharingプロバイダーアカウントが共有を通じてData Sharingコンシューマーアカウントにオブジェクトを共有する場合、

    • Data Sharingプロバイダーアカウント: プロバイダーアカウントで実行された共有オブジェクトに対するクエリとログは、Data Sharingコンシューマーアカウントには表示されません。

    • Data Sharingコンシューマーアカウント: コンシューマーアカウントで実行されたデータ共有に対するクエリはログに記録されてコンシューマーアカウントにのみ表示され、Data Sharingプロバイダーアカウントには表示されません。データ共有によってアクセスされるベーステーブルはログに記録されません。

  • セキュアビュー。ログ記録には、ビューを生成するための基になるベーステーブル(つまり、 BASE_OBJECTS_ACCESSED)が含まれています。例には、他のアカウントAccount Usageビューに対するクエリや、抽出、変換、およびロード(つまり、 ETL)操作のためのベーステーブルに対するクエリが含まれます。

最上部に戻る