Java de Native SDK pour Connectors - Notes de version

Notes de version pour Native SDK pour la bibliothèque Java Connectors.

Version 2.2.0 (10 juillet 2024)

Modifications générales

  • Remplacement de l’outil SnowSQL par le nouvel outil CLI Snowflake

  • Mise à jour des dépendances Java

Changements de comportement

  • com.snowflake.connectors.common.object :

    • Modification de la valeur renvoyée par toString pour qu’elle soit identique à celle de getValue dans les classes :

      • Identifier

      • ObjectName

      • Reference

      • SchemaName

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

    • Remplacement du nom de la classe par SchedulerManager.

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

    • Remplacement du nom de la classe par CommandsQueue.

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

    • Remplacement du nom de la classe par TaskReactorOnIngestionScheduledCallback.

    • La classe utilise désormais ResourceIngestionDefinition et ses paramètres génériques.

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

    • Les valeurs de configuration sont désormais toujours traitées comme des chaînes et non comme des variantes.

Nouvelles fonctionnalités

  • Nouvelle procédure PUBLIC.RESET_CONFIGURATION() qui permet de réinitialiser l’état de l’assistant de configuration. De plus, des rappels ont été ajoutés qui permettent d’effectuer des opérations personnalisées pendant le déroulement de la procédure. Voir également Réinitialisation de la configuration.

  • Nouvelle procédure PUBLIC.RECOVER_CONNECTOR_STATE(STRING) qui permet de réinitialiser l’état du connecteur. Voir également Récupération de l’état du connecteur.

  • Nouvelle procédure TASK_REACTOR.REMOVE_INSTANCE(STRING) qui permet de supprimer une instance Task Reactor. Voir également Suppression d’une instance.

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

    • Ajout d’une nouvelle clé CORTEX_WAREHOUSE.

    • Ajout d’une nouvelle clé CORTEX_USER_ROLE.

  • com.snowflake.connectors.util.time :

    • Ajout de nouvelles classes pour la sérialisation JSON de LocalDate et de ZoneId.

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

    • Ajout de la prise en charge du paramètre AFTER lors de la création d’une tâche, si les prédécesseurs de la tâche ont été spécifiés.

    • Ajout de la prise en charge du paramètre USER_TASK_TIMEOUT_MS.

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

    • Ajout de la prise en charge des prédécesseurs de tâche.

    • Ajout de la prise en charge de la propriété USER_TASK_TIMEOUT_MS.

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

  • Ajout de la méthode callProcedureRaw(Session, String, String...).

  • Ajout de la méthode callProcedureRaw(Session, String, String, String...).

  • Ajout d’une nouvelle classe com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorker - une simple implémentation worker pour une utilisation avec des charges de travail d’ingestion.

  • Ajout d’une nouvelle classe com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestion - une simple représentation d’ingestion, à utiliser par un IngestionWorker.

  • Ajout d’une nouvelle classe com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorkItem - une simple implémentation d’élément de travail pour le travail d’ingestion.

Corrections de bogues

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

    • Correction de la vérification de la condition de création d’une tâche réussie dans create(TaskDefinition, boolean, boolean).

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

    • Correction du traitement des horodatages dans les variantes.

  • Correction des validateurs d’entrée par défaut dans les gestionnaires pour les processus de configuration de connecteur.

  • Suppression de DataFrame#first de la plupart des requêtes SELECT, ce qui a permis de corriger des problèmes liés à l’utilisation de certaines procédures dans les tâches.

  • Suppression de l’octroi de USAGE sur le schéma STATE au rôle d’application ADMIN.

  • Ajout de la colonne UPDATED_AT manquante dans la table de configuration Task Reactor.

Version 2.1.0 (8 juillet 2024)

