Native SDK para conectores Java – Notas de lançamento

Notas de lançamento da biblioteca Java do Native SDK para conectores.

Versão 2.2.0 (10 de julho de 2024)

Mudanças gerais

  • Substituiu a ferramenta SnowSQL pela nova ferramenta Snowflake CLI

  • Dependências Java atualizadas

Mudanças de comportamento

  • com.snowflake.connectors.common.object:

    • O valor retornado por toString foi alterado para ser o mesmo que getValue nas classes:

      • Identifier

      • ObjectName

      • Reference

      • SchemaName

  • com.snowflake.connectors.application.scheduler.SchedulerCreator:

    • Renomeação da classe para SchedulerManager.

  • com.snowflake.connectors.taskreactor.commands.queue.CommandsQueueRepository:

    • Renomeação da classe para CommandsQueue.

  • com.snowflake.connectors.application.integration.SchedulerTaskReactorOnIngestionScheduled:

    • Renomeação da classe para TaskReactorOnIngestionScheduledCallback.

    • A classe agora usa ResourceIngestionDefinition e seus parâmetros genéricos.

  • com.snowflake.connectors.taskreactor.config.ConfigRepository:

    • Os valores de configuração agora são sempre tratados como Cadeias de caracteres, não como Variantes.

Novos recursos

  • Novo procedimento PUBLIC.RESET_CONFIGURATION() que permite redefinir o estado do assistente de configuração. Além disso, há retornos de chamada adicionados que permitem executar operações personalizadas durante o fluxo do procedimento. Consulte também Redefinir a configuração.

  • Novo procedimento PUBLIC.RECOVER_CONNECTOR_STATE(STRING) que permite redefinir o estado do conector. Consulte também Recuperar o estado do conector.

  • Novo procedimento TASK_REACTOR.REMOVE_INSTANCE(STRING) que permite remover uma instância do Reator de tarefa. Consulte também Remover instância.

  • com.snowflake.connectors.application.configuration.connector.ConnectorConfigurationKey:

    • Adicionada a nova chave CORTEX_WAREHOUSE.

    • Adicionada a nova chave CORTEX_USER_ROLE.

  • com.snowflake.connectors.util.time:

    • Adição de novas classes para a serialização JSON de LocalDate e ZoneId.

  • com.snowflake.connectors.common.task.TaskRepository:

    • Adição de suporte para o parâmetro AFTER durante a criação da tarefa, se os predecessores da tarefa tiverem sido especificados.

    • Adição de suporte para o parâmetro USER_TASK_TIMEOUT_MS.

  • com.snowflake.connectors.common.task.TaskProperties:

    • Adição de suporte para predecessores de tarefas.

    • Adição de suporte para a propriedade USER_TASK_TIMEOUT_MS.

  • com.snowflake.connectors.util.sql.SqlTools:

  • Adição do método callProcedureRaw(Session, String, String...).

  • Adição do método callProcedureRaw(Session, String, String, String...).

  • Adição da nova classe com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorker - uma implementação simples de trabalhador para uso com cargas de trabalho de ingestão.

  • Adição da nova classe com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestion - uma representação simples de ingestão, para ser usada por um IngestionWorker.

  • Adição da nova classe com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorkItem - uma implementação simples de item de trabalho para trabalho de ingestão.

Correções de bugs

  • com.snowflake.connectors.common.task.TaskRepository:

    • Correção da verificação da condição de criação de tarefa bem-sucedida em create(TaskDefinition, boolean, boolean).

  • com.snowflake.connectors.util.variant.VarianMapper:

    • Correção do tratamento de carimbos de data/hora em Variantes.

  • Correção dos validadores de entrada padrão nos manipuladores dos processos de configuração do conector.

  • Remoção de DataFrame#first da maioria das consultas SELECT, o que corrigiu problemas com o uso de alguns procedimentos em tarefas.

  • Remoção da concessão de USAGE no esquema STATE para a função de aplicativo ADMIN.

  • Adição da coluna UPDATED_AT ausente na tabela de configuração do Reator de tarefa.

Versão 2.1.0 (8 de julho de 2024)

