Ansicht ACCESS_HISTORY

Diese Account Usage-Ansicht kann verwendet werden, um den Zugriffsverlauf von Snowflake-Objekten (z. B. Tabellen, Ansichten, Spalten) innerhalb der letzten 365 Tage (1 Jahr) abzufragen.

Spalten

In diesem Abschnitt gibt es zwei Tabellen:

  • Die erste Tabelle definiert die Spalten in der ACCESS_HISTORY-Ansicht.

  • Die zweite Tabelle definiert die Felder im JSON-Array für die Spalten BASE_OBJECTS_ACCESSED, DIRECT_OBJECTS_ACCESSED und OBJECTS_MODIFIED.

Spaltenname

Datentyp

Beschreibung

Beispiel

QUERY_ID

TEXT

Interner, vom System generierter Bezeichner für die SQL-Anweisung. Dieser Wert wird auch im QUERY_HISTORY-Ansicht erwähnt.

a0fda135-d678-4184-942b-c3411ae8d1ce

QUERY_START_TIME

TIMESTAMP_LTZ

Startzeit der Anweisung (UTC-Zeitzone).

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

USER_NAME

TEXT

Benutzer, der die Abfrage ausgegeben hat.

JSMITH

DIRECT_OBJECTS_ACCESSED

ARRAY

Ein JSON-Array mit Datenobjekten wie Tabellen, Ansichten und Spalten, die direkt in der Abfrage explizit oder durch Verwendung von Shortcuts wie dem Sternchen (d. h. *) benannt werden. In diesem Feld können virtuelle Spalten zurückgegeben werden.

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

BASE_OBJECTS_ACCESSED

ARRAY

Ein JSON-Array mit allen Basisdatenobjekten, insbesondere Spalten von Tabellen, für die Abfrageausführung.

Hinweis: In diesem Feld werden niemals Ansichtsnamen oder Ansichtsspalten, einschließlich virtueller Spalten, angegeben.

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

OBJECTS_MODIFIED

ARRAY

Ein JSON-Array, das die Objekte angibt, die mit einer Schreiboperation in der Abfrage verknüpft waren.

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

Die Felder im JSON-Array für die Spalten DIRECT_OBJECTS_ACCESSED, BASE_OBJECTS_ACCESSED und OBJECTS_MODIFIED werden im Folgenden beschrieben.

Feld

Datentyp

Beschreibung

columnId

NUMBER

Eine Spalte-ID, die innerhalb des Kontos eindeutig ist. Dieser Wert ist identisch mit der columnID in der Ansicht COLUMNS.

columnName

TEXT

Der Name der Spalte, auf die zugegriffen wurde.

objectId

NUMBER

Ein Bezeichner für das Objekt, der innerhalb eines gegebenen Kontos und einer gegebenen Domäne eindeutig ist. Diese Nummer stimmt überein mit:

  • TABLE_ID-Nummer für eine Tabelle, Ansicht und materialisierte Ansicht.

  • Wenn auf einen Stagingbereich zugegriffen wurde, stimmt diese Nummer überein mit:

    • NAME – Bezeichner für einen Benutzer (Benutzer-Stagingbereich).

    • TABLE_ID – Nummer für eine Tabelle (Tabellen-Stagingbereich).

    • STAGE_ID – Nummer für einen Stagingbereich (Benannter Stagingbereich).

objectName

TEXT

Der vollqualifizierte Name des Objekts, auf das zugegriffen wurde.

Wenn auf einen Stagingbereich zugegriffen wurde, gibt dieser Wert Folgendes an:

  • username (Benutzer-Stagingbereich)

  • table_name (Tabellen-Stagingbereich)

  • stage_name (Benannter Stagingbereich)

objectDomain

TEXT

Eine der folgenden Optionen: Table, View, Materialized view, External table, Stream oder Stage.

location

TEXT

