Schema:

Nutzung von Data Sharing

Ansicht LISTING_ACCESS_HISTORY

Diese Ansicht im DATA_SHARING_USAGE-Schema kann verwendet werden, um den Zugriffsverlauf für alle Angebote zu untersuchen, die eine Datenfreigabe veröffentlichen, die Ihrem Konto gehört. LISTING_ACCESS_HISTORY liefert detaillierte Informationen zu Abfragen, die auf den Datenfreigaben Ihrer Freigabeangebote ausgeführt wurden. Weitere Informationen zu den in der LISTING_ACCESS_HISTORY-Ansicht bereitgestellten Daten finden Sie im Abschnitt Spalten.

Jede von LISTING_ACCESS_HISTORY zurückgegebene Zeile enthält einen einzelnen Zugriff auf eine Datenfreigabe durch eine Verbraucherabfrage. Es ist wahrscheinlich, dass dieselbe Datenfreigabe mehrfach angezeigt wird, denn für jede Abfrage, die in einem bestimmten Zeitraum auf die Freigabe zugegriffen hat, wird eine separate Zeile erstellt.

Bemerkung

In dieser Ansicht werden keine Angebote angezeigt, die ein Anwendungspaket als Datenprodukt enthalten.

Mit einer einzigen Verbraucherabfrage kann auf mehrere Datenfreigaben zugegriffen werden. Anhand des QUERY_TOKEN-Werts kann die Abfrage identifiziert werden, die eine Zeile im Zugriffsverlauf des Freigabeangebots generiert hat. Um alle Freigaben zu identifizieren, auf die von derselben Verbraucherabfrage zugegriffen wurde, verwenden Sie den QUERY_TOKEN-Wert.

Mit der LISTING_ACCESS_HISTORY-Ansicht erhalten Anbietern allerdings keine privaten Verbraucherinformationen wie z. B. den eigentlichen Abfragetext. Die Ansicht schließt auch alle Objekte aus, die nicht dem Anbieterkonto gehören. Wenn beispielsweise ein Verbraucher Daten aus Ihrem Freigabeangebot mit seinen eigenen Daten oder den Daten eines anderen Anbieters kombiniert, werden in der LISTING_ACCESS_HISTORY-Ansicht nur die Freigaben zurückgegeben, deren Eigentümer Sie sind.

Spalten

Spaltenname

Datentyp

Beschreibung

QUERY_TOKEN

VARCHAR

Eindeutig ID für jede von einem Verbraucher ausgeführte Abfrage. Ein QUERY_TOKEN-Wert korreliert nicht mit den tatsächlichen Abfragebezeichnern auf Verbraucherseite.

QUERY_DATE

DATE

Datum, an dem die Abfrage ausgeführt wurde.

EXCHANGE_NAME

VARCHAR

Snowflake Marketplace oder die Datenbörse (Data Exchange), in dem das Freigabeangebot verfügbar ist.

SNOWFLAKE_REGION

VARCHAR

Snowflake Region, in der die Nutzung stattfand.

LISTING_GLOBAL_NAME

VARCHAR

Globaler Name des Freigabeangebots auf Snowflake Marketplace oder in der Datenbörse (Data Exchange), wo das die Freigabe bereitgestellt wird.

PROVIDER_ACCOUNT_LOCATOR

VARCHAR

Konto-Locator des Eigentümers der Freigabe.

PROVIDER_ACCOUNT_NAME

VARCHAR

Kontoname des Eigentümers der Freigabe.

SHARE_NAME

VARCHAR

Name der Datenfreigabe, auf die die Verbraucher zugegriffen haben.

CONSUMER_ACCOUNT_LOCATOR

VARCHAR

Konto-Locator des Verbrauchers.

CONSUMER_ACCOUNT_NAME

VARCHAR

Kontoname des Verbrauchers.

CONSUMER_ACCOUNT_ORGANIZATION

VARCHAR

Name der Organisation des Verbraucherkontos.

LISTING_OBJECTS_ACCESSED

ARRAY

Weitere Informationen zur Formatierung finden Sie unter LISTING_OBJECTS_ACCESSED-Array.

REGION_GROUP

VARCHAR

Regionsgruppe, in der sich das Konto des Verbrauchers befindet.

CONSUMER_NAME

VARCHAR

Enthält den Namen des Verbraucherkontos, das auf ein Freigabeangebot zugegriffen oder dieses genutzt oder angefordert hat. Wenn kein Name verfügbar ist, wie z. B. bei Testkonten, ist der Wert NULL.

Nutzungshinweise

  • In dieser Ansicht werden keine Angebote angezeigt, die ein Anwendungspaket als Datenprodukt enthalten.

  • Die Latenz der Ansicht kann bis zu 2 Tage betragen.

  • Daten werden 365 Tage (1 Jahr) lang aufbewahrt.

LISTING_OBJECTS_ACCESSED-Array

Das LISTING_OBJECTS_ACCESSED-Array enthält Details zu den Objekten einer Freigabe, auf die eine Verbraucherabfrage zugreift. Das Format eines Elements im Array hängt vom Typ des Objekts ab, auf das zugegriffen wurde.

Funktionen:

{
  "argumentSignature": (function_signature varchar),
  "objectName": "DATABASE_NAME.SCHEMA_NAME.FUNCTION_NAME",
  "objectID": "12345",
  "objectDomain": "Function"
}
Copy

Gespeicherte Prozeduren:

{
  "argumentSignature": (function_signature varchar),
  "objectName": "DATABASE_NAME.SCHEMA_NAME.PROCEDURE_NAME"
  "objectID":"12345"
  "objectDomain":"Procedure"
}
Copy

