Native SDK for Connectors Java - release notes¶
Release notes for Native SDK for Connectors Java library.
Version 2.2.0 (July 10th, 2024)¶
General changes¶
- Replaced the SnowSQL tool with new Snowflake CLI tool
- Updated Java dependencies
Behavior changes¶
-
com.snowflake.connectors.common.object:- Changed value returned by
toStringto be the same as ingetValuein classes:IdentifierObjectNameReferenceSchemaName
- Changed value returned by
-
com.snowflake.connectors.application.scheduler.SchedulerCreator:- Renamed class to
SchedulerManager.
- Renamed class to
-
com.snowflake.connectors.taskreactor.commands.queue.CommandsQueueRepository:- Renamed class to
CommandsQueue.
- Renamed class to
-
com.snowflake.connectors.application.integration.SchedulerTaskReactorOnIngestionScheduled:- Renamed class to
TaskReactorOnIngestionScheduledCallback. - The class now uses
ResourceIngestionDefinitionand its generic parameters.
- Renamed class to
-
com.snowflake.connectors.taskreactor.config.ConfigRepository:- Config values are now always treated as Strings, not Variants.
New features¶
-
New
PUBLIC.RESET_CONFIGURATION()procedure that allows to reset the configuration wizard state. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Reset configuration. -
New
PUBLIC.RECOVER_CONNECTOR_STATE(STRING)procedure that allows to reset the connector state. See also Recover connector state. -
New
TASK_REACTOR.REMOVE_INSTANCE(STRING)procedure that allows to remove a Task Reactor instance. See also Remove instance. -
com.snowflake.connectors.application.configuration.connector.ConnectorConfigurationKey:- Added new
CORTEX_WAREHOUSEkey. - Added new
CORTEX_USER_ROLEkey.
- Added new
-
com.snowflake.connectors.util.time:- Added new classes for JSON serialization of
LocalDateandZoneId.
- Added new classes for JSON serialization of
-
com.snowflake.connectors.common.task.TaskRepository:- Added support for the
AFTERparameter during task creation, if task predecessors have been specified. - Added support for the
USER_TASK_TIMEOUT_MSparameter.
- Added support for the
-
com.snowflake.connectors.common.task.TaskProperties:- Added support for task predecessors.
- Added support for the
USER_TASK_TIMEOUT_MSproperty.
-
com.snowflake.connectors.util.sql.SqlTools:
- Added
callProcedureRaw(Session, String, String...)method.- Added
callProcedureRaw(Session, String, String, String...)method.
- Added new
com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorkerclass - a simple worker implementation for use with ingestion workloads. - Added new
com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionclass - a simple ingestion representation, for use by anIngestionWorker. - Added new
com.snowflake.connectors.taskreactor.worker.ingestion.SimpleIngestionWorkItemclass - a simple work item implementation for ingestion work.
Bug fixes¶
-
com.snowflake.connectors.common.task.TaskRepository:- Fixed the successful task creation condition check in
create(TaskDefinition, boolean, boolean).
- Fixed the successful task creation condition check in
-
com.snowflake.connectors.util.variant.VarianMapper:- Fixed handling of timestamps in Variants.
-
Corrected default input validators in handlers for the connector configuration processes.
-
Removed
DataFrame#firstfrom mostSELECTqueries, which fixed issues with using some procedures in tasks. -
Removed granting
USAGEonSTATEschema to app roleADMIN. -
Added missing
UPDATED_ATcolumn to the Task Reactor config table.
Version 2.1.0 (July 8th, 2024)¶
Behavior changes¶
-
New identifier approach.
Important
This new approach may change how identifiers are used in your connector, please test the new changes thoroughly!
- The SDK now expects all identifiers to be sent as provided by the user; the SDK will asses by itself whether it’s a quoted identifier or not in order to process it correctly further.
- Auto quoting of identifiers will be done only when using values returned by Snowflake queries.
- To use the new approach with the UI - the connector must return a new property in the
PUBLIC.APP_PROPERTIESview, with the key ofUI_ADD_QUOTES_TO_EXISTING_QUOTED_IDENTIFIERSand a value ofTRUE. - Changed
com.snowflake.connectors.common.object.Identifierclass:- Removed
fromWithAutoQuoting()andgetName()methods. - Removed the concept of an empty identifier; removed
empty(),isNullOrEmpty(),validateNullOrEmpty(), andisEmpty()methods. - Added new
from()method, which allows for enabling of auto quoting during identifier instance creation; the provided String will not be auto quoted if it is an unquoted, fully uppercase identifier. - Changed
validate()method toisValid(). - Changed
toSqlString()method togetValue(). - Added
getUnquotedValue(),getQuotedValue(),getVariantValue(), andisUnquoted()methods.
- Removed
Changed
com.snowflake.connectors.common.object.ObjectNameclass:
- Made database and schema properties
Optional.- Changed return type of
getDatabase()andgetSchema()toOptional.- Changed
validate()method toisValid().- Changed
validateDoubleDot()method toisDoubleDot().- Changed
getEscapedName()method togetValue().- Added
getVariantValue()andgetSchemaName()methods.Changed
com.snowflake.connectors.common.object.Referenceclass:
- Removed the concept of an empty reference; removed
empty()andisEmpty()methods.- Changed
validate()method toisValid().- Changed
referenceName()method togetName().- Changed
value()method togetValue().- Added new
com.snowflake.connectors.common.object.SchemaNameclass for representing the schema; similar behavior tocom.snowflake.connectors.common.object.ObjectNameclass.- Added new
com.snowflake.connectors.common.object.InvalidSchemaNameExceptionclass.
Other additions and changes¶
- Changed
applyToAllInitializedTaskReactorInstances()method in thecom.snowflake.connectors.taskreactor.TaskReactorInstanceActionExecutorto execute an action only on initialized task reactor instances. Previous behavior: actions were executed on all registered task reactor instances.
New features¶
-
Resource management procedures:
- Introduced new callbacks to
PUBLIC.CREATE_RESOURCE()procedure that allows to perform custom operations during the procedure flow. See also Create resource. - New
PUBLIC.ENABLE_RESOURCE()procedure that allows to enable disabled resource. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Enable resource. - New
PUBLIC.DISABLE_RESOURCE()procedure that allows to disable enabled resource. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Disable resource. - New
PUBLIC.UPDATE_RESOURCE()procedure that allows to update ingestion configurations of a particular resource. Additionally there are added callbacks that allow to perform custom operations during the procedure flow. See also Update resource.
- Introduced new callbacks to
-
com.snowflake.connectors.util.sql.SqlTools:- Added
asVarchar()method that is expected to replacevarcharArgument()method. - Added
asVariant()method that is expected to replacevariantArgument()method. - Marked
varcharArgument()andvariantArgument()methods as deprecated and set them to be removed in the future.
- Added
-
Other additions:
- Defined Ingestion Process status as constants in the
com.snowflake.connectors.application.ingestion.process.IngestionProcessStatusesclass. - Added
isNotOk()method tocom.snowflake.connectors.common.response.ConnectorResponseclass. - Added
com.snowflake.connectors.util.snowflake.DefaultTransactionManagerclass that allows to execute sql statements within a transaction by using thewithTransaction()method. - Improved logging in the task reactor.
- Defined Ingestion Process status as constants in the
Bug fixes¶
- Fixed bug that resulted in removing task reactor instance schema, once unexpected error was raised during
CREATE_INSTANCE_OBJECTS()procedure.
Version 2.0.0 (May 24th, 2024)¶
Initial release.