Agosto de 2022

Os novos recursos, mudanças de comportamento e atualizações (melhorias, correções etc.) a seguir foram introduzidos neste mês. Se tiver alguma dúvida sobre essas adições, entre em contato com o suporte Snowflake.

Importante

Cada lançamento pode incluir atualizações que requeiram que a interface da Web seja atualizada.

Como regra geral, para garantir que essas atualizações não afetem seu uso, recomendamos atualizar a interface da Web após cada lançamento do Snowflake ter sido implementado.

Neste tópico:

Novos recursos

Suporte para tipo de dados GEOMETRY — Versão preliminar

Neste lançamento, temos o prazer de apresentar uma versão preliminar do suporte para o tipo de dados GEOMETRY. O tipo de dados GEOMETRY representa recursos em um sistema de coordenadas planar (euclidiano, cartesiano). Esse recurso está disponível para todas as contas Snowflake.

Este lançamento fornece funções para a construção, formatação, medição e cálculo de relações entre objetos GEOMETRY. Usando estas funções, você pode construir objetos GEOMETRY a partir de dados em formatos padrão, incluindo WKT, WKB e GeoJSON.

Para obter mais informações, consulte Tipos de dados geoespaciais.

Os recursos em versão preliminar são destinados para fins de avaliação e teste. Estes recursos não são recomendados para uso na produção.

Procedimentos armazenados do Snowpark em Java — Disponibilidade geral

Com este lançamento, temos o prazer de anunciar a disponibilidade geral dos procedimentos armazenados no Snowpark em Java no Amazon Web Services (AWS) e no Microsoft Azure. Os procedimentos armazenados para Java estão disponíveis para versão preliminar na Google Cloud Platform (GCP).

Em seu procedimento armazenado, é possível usar a API Snowpark para Java para hospedar seus pipelines de dados em Snowflake. Por exemplo, é possível escrever procedimentos armazenados nos casos em que é preciso executar seu código Snowpark sem executar um aplicativo cliente (por exemplo, de uma tarefa).

Para obter mais informações, consulte Como escrever procedimentos armazenados em Java.

Procedimentos armazenados do Snowpark em Scala — Disponibilidade geral

Com este lançamento, temos o prazer de anunciar a disponibilidade geral dos procedimentos armazenados no Snowpark em Scala no Amazon Web Services (AWS) e no Microsoft Azure. Os procedimentos armazenados para Scala estão disponíveis para versão preliminar na Google Cloud Platform (GCP).

No procedimento armazenado, é possível usar a API Snowpark para Scala para hospedar seus pipelines de dados no Snowflake. Por exemplo, é possível escrever procedimentos armazenados nos casos em que é preciso executar seu código Snowpark sem executar um aplicativo cliente (por exemplo, de uma tarefa).

Para obter mais informações, consulte Como escrever procedimentos armazenados em Scala.

Replicação de conta — Versão preliminar

Neste lançamento, temos o prazer de anunciar uma versão preliminar aberta da replicação de conta. Este recurso introduz dois novos objetos Snowflake, grupo de replicação e grupo de failover. Um grupo de replicação permite aos clientes especificar quais objetos de conta devem ser replicados, para quais regiões ou plataformas de nuvem, em intervalos programados personalizáveis. Um grupo de failover permite a replicação e o failover dos objetos de conta em um grupo. Os objetos de um grupo são replicados com consistência pontual de uma conta de origem para uma ou mais contas de destino.

Os objetos de conta podem incluir warehouses, usuários e funções, juntamente com bancos de dados e compartilhamentos (consulte Objetos replicados para obter a lista completa de objetos que podem ser incluídos em um grupo de replicação ou failover). Os objetos de conta podem ser agrupados em um ou vários grupos.

No caso de failover, a replicação de contas permite o failover de toda sua conta para uma região ou plataforma de nuvem diferente. Cada grupo de replicação e failover tem seu próprio cronograma de replicação, permitindo definir a frequência de replicação em diferentes intervalos para diferentes grupos de objetos. No caso de grupos de failover, também é permitido o failover de grupos individualmente. Você pode escolher executar o failover de todos os grupos de failover ou apenas selecionar grupos de failover.

Atualizações de SQL

Função INFER_SCHEMA: novos parâmetros

Neste lançamento, Snowflake fornece dois novos argumentos para a função INFER_SCHEMA:

FILES = ( 'file_name' [ , 'file_name' ... ] )

Especifica uma lista de um ou mais nomes de arquivo (separados por vírgulas) em um conjunto de arquivos preparados que contêm dados semiestruturados.

IGNORE_CASE = TRUE | FALSE

Especifica se os nomes de colunas detectados de arquivos preparados são tratados de forma a diferenciar maiúsculas e minúsculas. Por padrão, o valor é FALSE, o que significa que Snowflake preserva a caixa de caracteres alfabéticos ao obter nomes de colunas. Se você especificar o valor como TRUE, os nomes de colunas serão tratados de forma a não diferenciar maiúsculas e minúsculas, e todos os nomes de coluna serão obtidos como letras maiúsculas.