Changements de comportement

  • Nouvelle approche d’identificateurs.

    Important

    Cette nouvelle approche peut modifier la manière dont les identificateurs sont utilisés dans votre connecteur, veuillez tester soigneusement les nouvelles modifications !

    • Le SDK s’attend désormais à ce que tous les identificateurs soient envoyés tels que fournis par l’utilisateur ; le SDK évaluera par lui-même s’il s’agit d’un identificateur cité ou non afin de le traiter correctement par la suite.

    • La citation automatique des identificateurs ne sera effectuée que lors de l’utilisation de valeurs renvoyées par des requêtes Snowflake.

    • Pour utiliser la nouvelle approche avec l’UI, le connecteur doit renvoyer une nouvelle propriété dans la vue PUBLIC.APP_PROPERTIES avec la clé de UI_ADD_QUOTES_TO_EXISTING_QUOTED_IDENTIFIERS et une valeur de TRUE.

    • Classe com.snowflake.connectors.common.object.Identifier modifiée :

      • Méthodes fromWithAutoQuoting() et getName() supprimées.

      • Suppression du concept d’identificateur vide ; méthodes empty(), isNullOrEmpty(), validateNullOrEmpty(), et isEmpty() supprimées.

      • Ajout de la nouvelle méthode from() qui permet d’activer la citation automatique lors de la création d’une instance d’identificateur ; la chaîne fournie ne sera pas automatiquement citée si elle est un identificateur entièrement en majuscules et non cité.

      • Méthode validate() modifiée pour isValid().

      • Méthode toSqlString() modifiée pour getValue().

      • Ajout des méthodes getUnquotedValue(), getQuotedValue(), getVariantValue(), et isUnquoted().

  • Classe com.snowflake.connectors.common.object.ObjectName modifiée :

    • Création de propriétés de base de données et de schéma Optional.

    • Modification du type de retour de getDatabase() et getSchema() en Optional.

    • Méthode validate() modifiée pour isValid().

    • Méthode validateDoubleDot() modifiée pour isDoubleDot().

    • Méthode getEscapedName() modifiée pour getValue().

    • Ajout des méthodes getVariantValue() et getSchemaName().

  • Classe com.snowflake.connectors.common.object.Reference modifiée :

    • Suppression du concept de référence vide ; méthodes empty() et isEmpty() supprimées.

    • Méthode validate() modifiée pour isValid().

    • Méthode referenceName() modifiée pour getName().

    • Méthode value() modifiée pour getValue().

    • Ajout d’une nouvelle classe com.snowflake.connectors.common.object.SchemaName pour représenter le schéma ; comportement similaire à la classe com.snowflake.connectors.common.object.ObjectName.

    • Ajout de la nouvelle classe com.snowflake.connectors.common.object.InvalidSchemaNameException.

Autres ajouts et modifications

  • Méthodes applyToAllInitializedTaskReactorInstances() modifiées dans le com.snowflake.connectors.taskreactor.TaskReactorInstanceActionExecutor pour exécuter une action uniquement sur les instances de task reactor initialisées. Comportement précédent : les actions ont été exécutées sur toutes les instances de task reactor enregistrées.

Nouvelles fonctionnalités

  • Procédures de gestion des ressources :

    • De nouveaux rappels ont été introduits pour la procédure PUBLIC.CREATE_RESOURCE() qui permet d’effectuer des opérations personnalisées pendant le déroulement de la procédure. Voir aussi Créer une ressource.

    • Nouvelle procédure PUBLIC.ENABLE_RESOURCE() qui permet d’activer la ressource désactivée. De plus, des rappels ont été ajoutés qui permettent d’effectuer des opérations personnalisées pendant le déroulement de la procédure. Voir aussi Activer la ressource.

    • Nouvelle procédure PUBLIC.DISABLE_RESOURCE() qui permet de désactiver la ressource activée. De plus, des rappels ont été ajoutés qui permettent d’effectuer des opérations personnalisées pendant le déroulement de la procédure. Voir aussi Désactiver la ressource.

    • Nouvelle procédure PUBLIC.UPDATE_RESOURCE() permettant de mettre à jour les configurations d’ingestion d’une ressource particulière. De plus, des rappels ont été ajoutés qui permettent d’effectuer des opérations personnalisées pendant le déroulement de la procédure. Voir aussi Mettre à jour la ressource.

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

    • Ajout de la méthode asVarchar() qui devrait remplacer la méthode varcharArgument().

    • Ajout de la méthode asVariant() qui devrait remplacer la méthode variantArgument().

    • Méthodes varcharArgument() et variantArgument() marquées comme obsolètes et configurées pour qu’elles soient supprimées à l’avenir.

  • Autres ajouts :

    • Statut du processus d’ingestion défini comme constantes dans la classe com.snowflake.connectors.application.ingestion.process.IngestionProcessStatuses.

    • Ajout de la méthode isNotOk() à la classe com.snowflake.connectors.common.response.ConnectorResponse.

    • Ajout de la classe com.snowflake.connectors.util.snowflake.DefaultTransactionManager qui permet d’exécuter des instructions SQL dans une transaction en utilisant la méthode withTransaction().

    • Amélioration de la journalisation dans le task reactor.

Corrections de bogues

  • Correction d’un bogue qui entraînait la suppression du schéma d’instance du task reactor, une fois qu’une erreur inattendue était générée pendant la procédure CREATE_INSTANCE_OBJECTS().

Version 2.0.0 (24 mai 2024)

Version initiale