Snowflake configuração da linhagem
Para importar metadados de linhagem de Snowflake, crie uma conexão, uma definição de fonte de dados e um trabalho de importação de metadados.
Snowflake é uma plataforma de gerenciamento de dados baseada na nuvem que oferece às empresas uma arquitetura flexível e escalável para uma colaboração eficaz em torno dos dados.
Metadados processados
Os seguintes metadados do Snowflake são processados e exibidos no lineage:
- Dicionários de dados
- Scripts
- Visualizações
- Funções
- Tabelas externas
- Procedimentos
Limitações
As limitações a seguir se aplicam:
- Os seguintes dados não são processados:
- Snowpark (Java, Scala, Python )
- Procedimentos de JavaScript no ` Snowflake `
- Funções definidas pelo usuário (UDFs) em Java, Python, JavaScript
- UDFs seguras
- Recursos que utilizam código executado dinamicamente por meio da instrução 'EXECUTE IMMEDIATE'.
- Recursos introduzidos ou alterados recentemente e alguns recursos que raramente são utilizados.
- Extração de tarefas não executadas
- Histórico das tabelas criadas usando
CREATE TABLE ... AS SELECT ..., já que o DDL não está disponível no ` Snowflake `. - Gráficos e painéis do Lineage to Snowsight
- Sintaxe da função de janela com instruções como
SUM(...) OVER (PARTITION BY ... [ORDER BY] ...)
- As tarefas são extraídas de
TASK_HISTORYem ambos os modos de extração, uma vez que o Snowflake, atualmente, não oferece visualizações adequadas para extrair tarefas definidas.- No
INFORMATION_SCHEMAmodo,TASK_HISTORYexibe a atividade da tarefa nos últimos sete dias ou a próxima execução programada nos próximos oito dias. A lista é limitada a 10.000 registros, exibindo as execuções com a data e hora mais recentes. - No
ACCOUNT_USAGEmodo,TASK_HISTORYexibe o histórico de uso da tarefa nos últimos 365 dias.
- No
- Snowflake O scanner não utiliza os conectores do truststore. Na maioria dos casos, não é necessária nenhuma configuração adicional, pois os certificados do ` Snowflake ` geralmente são assinados por autoridades certificadoras raiz e intermediárias que já estão incluídas no armazenamento de confiança padrão do Java. Se for necessário um certificado personalizado, ele deve ser importado para o armazenamento de certificados padrão do Java. Para obter instruções, consulte Importação de certificados para o armazenamento de confiança padrão do Java.
- Os fluxos são extraídos utilizando
SHOW STREAMSem ambos os modos de extração, uma vez que o ` Snowflake ` atualmente não oferece visualizações adequadas para extrair fluxos definidos. Isso limita o número de fluxos extraídos a 10.000 por esquema.
Configuração prévia
Antes de importar metadados de linhagem, certifique-se de que os seguintes pré-requisitos estejam atendidos:
- Você tem permissão para acessar todos os endereços, conforme descrito na seção “Permitir nomes de host” da documentação do Snowflake.
- Existe uma conta Snowflake, que é a conta de root representativa de um servidor fornecido por Snowflake.
- Você tem uma função de usuário atribuída com os privilégios adequados, de acordo com o modo de extração que pretende utilizar:
Modo INFORMATION_SCHEMA Para cada banco de dados incluído na extração, a função do usuário deve ter os seguintes privilégios:USAGEna base de dados extraídaUSAGEem cada esquema extraído dentro do banco de dados extraídoSELECTPelo menos um privilégio, por exemplo, em cada objeto extraído do ` Snowflake `, como uma tabela, uma visualização ou um procedimento.MONITOR EXECUTIONpara permitir a extração de informações sobre tarefas deTASK_HISTORY
Modo ACCOUNT_USAGE: a função do usuário deve incluirIMPORTED PRIVILEGESacesso ao banco de dados Snowflake, que contém oACCOUNT_USAGEesquema.
Para conceder esse privilégio, executeGRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO <role>.- Extração de fluxos (opcional)
Para habilitar a extração de fluxos, a função do usuário também deve ter os seguintes privilégios:USAGEna base de dados extraídaUSAGEem cada esquema extraído do banco de dados- Pelo menos um privilégio, por exemplo,
SELECTem cada fluxo extraído
Criação de um recurso de importação de metadados
Conexão da origem de dados
Para se conectar à fonte de dados da qual você deseja importar metadados de linhagem, é necessário selecionar uma definição de fonte de dados e uma conexão. Você pode criá-los antes de iniciar a importação de metadados ou ao criar e configurar o recurso de importação de metadados.
Definição de origem de dados
Selecione “ Snowflake ” como tipo de fonte de dados.
Conexão
Para obter detalhes sobre a conexão, consulte a conexão Snowflake.
Listas de inclusão e exclusão
É possível incluir ou excluir ativos até o nível do esquema. Forneça bancos de dados e esquemas no formato banco de dados/esquema. Cada parte é avaliada como uma expressão regular. Os ativos que forem incluídos posteriormente na origem de dados também serão incluídos ou excluídos se corresponderem às condições especificadas nas listas. Valores de exemplo:
myDB/: todos os esquemas no banco de dadosmyDB.myDB2/.*: todos os esquemas no banco de dadosmyDB2.myDB3/mySchema1:mySchema1schema do banco de dadosmyDB3.myDB4/mySchema[1-5]em meu banco de dadosmyDB4, posso dizer: qualquer esquema com um nome que comece commySchemae termine com um dígito entre 1 e 5.
Entradas externas
Se você usar scripts SQL Snowflake externos, poderá adicioná-los em um arquivo.zip como uma entrada externa. É possível organizar a estrutura de um arquivo .zip como subpastas que representam bancos de dados e esquemas. Depois que os scripts são verificados, eles são incluídos nos respectivos bancos de dados e esquemas no catálogo ou projeto selecionado. O arquivo.zip pode ter a seguinte estrutura:
<database_name>
<schema_name>
<script_name.sql>
<database_name>
<script_name.sql>
<script_name.sql>
replace.csv
O arquivo replace.csv contém substituições de espaço reservado para os scripts que são adicionados no arquivo.zip. Para obter mais informações sobre o formato, consulte Substituições de espaço reservado.
Opções de importação avançadas
- Extração de estágios de tabela
- Você pode adicionar uma expressão regular para listar os estágios da tabela dos quais deseja que os arquivos preparados sejam extraídos. Use um nome completo e coloque cada segmento entre aspas duplas. Deixe o campo vazio se não quiser extrair arquivos preparados de nenhum estágio da tabela. Exemplo de valor:
\\\"mydb\\\"\\.\\\"schema1\\\"\\.\\\".*\\\"|\\\"mydb\\\"\\.\\\"myschema\\\"\\.\\\"abc.*\\\
- Extração da lógica de transformação
- Você pode ativar a criação de descrições de lógica de transformação a partir do código SQL em scripts SQL.