- Esquema:
Exibição LISTING_ACCESS_HISTORY¶
Esta exibição no esquema DATA_SHARING_USAGE pode ser usada para explorar o histórico de acesso para listagens que publicam um compartilhamento de dados de propriedade de sua conta. LISTING_ACCESS_HISTORY fornece informações granulares sobre as consultas executadas em compartilhamentos de dados fornecidos por suas listagens. Para obter mais informações sobre os dados fornecidos pela exibição LISTING_ACCESS_HISTORY, consulte a seção Colunas.
Cada linha retornada por LISTING_ACCESS_HISTORY representa uma única instância quando um compartilhamento de dados foi acessado por uma consulta do consumidor. É provável que o mesmo compartilhamento de dados apareça várias vezes, uma linha para cada consulta que acessou o compartilhamento em um determinado período.
Nota
Esta exibição não mostra listagens que incluem um pacote de aplicativo como produto de dados.
Uma única consulta do consumidor pode acessar várias ações. O QUERY_TOKEN identifica a consulta que gerou uma linha no histórico de acesso à listagem. Para identificar uma coleção de compartilhamentos alcançada por uma única consulta do consumidor, use o QUERY_TOKEN.
A exibição LISTING_ACCESS_HISTORY não permite que os provedores obtenham qualquer informação privada do consumidor, como o texto real das consultas. A exibição também exclui quaisquer objetos que não sejam de propriedade da conta do provedor. Por exemplo, se um consumidor faz a junção de dados de sua listagem com seus próprios dados ou dados de outro provedor, apenas as ações de sua propriedade são retornadas pela exibição LISTING_ACCESS_HISTORY.
Colunas¶
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
QUERY_TOKEN |
VARCHAR |
ID Única para cada consulta realizada por um consumidor. O QUERY_TOKEN não se correlaciona com nenhum identificador de consulta real no lado do consumidor. |
QUERY_DATE |
DATE |
Data em que a consulta foi executada. |
EXCHANGE_NAME |
VARCHAR |
Snowflake Marketplace ou a troca de dados em que a listagem está disponível. |
SNOWFLAKE_REGION |
VARCHAR |
Snowflake Region onde ocorreu o consumo. |
LISTING_GLOBAL_NAME |
VARCHAR |
Nome global da listagem no Snowflake Marketplace ou troca de dados que fornece o compartilhamento. |
PROVIDER_ACCOUNT_LOCATOR |
VARCHAR |
Localizador de conta do titular do compartilhamento. |
PROVIDER_ACCOUNT_NAME |
VARCHAR |
Nome da conta do titular do compartilhamento. |
SHARE_NAME |
VARCHAR |
Nome do compartilhamento de dados que os consumidores acessaram. |
CONSUMER_ACCOUNT_LOCATOR |
VARCHAR |
Localizador de conta do consumidor. |
CONSUMER_ACCOUNT_NAME |
VARCHAR |
Nome da conta do consumidor. |
CONSUMER_ACCOUNT_ORGANIZATION |
VARCHAR |
Nome da organização para a conta do consumidor. |
LISTING_OBJECTS_ACCESSED |
ARRAY |
Consulte Matriz LISTING_OBJECTS_ACCESSED para formatação. |
REGION_GROUP |
VARCHAR |
Grupo de regiões onde se encontra a conta do consumidor. |
CONSUMER_NAME |
VARCHAR |
Contém o nome da conta do consumidor que acessou, usou ou solicitou uma listagem. Se nenhum nome estiver disponível, como para contas de teste, o valor será NULL. |
Notas de uso¶
Esta exibição não mostra listagens que incluem um pacote de aplicativo como produto de dados.
A latência da visualização pode ser de até 2 dias.
Os dados são retidos por 365 dias (1 ano).
Matriz LISTING_OBJECTS_ACCESSED¶
A matriz LISTING_OBJECTS_ACCESSED fornece detalhes sobre os objetos de uma ação acessados por uma consulta do consumidor. O formato de um item da matriz depende do tipo de objeto que foi acessado.
Funções:
{
"argumentSignature": (function_signature varchar),
"objectName": "DATABASE_NAME.SCHEMA_NAME.FUNCTION_NAME",
"objectID": "12345",
"objectDomain": "Function"
}
Procedimentos armazenados:
{
"argumentSignature": (function_signature varchar),
"objectName": "DATABASE_NAME.SCHEMA_NAME.PROCEDURE_NAME"
"objectID":"12345"
"objectDomain":"Procedure"
}
Tabelas, exibições e colunas:
[
{
"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"
}
]
Exemplos¶
Esta seção contém exemplos de consultas SQL para a exibição LISTING_ACCESS_HISTORY.
Exemplos:
Exibição agregada do acesso ao longo do tempo¶
Uma exibição agregada de quais funções, procedimentos armazenados, tabelas, exibições e colunas foram acessados (durante um determinado período) e o número total de vezes.
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;
Exibição agregada do acesso ao longo do tempo por consumidor¶
Este exemplo é semelhante ao Exibição agregada do acesso ao longo do tempo, discriminado por consumidor.
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;
Contagem de acesso por coluna¶
Para um determinado objeto (tabela, exibição), quantas vezes cada coluna foi acessada.
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;
Junções de tabela¶
Uma exibição de qual combinação de tabelas está sendo unida.
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
Junções de tabela por consumidor¶
Uma exibição de quais tabelas estão sendo unidas (pares), discriminadas por consumidor.
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;