In order to replicate to a Snowflake database, you will need to add the directive <ensure_table_exists> within the <task> directive. The <ensure_table_exists> directive is self-closing and does not require any attribute values.

Refer to the example agent.xml configuration below for configuration of your DataSync Agent for replication to a Snowflake database:

Example

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<config>
    <agent>
         <share/>
              <subscribe>
                      <task instances="4">
                              <task_name>OnDemandAgent_subscribe</task_name>
                              <message_connection password="encrypted:vlOtU71yu8N/EFIJH85SSPbQ5/gZDZBSjYcHe6gjfJI=" queue="psp.out.replicator.aws_ondemand_datasync" use_basic_consume="true" user="perspectium.com.1561578334430/oda.ivan.kuo.1561578334430">amqp://nvirginia-ondemanddatasync-trial-rabbit.perspectium.net</message_connection>
                              <handler>com.perspectium.replicator.sql.SQLSubscriber</handler>
                              <decryption_key>Perspectium On-demand DataSync</decryption_key>
                              <database_type>snowflake</database_type>
                              <database_server>NC39170.us-east-1.snowflakecomputing.com</database_server>
                              <database_user>Adminadmin1</database_user>
                              <database_password>Adminadmin1</database_password>
                              <database_parms>warehouse=example_warehouse&schema=example_schema&role=example_role</database_parms>
                              <database>psp_repl</database>
                              <use_cache/>
                              <ensure_table_exists/>
                      </task>
              </subscribe>
              <max_reads_per_connect>4000</max_reads_per_connect>
              <polling_interval>5</polling_interval>
              <skip_message_set_processing/>
      </agent>
</config>