Snowflake
Warehouse size imposes a restriction on the number of connections that can be made
The number of connections that can be made to the Snowflake warehouse can directly affect pipeline performance. A pipeline will use concurrent threads to efficiently write multiple updates to the same Snowflake table. If the warehouse doesn’t support the number of threads being used, it risks locking target records and causing write failures. This is a limitation of the Snowflake warehouse size, and the solution is to ensure that the warehouse is right-sized to handle the update load put on it.Component failure: Failed to connect to Snowflake: JDBC driver encountered communication error
This error message appears if your pipeline cannot connect to Snowflake because of a communication error. This could be because the hostnames and port numbers are blocked by a firewall, there are temporary problems with Snowflake services, or a network configuration issue has occurred. To resolve this issue:- Check the Snowflake service status page. If any issues are reported here, wait until they are resolved and then re-run your pipeline.
- If there are no Snowflake service issues, make sure that the hostnames and port numbers are not blocked by your firewall settings:
- Find the hostnames and port numbers required for Snowflake connection. These are usually in the
SYSTEM$ALLOWLISTconfiguration. - Add these hostnames and port numbers to your firewall’s allowed list.
- Find the hostnames and port numbers required for Snowflake connection. These are usually in the
- If your firewall settings are correct, fix any network issues:
- Check your network configuration to make sure there are no restrictions or blocks on the required ports.
- If you are using a VPN or proxy, make sure that it is configured correctly.
- Test your connection to Snowflake using a diagnostic tool.
Databricks
Failure occurred when interacting with third party service ‘Databricks’
This error message appears if your pipeline encounters aConcurrentAppendException when interacting with Databricks. This happens when your pipeline and another process or user simultaneously perform operations to update the same data partition, causing a conflict.
To resolve this issue, retry the failed operation. You can automatically retry some failed tasks by adjusting the Retry option in the task properties.
To prevent conflicts like this from happening in the future, we recommend improving concurrency control using the following methods:
- Configure your Databricks environment to support transactions, then wrap your update operations in transactions to maintain data integrity.
- Adjust your data partitions to minimize concurrent access to the same partitions, and use finer-grained partitions to reduce the likelihood of conflicts.
- Set up an alert for
ConcurrentAppendExceptionevents in Databricks to notify you if this occurs again. - Review your data access patterns and adjust your scheduling to avoid any recurring conflicts.