Em um lançamento futuro, a saída da função INFER_SCHEMA incluirá uma nova coluna ORDER_ID que indica a ordem das colunas nos arquivos preparados. Para obter mais informações, consulte o Log de alteração de comportamento.

CREATE EXTERNAL TABLE: Derivar definições de coluna de arquivos preparados — Versão preliminar

Com este lançamento, o Snowflake oferece suporte à criação de novas tabelas externas com definições das colunas derivadas de um conjunto de arquivos preparados contendo dados semiestruturados. Inclua as palavras-chave USING TEMPLATE em suas instruções CREATE EXTERNAL TABLE. Anteriormente, este recurso era limitado às tabelas.

Por exemplo:

CREATE OR REPLACE EXTERNAL TABLE myet
    USING TEMPLATE (
      SELECT ARRAY_AGG(OBJECT_CONSTRUCT(*))
        FROM TABLE(
          INFER_SCHEMA(
            LOCATION=>'@filestage',
            FILE_FORMAT=>'ffparquet'
          )
        )
    )
    location=@filestage
    file_format=ffparquet
    auto_refresh=false;
Copy

Novas funções de SQL

A(s) seguinte(s) função(ões) foi(ram) introduzida(s) em lançamentos recentes:

Categoria de função

Nova função

Descrição

Geoespacial (Transformação)

ST_DIFFERENCE

Ao receber dois objetos de entrada GEOGRAPHY, retorna um objeto GEOGRAPHY que representa os pontos no primeiro objeto que não estão no segundo objeto (ou seja, a diferença entre os dois objetos).

Geoespacial (Transformação)

ST_INTERSECTION

Ao receber dois objetos de entrada GEOGRAPHY, retorna um objeto GEOGRAPHY que representa o conjunto de pontos que são comuns aos dois objetos de entrada (ou seja, a interseção dos dois objetos).

Geoespacial (Transformação)

ST_SYMDIFFERENCE

Ao receber dois objetos de entrada GEOGRAPHY, retorna um objeto GEOGRAPHY que representa o conjunto de pontos de ambos os objetos de entrada que não fazem parte da intersecção dos objetos (ou seja, a diferença simétrica dos dois objetos).

Geoespacial (Transformação)

ST_UNION

Ao receber dois objetos de entrada GEOGRAPHY, retorna um objeto GEOGRAPHY que representa o conjunto combinado de todos os pontos de ambos os objetos (ou seja, a união dos dois objetos).

Geoespacial (Acessador)

ST_ENDPOINT

Retorna o último ponto em um LineString.

Geoespacial (Acessador)

ST_POINTN

Retorna o ponto em um índice especificado em um LineString.

Geoespacial (Acessador)

ST_STARTPOINT

Retorna o primeiro ponto em um LineString.

Atualizações do pipeline de dados

Tarefas: suporte à especificação de tarefas de múltiplos predecessores em uma única instrução SQL

Um gráfico acíclico dirigido (DAG) de tarefas consiste em uma única tarefa raiz e um conjunto de tarefas filho, organizadas por suas dependências. Todas as tarefas em um DAG exceto a tarefa raiz e seus filhos diretos podem ter múltiplas tarefas predecessoras. Uma tarefa só é executada depois de todas as tarefas anteriores terem sido concluídas com sucesso.

Com este lançamento, você pode especificar várias tarefas predecessoras ao criar uma nova tarefa (usando CREATE TASK … AFTER) ou mais tarde (usando ALTER TASK … ADD AFTER). A sintaxe de comando SQL existente agora oferece suporte a uma lista de tarefas separada por vírgulas.

O exemplo a seguir cria uma tarefa sem servidor a4 e especifica as tarefas a1, a2 e a3 como tarefas predecessoras. A tarefa executa uma consulta trivial:

CREATE TASK a4
  AFTER a1, a2, a3
  AS SELECT 1;
Copy

O exemplo a seguir modifica a tarefa existente b4 e especifica as tarefas b1, b2 e b3 como tarefas predecessoras:

ALTER TASK b4 ADD AFTER b1, b2, b3;
Copy

Anteriormente, os usuários limitavam-se a especificar uma única tarefa predecessora ao criar tarefas ou modificar as tarefas.

Atualizações de organização

Função ORGADMIN — Disponibilidade geral

Neste lançamento, temos o prazer de anunciar a disponibilidade geral da função ORGADMIN no Snowflake. Os administradores da organização com a função ORGADMIN podem:

  • Ver todas as contas e regiões do Snowflake sob uma organização

  • Criar novas contas Snowflake sob uma organização

  • Renomear contas Snowflake em uma organização

  • Acessar o esquema ORGANIZATION_USAGE, que fornece dados de uso e faturamento para todas as contas Snowflake que pertencem a uma organização