Tabellen, Ansichten und Spalten:

[
  {
    "Columns": [
      {
        "columnId": ######,
        "columnName": "column1_name"
      },
      {
        "columnId": ######,
        "columnName": "column2_name"
      }
    ],
    "objectDomain":"VIEW",
    "objectId": ##view_id##,
    "objectName": "DATABASE_1.PUBLIC.VIEW_1"
  },
  {
    "Columns": [
      {
        "columnId": ######,
        "columnName": "column3_name"
      },
      {
        "columnId": ######,
        "columnName": "column4_name"
      }
    ],
    "objectDomain":"TABLE",
    "objectId": ##table_id##,
    "objectName": "DATABASE_2.PUBLIC.TABLE1"
  }
]
Copy

Beispiele

Dieser Abschnitt enthält SQL-Beispielabfragen für die Ansicht LISTING_ACCESS_HISTORY.

Beispiele:

Aggregierte Ansicht des Zugriffs im Zeitverlauf

Eine aggregierte Ansicht der Funktionen, gespeicherten Prozeduren, Tabellen, Ansichten und Spalten, auf die (innerhalb eines bestimmten Zeitraums) zugegriffen wurde, sowie die Gesamtzahl der Zugriffe.

select
  lah.exchange_name,
  lah.listing_global_name,
  lah.share_name,
  los.value:"objectName"::string as object_name,
  coalesce(los.value:"objectDomain"::string, los.value:"objectDomain"::string) as object_type,
  count(distinct lah.query_token) as n_queries,
  count(distinct lah.consumer_account_locator) as n_distinct_consumer_accounts
from SNOWFLAKE.DATA_SHARING_USAGE.LISTING_ACCESS_HISTORY as lah
join lateral flatten(input=>lah.listing_objects_accessed) as los
where true
  and query_date between '2022-03-01' and '2022-04-30'
group by 1,2,3,4,5
order by 1,2,3,4,5;
Copy

Aggregierte Ansicht des Zugriffs im Zeitverlauf nach Verbraucher

Dieses Beispiel ist ähnlich wie Aggregierte Ansicht des Zugriffs im Zeitverlauf, nur aufgeschlüsselt nach Verbrauchern.

select
  lah.exchange_name,
  lah.listing_global_name,
  lah.share_name,
  los.value:"objectName"::string as object_name,
  coalesce(los.value:"objectDomain"::string, los.value:"objectDomain"::string) as object_type,
  consumer_account_locator,
  count(distinct lah.query_token) as n_queries
from SNOWFLAKE.DATA_SHARING_USAGE.LISTING_ACCESS_HISTORY as lah
join lateral flatten(input=>lah.listing_objects_accessed) as los
where true
  and query_date between '2022-03-01' and '2022-04-30'
group by 1,2,3,4,5,6
order by 1,2,3,4,5,6;
Copy

Anzahl der Zugriffe nach Spalte

Häufigkeit, mit der bei einem bestimmten Objekt (Tabelle, View) auf jede Spalte zugegriffen wurde.

select
  los.value:"objectDomain"::string as object_type,
  los.value:"objectName"::string as object_name,
  cols.value:"columnName"::string as column_name,
  count(distinct lah.query_token) as n_queries,
  count(distinct lah.consumer_account_locator) as n_distinct_consumer_accounts
from SNOWFLAKE.DATA_SHARING_USAGE.LISTING_ACCESS_HISTORY as lah
join lateral flatten(input=>lah.listing_objects_accessed) as los
join lateral flatten(input=>los.value, path=>'columns') as cols
where true
  and los.value:"objectDomain"::string in ('Table', 'View')
  and query_date between '2022-03-01' and '2022-04-30'
  and los.value:"objectName"::string = 'DATABASE_NAME.SCHEMA_NAME.TABLE_NAME'
  and lah.consumer_account_locator = 'CONSUMER_ACCOUNT_LOCATOR'
group by 1,2,3;
Copy

Tabellenverknüpfungen (Joins)

Eine Übersicht darüber, welche Kombinationen von Tabellen miteinander verknüpft werden.

with
accesses as (
  select
    lah.query_token,
    array_agg(distinct los.value:"objectName"::string) as object_names
  from SNOWFLAKE.DATA_SHARING_USAGE.LISTING_ACCESS_HISTORY as lah
  join lateral flatten(input=>lah.listing_objects_accessed) as los
  where true
    and los.value:"objectDomain"::string in ('Table', 'View')
    and query_date between '2022-03-01' and '2022-04-30'
  group by 1
)
select
  object_names,
  sum(1) as n_queries
from accesses
group by 1
Copy

Tabellenverknüpfungen (Joins) nach Verbraucher

Eine nach Verbrauchern aufgeschlüsselte Übersicht über die Tabellen, die paarweise miteinander verknüpft sind.

with
accesses as (
  select distinct
    los.value:"objectDomain"::string as object_type,
    los.value:"objectName"::string as object_name,
    lah.query_token,
    lah.consumer_account_locator
  from SNOWFLAKE.DATA_SHARING_USAGE.LISTING_ACCESS_HISTORY as lah
  join lateral flatten(input=>lah.listing_objects_accessed) as los
  where true
    and los.value:"objectDomain"::string in ('Table', 'View')
    and query_date between '2022-03-01' and '2022-04-30'
)
select
  a1.object_name as object_name_1,
  a2.object_name as object_name_2,
  a1.consumer_account_locator as consumer_account_locator,
  count(distinct a1.query_token) as n_queries
from accesses as a1
join accesses as a2
  on a1.query_token = a2.query_token
  and a1.object_name < a2.object_name
group by 1,2,3;
Copy