Vue ACCESS_HISTORY¶
Cette vue Account Usage peut être utilisée pour interroger l’historique des accès aux objets Snowflake (par exemple, table, vue, colonne) au cours des 365 derniers jours (1 année).
Colonnes¶
Cette section comprend deux tableaux :
Le premier tableau définit les colonnes de la vue ACCESS_HISTORY.
Le deuxième tableau définit les champs du tableau JSON pour les colonnes BASE_OBJECTS_ACCESSED, DIRECT_OBJECTS_ACCESSED et OBJECTS_MODIFIED.
Nom de la colonne |
Type de données |
Description |
Exemple |
---|---|---|---|
QUERY_ID |
TEXT |
Identificateur interne, généré par le système pour l’instruction SQL. Cette valeur est également mentionnée dans le Vue QUERY_HISTORY. |
|
QUERY_START_TIME |
TIMESTAMP_LTZ |
Heure de début de l’instruction (fuseau horaireUTC). |
|
USER_NAME |
TEXT |
Utilisateur qui a émis la requête. |
|
DIRECT_OBJECTS_ACCESSED |
ARRAY |
Tableau JSON d’objets de données, tels que des tables, des vues et des colonnes nommés directement dans la requête de manière explicite ou par des raccourcis comme l’utilisation d’un astérisque (c’est-à-dire |
[
{
"columns": [
{
"columnId": 68610,
"columnName": "CONTENT"
}
],
"objectDomain": "Table",
"objectId": 66564,
"objectName": "TEST_DB.TEST_SCHEMA.T1"
}
]
|
BASE_OBJECTS_ACCESSED |
ARRAY |
Un tableau JSON de tous les objets de données de base, plus précisément, les colonnes des tables pour exécuter la requête. Remarque : ce champ ne spécifiera jamais les noms des vues ou les colonnes des vues, y compris les colonnes virtuelles. |
[
{
"columns": [
{
"columnId": 68610,
"columnName": "CONTENT"
}
],
"objectDomain": "Table",
"objectId": 66564,
"objectName": "TEST_DB.TEST_SCHEMA.T1"
}
]
|
OBJECTS_MODIFIED |
ARRAY |
Un tableau JSON qui spécifie les objets qui ont été associés à une opération d’écriture dans la requête. |
[
{
"columns": [
{
"columnId": 68611,
"columnName": "CONTENT"
}
],
"objectDomain": "Table",
"objectId": 66566,
"objectName": "TEST_DB.TEST_SCHEMA.T6"
}
]
|
Les champs du tableau JSON pour les colonnes DIRECT_OBJECTS_ACCESSED
, BASE_OBJECTS_ACCESSED
, et OBJECTS_MODIFIED
sont décrits ci-dessous.
Champ |
Type de données |
Description |
---|---|---|
columnId |
NUMBER |
ID de colonne qui est unique dans le compte. Cette valeur est identique à columnID de la vue COLUMNS. |
columnName |
TEXT |
Nom de la colonne à laquelle on accède. |
objectId |
NUMBER |
Un identificateur pour l’objet, qui est unique dans un compte et un domaine donnés. Ce numéro correspondra :
|
objectName |
TEXT |
Nom entièrement qualifié de l’objet auquel on a accédé. S’il y a eu un accès à la zone de préparation, cette valeur sera :
|
objectDomain |
TEXT |
Un des éléments suivants : |
emplacement |
TEXT |
L’URL de l’emplacement externe lorsque l’accès aux données est un emplacement externe (par exemple, |
stageKind |
TEXT |
Lorsque vous effectuez une opération en écriture vers une zone de préparation, l’un des éléments suivants : Si la requête n’accède pas à une zone de préparation, ce champ est omis. |
Notes sur l’utilisation¶
La vue affiche les données à partir de 22 février 2021.
Pour améliorer les performances, filtrez les requêtes sur la colonne QUERY_START_TIME et choisissez des périodes plus restreintes. Pour des exemples de requêtes, voir Interrogation de la vue ACCESS_HISTORY Vue.
Cette vue prend en charge les requêtes de type lecture suivantes :
SELECT dont CREATE TABLE … AS SELECT (c’est-à-dire CTAS).
Snowflake enregistre la sous-requête SELECT dans une opération CTAS.
CREATE TABLE … CLONE
Snowflake enregistre la table source dans une opération CLONE.
COPY INTO … TABLE
Snowflake enregistre cette requête seulement lorsque la table est spécifiée comme source dans une clause FROM.
Opérations DML qui lisent des données (par exemple, contient une sous-requête SELECT, spécifie certaines colonnes dans WHERE ou JOIN) : INSERT … SELECT, UPDATE, DELETE et MERGE.
Fonctions définies par l’utilisateur (c’est-à-dire UDFs) et UDFs SQL tabulaires (UDTFs) si les tables sont incluses dans les requêtes à l’intérieur des fonctions. Ceci est enregistré dans le champ
BASE_OBJECTS_ACCESSED
.
Cette vue prend en charge les opérations d’écriture du type suivant :
GET
<zone_de_préparation_interne>
PUT
<zone_de_préparation_interne>
DELETE
TRUNCATE
INSERT
INSERT INTO … FROM SELECT *
INSERT INTO TABLE … VALUES ()
MERGE INTO … FROM SELECT *
UPDATE
UPDATE TABLE … FROM SELECT * FROM …
UPDATE TABLE … WHERE …
Instructions de chargement de données :
COPY INTO TABLE FROM internalStage
COPY INTO TABLE FROM externalStage
COPY INTO TABLE FROM externalLocation
Instructions de déchargement des données :
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
Cette vue n’enregistre pas les accès des types suivants :
Fonctions de table ou d’autres vues Account Usage.
RESULT_SCAN pour obtenir des résultats antérieurs.
De plus, cette vue ne prend pas en charge :
Les séquences, notamment la génération de nouvelles valeurs.
Les données qui entrent ou sortent de Snowflake lors de l’utilisation d’une fonction externe.
Les vues intermédiaires accessibles entre la table de base et l’objet direct.
Par exemple, considérons une requête sur la vue_A avec la structure d’objet suivante : Vue_A » Vue_B » Vue_C » Table_base.
La vue ACCESS_HISTORY enregistre la requête sur la Vue_A et la Table_base, pas sur la Vue_A ni la Vue_B.
Les opérations pour alimenter les vues, les vues matérialisées et les flux.
Mouvement de données résultant de la réplication.
Si un compte de fournisseur Data Sharing partage des objets avec des comptes de consommateurs Data Sharing par le biais d’un partage :
Comptes de fournisseurs Data Sharing : les requêtes et les journaux sur les objets partagés exécutés dans le compte fournisseur ne seront pas visibles pour les comptes de consommateurs Data Sharing.
Comptes de consommateurs Data Sharing : les requêtes sur le partage de données exécutées dans le compte de consommateur seront enregistrées et uniquement visibles par le compte de consommateur, et non par le compte de fournisseur Data Sharing. Les tables de base auxquelles on accède par le partage de données ne seront pas enregistrées.
Vues sécurisées. L’enregistrement du journal contient la table de base sous-jacente (c’est-à-dire
BASE_OBJECTS_ACCESSED
) pour générer la vue. Les exemples incluent des requêtes sur d’autres vues Account Usage et des requêtes sur des tables de base pour des opérations d’extraction, de transformation et de chargement (c’est-à-dire ETL).