Introdução aos dados não estruturados¶
Dados não estruturados são informações que não se encaixam em um modelo ou esquema de dados pré-definido. Geralmente tratam-se de dados com muito texto, como respostas de formulários e conversas em mídias sociais, mas eles também englobam imagens, vídeo e áudio. Tipos de arquivos específicos de certos setores como VCF (genômica), KDF (semicondutores) ou HDF5 (aeronáutica) estão incluídos nessa categoria.
O Snowflake oferece suporte para as seguintes ações:
Acesso seguro a arquivos de dados localizados no armazenamento em nuvem.
Compartilhamento de URLs de acesso a arquivos com colaboradores e parceiros.
Carregamento de URLs de acesso a arquivos e outros metadados de arquivos em tabelas do Snowflake.
Processar dados não estruturados.
Este tópico apresenta os principais conceitos e fornece instruções para acessar, compartilhar e processar arquivos de dados não estruturados.
Neste tópico:
Suporte ao serviço de armazenamento em nuvem¶
Tanto estágios externos (armazenamento em nuvem externo) quanto internos (ou seja, do Snowflake) oferecem suporte para dados não estruturados.
- Estágios externos:
Armazene arquivos em um armazenamento em nuvem externo: Amazon S3, Google Cloud Storage ou um dos serviços de armazenamento em nuvem suportados pelo Microsoft Azure:
Armazenamento de blobs
Data Lake Storage Gen2
Uso geral v1
Uso geral v2
Tipos de URLs disponíveis para acessar arquivos¶
Os seguintes tipos de URLs estão disponíveis para acessar arquivos no armazenamento em nuvem:
- URL com escopo:
URL codificada que permite o acesso temporário a um arquivo preparado sem conceder privilégios ao estágio.
A URL expira quando o período de resultados persistidos da consulta termina (ou seja, o cache de resultados expira), que atualmente é de 24 horas.
- URL do arquivo:
URL que identifica o banco de dados, esquema, estágio e caminho do arquivo para um conjunto de arquivos. Uma função que tenha privilégios suficientes no estágio pode acessar os arquivos.
- URL pré-assinada:
URL HTTPS simples usada para acessar um arquivo através de um navegador da web. Um arquivo fica temporariamente acessível aos usuários através dessa URL usando um token de acesso pré-assinado. O tempo de expiração do token de acesso é configurável.
A tabela a seguir descreve as características principais desses tipos de URL:
URL com escopo |
URL do arquivo |
URL pré-assinada |
|
---|---|---|---|
Casos de uso |
Recomendado a administradores de arquivos para dar acesso com escopo a arquivos de dados para funções específicas na mesma conta. Forneça acesso aos arquivos com uma exibição que recupere URLs com escopo. Somente funções que têm privilégios sobre a exibição podem acessar os arquivos. Snowflake registra informações no histórico de consultas sobre quem usa um URL com escopo para acessar um arquivo e quando. Ideal para uso em aplicativos personalizados, para fornecer dados não estruturados a outras contas por meio de um compartilhamento ou para download e análise de dados não estruturados no Snowsight. |
URL permanente de um arquivo em um estágio. Para baixar ou acessar um arquivo, os usuários enviam a URL do arquivo em uma solicitação GET para o ponto de extremidade da REST API junto com o token de autorização. Ideal para aplicativos personalizados que requerem acesso a arquivos de dados não estruturados. |
Usado para baixar ou acessar arquivos sem se autenticar no Snowflake ou passar um token de autorização. URLs pré-assinadas são abertas; qualquer usuário ou aplicativo pode acessar ou baixar diretamente os arquivos. Ideal para aplicativos de business intelligence ou ferramentas de relatórios que precisam exibir conteúdo de arquivos não estruturados. |
Como gerar |
Consulte a função BUILD_SCOPED_FILE_URL. |
Consulte a tabela de diretório para o estágio que faz referência aos arquivos preparados ou chame a função BUILD_STAGE_FILE_URL. |
Consulte a função GET_PRESIGNED_URL. |
Uso |
As seguintes opções estão disponíveis:
|
As seguintes opções estão disponíveis:
|
As seguintes opções estão disponíveis:
|
Arquivos de dados não estruturados podem ser acessados por consumidores de dados através de valores de colunas desse tipo em exibições seguras compartilhadas por provedores de dados. |
Arquivos de dados não estruturados não podem ser acessados por consumidores de dados através de valores de colunas deste tipo em exibições seguras compartilhadas por provedores de dados. |
Arquivos de dados não estruturados podem ser acessados por consumidores de dados através de valores de colunas desse tipo em exibições seguras compartilhadas por provedores de dados. |
|
Autorização |
Somente o usuário que gera uma URL com escopo pode usar a URL para acessar o arquivo referenciado. |
A função especificado na chamada GET REST API deve ter privilégios suficientes no estágio: USAGE (estágio externo) ou READ (estágio interno). |
Qualquer pessoa que tenha a URL pré-assinada pode acessar o arquivo referenciado enquanto o token estiver ativo. |
Validade |
Período de validade do cache de resultados da consulta (atualmente 24 horas). |
Permanente. |
Período de tempo especificado no argumento |
Criptografia do lado do servidor para acesso a dados não estruturados¶
Para permitir o acesso a dados não estruturados em um estágio interno, você pode considerar o uso de criptografia no lado do servidor ao criar o estágio. Caso contrário, os arquivos preparados serão criptografados no lado do cliente por padrão. As chaves de criptografia são de propriedade do Snowflake, e os arquivos criptografados do lado do cliente são ilegíveis por usuários e ferramentas externas usando URLs pré-assinadas, de arquivo ou com escopo.
Para configurar a criptografia no lado do servidor para um estágio interno, especifique o tipo de criptografia SNOWFLAKE_SSE
no comando CREATE STAGE. Consulte Parâmetros do estágio interno (internalStageParams) para obter mais informações.
O exemplo a seguir cria um estágio interno chamado my_int_stage
com criptografia no lado do servidor e uma tabela de diretório.
CREATE STAGE my_int_stage
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
DIRECTORY = ( ENABLE = true );
Importante
Se você precisar de Tri-Secret Secure para conformidade de segurança, use o tipo de criptografia SNOWFLAKE_FULL
para estágios internos. SNOWFLAKE_SSE
não é compatível com Tri-Secret Secure.
Nota
Você não pode alterar o tipo de criptografia para um estágio interno depois de criar o estágio.
Atualmente, a criação de estágios internos com criptografia do lado do servidor está limitada às seguintes versões do cliente Snowflake: driver JDBC v3.12.11 (ou superior)
Tabelas de diretório¶
Tabelas de diretório armazenam um catálogo de arquivos preparados no armazenamento em nuvem. Funções com privilégios suficientes podem consultar uma tabela de diretório para obter URLs de arquivo para acessar os arquivos preparados.
Para obter mais detalhes, consulte Tabelas de diretório.
Funções SQL¶
As seguintes Funções de arquivo são fornecidas para acessar arquivos de dados:
Função SQL |
Descrição |
---|---|
Retorna a URL para um estágio externo ou interno nomeado usando o nome de estágio como entrada. |
|
Extrai o caminho de um arquivo preparado relativo à sua localização no estágio usando o nome do estágio e o caminho absoluto do arquivo no armazenamento em nuvem como entradas. |
|
Retorna o caminho absoluto de um arquivo preparado usando o nome de estágio e o caminho de arquivo relativo à sua localização no estágio como entradas. |
|
Gera o URL pré-assinado para um arquivo preparado usando o nome de estágio e o caminho relativo de arquivo como entradas. Acesse arquivos em um estágio externo usando a função. |
|
Gera um URL do arquivo Snowflake com escopo para um arquivo preparado usando o nome de estágio e o caminho relativo do arquivo como entradas. |
|
Gera um URL do arquivo Snowflake para um arquivo preparado usando o nome de estágio e o caminho relativo do arquivo como entradas. |
Como baixar arquivos preparados no Snowsight¶
Usuários podem selecionar um URL gerado com escopo, pré-assinado ou de arquivo na tabela de resultados de uma planilha Snowsight e baixar o arquivo referenciado.
Entre em Snowsight.
Selecione Projects » Worksheets » My Worksheets ou abra uma planilha local navegando até Recent ou Folders » <nome_da_planilha>.
Retorne uma URL com escopo, pré-assinada ou de arquivo em uma consulta usando qualquer um dos métodos suportados.
Selecione o URL na tabela de resultados. Snowsight baixa o arquivo referenciado pelo URL.
Processamento de dados não estruturados¶
O Snowflake oferece suporte aos seguintes recursos para ajudar você a processar dados não estruturados.
- Funções externas
Funções externas são funções definidas pelo usuário que você armazena e executa fora do Snowflake. Com funções externas, você pode usar bibliotecas como Amazon Textract, Document AI ou Azure Computer Vision que não pode ser acessado de funções internas definidas pelo usuário (UDFs).
Para obter mais informações, consulte Como escrever funções externas.
- Funções definidas pelo usuário e procedimentos armazenados
O Snowflake oferece suporte a várias maneiras de ler um arquivo no código Java ou Python para que você possa processar dados não estruturados ou usar seus próprios modelos de aprendizado de máquina em funções definidas pelo usuário (UDFs), funções de tabela definidas pelo usuário (UDTFs) ou procedimentos armazenados.
Você pode estender a SQL que você usa no Snowflake ou criar um aplicativo usando o API Snowpark.
Consulte os tópicos a seguir para obter mais informações e exemplos.