Mudanças de comportamento

  • Nova abordagem de identificador.

    Importante

    Essa nova abordagem pode mudar a forma como os identificadores são usados em seu conector. Teste as novas alterações com cautela!

    • Agora, o SDK espera que todos os identificadores sejam enviados conforme fornecidos pelo usuário; o SDK avaliará por si mesmo se é um identificador entre aspas ou não para poder processá-lo corretamente.

    • A colocação automática entre aspas de identificadores será feita somente ao usar valores retornados por consultas do Snowflake.

    • Para usar a nova abordagem com a UI, o conector deve retornar uma nova propriedade na exibição PUBLIC.APP_PROPERTIES, com a chave de UI_ADD_QUOTES_TO_EXISTING_QUOTED_IDENTIFIERS e um valor de TRUE.

    • Alteração da classe com.snowflake.connectors.common.object.Identifier:

      • Remoção dos métodos fromWithAutoQuoting() e getName().

      • Remoção do conceito de um identificador vazio; os métodos empty(), isNullOrEmpty(), validateNullOrEmpty() e isEmpty() foram removidos.

      • Adição do novo método from(), que permite habilitar as aspas automáticas durante a criação de instância de identificador; a cadeia de caracteres fornecida não colocada entre aspas automaticamente se for um identificador sem aspas e totalmente em letras maiúsculas.

      • Alteração do método validate() para isValid().

      • Alteração do método toSqlString() para getValue().

      • Alteração dos métodos getUnquotedValue(), getQuotedValue(), getVariantValue() e isUnquoted().

  • Alteração da classe com.snowflake.connectors.common.object.ObjectName:

    • As propriedades de banco de dados e esquema agora são Optional.

    • Alteração do tipo de retorno de getDatabase() e getSchema() para Optional.

    • Alteração do método validate() para isValid().

    • Alteração do método validateDoubleDot() para isDoubleDot().

    • Alteração do método getEscapedName() para getValue().

    • Adição dos métodos getVariantValue() e getSchemaName().

  • Alteração da classe com.snowflake.connectors.common.object.Reference:

    • Remoção do conceito de referência vazia; os métodos empty() e isEmpty() foram removidos.

    • Alteração do método validate() para isValid().

    • Alteração do método referenceName() para getName().

    • Alteração do método value() para getValue().

    • Adição da nova classe com.snowflake.connectors.common.object.SchemaName para representar o esquema; comportamento semelhante ao da classe com.snowflake.connectors.common.object.ObjectName.

    • Adição da nova classe com.snowflake.connectors.common.object.InvalidSchemaNameException.

Outras adições e alterações

  • Alteração do método applyToAllInitializedTaskReactorInstances() em com.snowflake.connectors.taskreactor.TaskReactorInstanceActionExecutor para executar uma ação somente em instâncias do reator de tarefa inicializadas. Comportamento anterior: Ações foram executadas em todas as instâncias do reator de tarefa registradas.

Novos recursos

  • Procedimentos de gerenciamento de recursos:

    • Foram introduzidos novos retornos de chamada PUBLIC.CREATE_RESOURCE() ao procedimento que permitem executar operações personalizadas durante o fluxo do procedimento. Consulte também Criação de recursos.

    • Novo procedimento PUBLIC.ENABLE_RESOURCE() que permite habilitar o recurso desabilitado. Além disso, há retornos de chamada adicionados que permitem executar operações personalizadas durante o fluxo do procedimento. Consulte também Como habilitar recursos.

    • Novo procedimento PUBLIC.DISABLE_RESOURCE() que permite desabilitar o recurso habilitado. Além disso, há retornos de chamada adicionados que permitem executar operações personalizadas durante o fluxo do procedimento. Consulte também Como desabilitar recursos.

    • Novo procedimento PUBLIC.UPDATE_RESOURCE() que permite atualizar as configurações de ingestão de um recurso específico. Além disso, há retornos de chamada adicionados que permitem executar operações personalizadas durante o fluxo do procedimento. Veja também Atualização de recursos.

  • com.snowflake.connectors.util.sql.SqlTools:

    • Adição do método asVarchar() que deverá substituir o método varcharArgument().

    • Adição do método asVariant() que deverá substituir o método variantArgument().

    • Marcação dos métodos varcharArgument() e variantArgument() como obsoletos e definição para serem removidos no futuro.

  • Outras adições:

    • Definição do status do processo de ingestão como constantes na classe com.snowflake.connectors.application.ingestion.process.IngestionProcessStatuses.

    • Adição do método isNotOk() à classe com.snowflake.connectors.common.response.ConnectorResponse.

    • Adição da classe com.snowflake.connectors.util.snowflake.DefaultTransactionManager que permite executar instruções SQL dentro de uma transação usando o método withTransaction().

    • Registro aprimorado no reator de tarefa.

Correções de bugs

  • Correção de bug que resultava na remoção do esquema de instância do reator de tarefa, uma vez que um erro inesperado era gerado durante o procedimento CREATE_INSTANCE_OBJECTS().

Versão 2.0.0 (24 de maio de 2024)

Lançamento inicial