Die URL des externen Standorts, wenn der Datenzugriff auf einen externen Standort erfolgt (z. B. s3://mybucket/a.csv). . Wenn die Abfrage nicht auf einen Stagingbereich zugreift, wird dieses Feld weggelassen.

stageKind

TEXT

Wenn Sie in einen Stagingbereich schreiben, wählen Sie eine der folgenden Optionen: Table | User | Internal Named | External Named

Wenn die Abfrage nicht auf einen Stagingbereich zugreift, wird dieses Feld weggelassen.

Nutzungshinweise

  • Die Ansicht enthält Daten ab dem 22. Februar 2021 an.

  • Um die Leistung zu erhöhen, können Sie die Abfragen nach der Spalte QUERY_START_TIME filtern und engere Zeitbereiche auswählen. Beispielabfragen finden Sie unter Abfragen der ACCESS_HISTORY-Ansicht.

  • Diese Ansicht unterstützt Lese-Abfragen des folgenden Typs:

    • SELECT, einschließlich CREATE TABLE … AS SELECT (d. h. CTAS).

      • Snowflake erfasst SELECT-Unterabfragen von CTAS-Operationen.

    • CREATE TABLE … CLONE

      • Snowflake erfasst die Quelltabelle in einer CLONE-Operation.

    • COPY INTO … TABLE

      • Snowflake protokolliert diese Abfrage nur dann, wenn die Tabelle in einer FROM-Klausel als Quelle angegeben wird.

    • DML-Operationen, die Daten lesen (z. B. enthalten eine SELECT-Unterabfrage, geben bestimmte Spalten in WHERE oder JOIN an): INSERT … SELECT, UPDATE, DELETE und MERGE.

    • Benutzerdefinierte Funktionen (d. h. UDFs) und Tabellarische SQL-UDFs (UDTFs), wenn Tabellen innerhalb der Funktionen in Abfragen enthalten sind. Dies wird im Feld BASE_OBJECTS_ACCESSED protokolliert.

  • Diese Ansicht unterstützt Schreiboperationen des folgenden Typs:

    • GET <interner_Stagingbereich>

    • PUT <interner_Stagingbereich>

    • DELETE

    • TRUNCATE

    • INSERT

      • INSERT INTO … FROM SELECT *

      • INSERT INTO TABLE … VALUES ()

    • MERGE INTO … FROM SELECT *

    • UPDATE

      • UPDATE TABLE … FROM SELECT * FROM …

      • UPDATE TABLE … WHERE …

    • Anweisungen zum Laden von Daten:

      • COPY INTO TABLE FROM internalStage

      • COPY INTO TABLE FROM externalStage

      • COPY INTO TABLE FROM externalLocation

    • Anweisungen zum Entladen von Daten:

      • 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

  • Diese Ansicht protokolliert nicht den Zugriff folgender Typen:

  • Außerdem unterstützt diese Ansicht Folgendes nicht:

    • Sequenzen, einschließlich der Generierung neuer Werte.

    • Daten, die bei Verwendung einer externen Funktion in Snowflake eingehen oder Snowflake verlassen.

    • Zwischensichten, auf die zwischen der Basistabelle und dem direkten Objekt zugegriffen wird.

      Betrachten Sie zum Beispiel eine Abfrage auf Ansicht_A mit der folgenden Objektstruktur: Ansicht_A » Ansicht_B » Ansicht_C » Basistabelle.

      Die ACCESS_HISTORY-Ansicht erfasst die Abfrage auf Ansicht_A und auf die Basistabelle, aber nicht Ansicht_B und Ansicht_C.

    • Operationen zum Befüllen von Ansichten, materialisierten Ansichten und Streams

    • Verschieben von Daten für Replikation

  • Wenn ein Data Sharing-Anbieterkonto Objekte für Data Sharing-Verbraucherkonten über eine Freigabe freigibt:

    • Data Sharing-Anbieterkonten: Die Abfragen und Protokolle zu den freigegebenen Objekten, die im Anbieterkonto ausgeführt werden, sind für Data Sharing-Verbraucherkonten nicht sichtbar.

    • Data Sharing-Verbraucherkonten: Die im Verbraucherkonto ausgeführten Abfragen auf der Datenfreigabe werden protokolliert und sind nur für das Verbraucherkonto sichtbar, nicht für das Konto des Data Sharing-Anbieters. Die Basistabellen, auf die die Datenfreigabe zugreift, werden nicht protokolliert.

  • Sichere Ansichten. Der Protokollsatz enthält die zugrunde liegende Basistabelle (d. h. BASE_OBJECTS_ACCESSED) zum Generieren der Ansicht. Beispiele hierfür sind Abfragen auf andere Account Usage-Ansichten sowie Abfragen auf Basistabellen für Extraktions-, Transformations- und Ladeoperationen (d. h. ETL).