Para organizações com múltiplas contas, a função ORGADMIN está disponível na primeira conta que foi criada, a menos que você tenha solicitado que ela fosse adicionada a uma conta diferente. Você pode verificar se o ORGADMIN está disponível, encontrando-o na lista de funções na interface da web.

O administrador de conta (ou seja, um usuário com a função ACCOUNTADMIN) pode conceder a função ORGADMIN a si mesmo ou a qualquer outro usuário executando o seguinte comando:

GRANT ROLE ORGADMIN TO USER user1;
Copy

Para obter mais informações, consulte Introdução às organizações.

Exibições de ORGANIZATION_USAGE para monitorar os custos — Disponibilidade geral

Com este lançamento, temos o prazer de anunciar a disponibilidade geral das seguintes exibições no esquema ORGANIZATION_USAGE no banco de dados compartilhado do SNOWFLAKE. Você pode usar estas exibições para detalhar os custos no nível do objeto em todas as contas de sua organização:

  • Armazenamento:

    • DATABASE_STORAGE_USAGE_HISTORY

    • STAGE_STORAGE_USAGE_HISTORY

  • Transferência de dados:

    • DATA_TRANSFER_HISTORY

  • Recursos sem servidor:

    • AUTOMATIC_CLUSTERING_HISTORY

    • MATERIALIZED_VIEW_REFRESH_HISTORY

    • PIPE_USAGE_HISTORY

    • REPLICATION_USAGE_HISTORY

    • SEARCH_OPTIMIZATION_HISTORY

Suporte ao renomear contas

Com este lançamento, um administrador da organização pode usar o comando ALTER ACCOUNT para renomear uma conta sem precisar entrar em contato com o SnowflakeSupport. O exemplo seguinte renomeia uma conta chamada original_acctname como new_acctname:

ALTER ACCOUNT original_acctname RENAME TO new_acctname;
Copy

Por padrão, Snowflake continua a permitir o acesso à conta usando o antigo URL com o nome anterior, enquanto também suporta um novo URL que contém o novo nome da conta. Você tem a opção de descartar o URL antigo para exigir acesso usando o novo URL. Para obter mais detalhes, consulte Gerenciamento de contas em sua organização.

Atualizações de governança de dados

Histórico de acesso: visualizar acesso a objeto compartilhado em contas de consumidor

Neste lançamento, Snowflake adiciona a capacidade de visualizar o acesso de objetos compartilhados usando o Snowflake Secure Data Sharing pelos usuários em contas de consumidor. Com esta atualização, o Snowflake registra o objeto acessado no compartilhamento na coluna base_objects_accessed do Exibição ACCESS_HISTORY no Account Usage.

Por exemplo, se o provedor compartilha uma tabela e uma exibição construída a partir da tabela para a conta do consumidor, e há uma consulta sobre a exibição compartilhada, o Snowflake registra o acesso à exibição compartilhada na coluna base_objects_accessed. Esse registro, que inclui os valores columnName e objectName, permite que o consumidor saiba qual objeto foi acessado em sua conta e também protege o provedor porque a tabela subjacente (através dos valores objectId e columnId) não é revelada ao consumidor.

Políticas de mascaramento e políticas de acesso a linhas: suporte adicionado para IS_ROLE_IN_SESSION em pesquisas de tabela de mapeamento

Com este lançamento, o Snowflake aumenta a versatilidade das políticas de mascaramento e acesso a linhas, permitindo que a função de contexto IS_ROLE_IN_SESSION ofereça suporte a pesquisas de tabelas de mapeamento. Os administradores de política agora podem gravar condições de política para chamar pesquisas de tabela de mapeamento usando esta função para determinar se as funções primárias ou secundárias ativas de um usuário em uma sessão herdam os privilégios concedidos à função especificada no argumento da função de contexto. Com esta melhoria, o Snowflake incentiva os clientes a usarem a função de contexto IS_ROLE_IN_SESSION nas condições da política que exigem a verificação das funções ativadas na hierarquia de funções da função atual.

Para obter mais informações, consulte Explicação da segurança em nível de coluna e Explicação de políticas de acesso a linhas.

Políticas de mascaramento: consultar uma exibição das condições da política em relação a valores NULL, de comprimento, escala e de retorno de precisão

Neste lançamento, Snowflake fornece uma nova exibição provisória no banco de dados compartilhado SNOWFLAKE chamado:

SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT

A exibição ajuda a identificar onde as condições de uma política de mascaramento não correspondem ao comprimento, escala ou precisão de uma coluna ou quando as condições da política retornam um valor NULL para uma coluna NOT NULL. A exibição retorna registros a partir de 15 de julho de 2022.

Esta exibição é fornecida para ajudar a determinar como o pacote 2022_07 de mudança de comportamento afetará as consultas em colunas que são protegidas por uma política de mascaramento e para dar tempo suficiente para iniciar o processo de atualização das condições da política de mascaramento.

Para obter mais detalhes, consulte Mitigação de atualizações de valores de retorno da política de mascaramento.