Especificação da oferta de dados¶
Define um conjunto de tabelas que um provedor está disposto a compartilhar com os executores de análise, bem como regras de compartilhamento, como políticas, formatos de coluna e se a tabela deve ser utilizada com um modelo.
O provedor de dados envia essa definição chamando REGISTER_DATA_OFFERING, que retorna um ID de oferta que pode ser usado na especificação da colaboração.
Uma oferta de dados não estará disponível em uma colaboração até que a conta que registrou a oferta de dados entre na colaboração.
Você precisa ter o privilégio de conta REGISTER DATA OFFERING para participar de qualquer colaboração na qual possa ativar dados; ou seja, você é um executor de análises, e a especificação da colaboração inclui um campo activation_destinations. Para obter mais informações, consulte o guia de referência de API de gerenciamento de acesso.
Esquema:
api_versionA versão da API do Collaboration utilizada. Deve ser
2.0.0.spec_typeIdentificador do tipo de especificação. Deve ser
data_offering.name: data_offering_nameUm nome para um conjunto de tabelas e colunas a serem expostas aos colaboradores. Esse nome é usado como o valor de referência da oferta de dados em uma especificação de colaboração. Você pode criar várias ofertas de dados com tabelas e colunas sobrepostas para diferentes casos de uso. Deve seguir as regras do identificador do Snowflake com um máximo de 75 caracteres e ser exclusivo na conta de sala limpa de dados do Snowflake. O par
name_versiondeve ser único para todas as ofertas de dados nesta conta.versionUm identificador de versão personalizado para esta especificação de oferta de dados (máximo de 20 caracteres). Deve seguir as regras do identificador do Snowflake. A cadeia de caracteres de versão recebe sua própria coluna na resposta a VIEW_DATA_OFFERINGS e VIEW_REGISTERED_DATA_OFFERINGS; portanto, use um valor que possa ser classificado por valor crescente. Exemplo:
V0description: data_offering_description(opcional)Uma descrição da oferta de dados (máximo de 1.000 caracteres).
datasetsUma lista de um ou mais conjuntos de dados para disponibilizar à colaboração.
alias: dataset_nameUm nome para este objeto de dados, utilizado em
collaboration.run. Deve seguir as :doc:`regras do identificador do Snowflake </sql-reference/identifiers-syntax>`e ser único nesta oferta. Máximo de 75 caracteres.data_object_fqn: fully_qualified_table_nameDescreve uma única tabela disponível para os colaboradores. Forneça o nome totalmente qualificado do objeto de origem em sua conta (
database.schema.table_name). O comprimento máximo é de 773 caracteres.allowed_analyses: allowed_analysis_typeO tipo de análises que os colaboradores podem executar nesta tabela. Campo obrigatório com os seguintes valores:
template_only: O executor da análise pode consultar essa tabela somente usando um modelo listado na especificação da colaboração.template_and_freeform_sql: O executor da análise pode consultar essa tabela usando um modelo listado na especificação da colaboração ou usando consultas SQL de formato livre em um ambiente de código.
object_class(opcional)O tipo de objeto. Um dos seguintes valores:
ads_log: As tabelas e colunas listadas aqui devem atender aos requisitos do log de anúncios.custom: Um conjunto personalizado de tabelas e colunas que não tem requisitos especiais.
schema_and_template_policiesForneça uma lista de nomes de colunas da tabela listada por
data_object_fqne defina as políticas e o formato de cada coluna. Somente as colunas listadas aqui estão disponíveis para colaboradores. Cada coluna tem os seguintes descritores:category: category_typeA categoria determina se alguma renomeação de coluna é aplicada e qualquer aplicação de formato de dados que deve ser aplicada.
categoryecolumn_typedeterminam o nome da coluna exposta ao executor de análise. Os seguintes valores são suportados:join_standard: Esta é uma coluna que pode ser unida com dados em um formato especificado no campocolumn_type. Esta coluna é renomeada para o valorcolumn_typena oferta de dados compartilhados. Essa coluna é adicionada à política de junção da sala limpa.join_custom: Esta é uma coluna que pode ser unida em qualquer formato. Use esta opção quando não houver umcolumn_typeapropriado para sua coluna de junção. O nome da coluna original é utilizado na oferta de dados compartilhados. Essa coluna é adicionada à política de junção da sala limpa.timestamp: Esta é uma coluna projetável que especifica um carimbo de data/hora para qualquer evento. A coluna é renomeada comotimestampna oferta de dados compartilhados.passthrough: Esta é uma coluna projetável de qualquer outro tipo. O nome da coluna original é utilizado na oferta de dados compartilhados.event_type: Essa é uma coluna programável que registra uma classificação de tipo de evento para a linha, por exemplo: “compra”, “inscrição”, “impressão”, “clique” e assim em diante.
column_type: <format_type>(Obrigatório quando category=join_standard, ignorado para outros tipos de categoria)O formato dos dados. Se os dados não estiverem em conformidade com esse formato, sua chamada para REGISTER_DATA_OFFERING falhará. Forneça esse campo para colunas em que
category = join_standard.categoryecolumn_type:ref:` determinam o nome da coluna exposto ao executor de análise <label-dcr_source_column_renaming>`. Não é possível atribuir o mesmo valorcolumn_typea várias colunas na mesma tabela. Os seguintes tipos de formato são compatíveis:email: Um endereço de e-mail bruto.hashed_email_sha256: Um e-mail com hash SHA256.hashed_email_b64_encoded: Um e-mail com hash codificado em base64.phone: Um número de telefone sem pontuação. Por exemplo:2015551212.hashed_phone_sha256: Um número de telefone com hash SHA256. O número original deve estar no formatophone.hashed_phone_b64_encoded: Um número de telefone com hash codificado em base64.device_id: O ID de um dispositivo bruto, como o de um dispositivo de publicidade móvel ou de um dispositivo CTV.hashed_device_id_sha256: ID do dispositivo com hash SHA256. O original deve estar no formatodevice_id.hashed_device_b64_encoded: ID de um dispositivo com hash codificado em base64.ip_address: um endereço IP bruto em formato IPv4.hashed_ip_address_sha256: endereço IPv4 com hash SHA256. O original deve estar no formatoip_address.hashed_ip_address_b64_encoded: um endereço IP com hash codificado em base64.first_name: Um nome bruto.hashed_first_name_sha256: Um nome SHA256 com hash. O original deve estar no formatofirst_name.hashed_first_name_b64_encoded: Um nome com hash codificado em base64.last_name: Um sobrenome bruto.hashed_last_name_sha256: Um sobrenome SHA256 com hash. O original deve estar no formatolast_name.hashed_last_name_b64_encoded: Um sobrenome com hash codificado em base64.
activation_allowed(opcional)Indica se esta coluna pode ser utilizada para fins de ativação. O padrão é
false.
freeform_sql_policies(opcional)Se
allowed_analysesfortemplate_and_freeform_sql, este campo opcional listará todas as políticas do Snowflake que devem ser aplicadas em consultas SQL de formato livre executadas nesta oferta de dados. Para obter mais informações, consulte Aplicar a política do Snowflake à oferta de dados (somente para uso da consulta de forma livre).
Os seguintes tipos são suportados:
aggregation_policy(opcional)Uma única configuração de política de agregação.
name: O nome da política totalmente qualificada.
entity_keys(opcional): Lista de nomes de colunas que servem como chaves de entidade para a política de agregação. NOTE: se essas colunas tiverem sido renomeadas, você deve usar o nome da coluna gerada.join_policy(opcional)Uma única configuração de política de junção.
name: O nome da política totalmente qualificada. NOTE: se essa coluna tiver sido renomeada, você deve usar o nome da coluna gerada.
columns(opcional): lista de nomes de colunas às quais esta política se aplica.masking_policies(opcional)Uma matriz de configurações de políticas de mascaramento.
name: O nome da política totalmente qualificada. NOTE: se essa coluna tiver sido renomeada, você deve usar o nome da coluna gerada.
columns(opcional): lista de nomes de colunas às quais esta política se aplica.projection_policies(opcional)Uma matriz de configurações de políticas de projeção.
name: O nome da política totalmente qualificada. NOTE: se essa coluna tiver sido renomeada, você deve usar o nome da coluna gerada.
columns(opcional): lista de nomes de colunas às quais esta política se aplica.row_access_policy(opcional)Um objeto que descreve uma configuração de política de acesso a linhas.
name: O nome da política totalmente qualificada. NOTE: se essa coluna tiver sido renomeada, você deve usar o nome da coluna gerada.
columns(opcional): lista de nomes de colunas às quais esta política se aplica.
require_freeform_sql_policy(opcional)Se essa fonte de dados deve definir
freeform_sql_policies. Isso é utilizado como uma medida de segurança para impedir a vinculação de uma fonte de dados compatível com as consultas SQL de formato livre sem atribuir políticas a ela.