Our Blogs
- What is Snowflake?
- How to Use Snowflake data warehouse?
- Snowflake Integration with Talend
- Talend Snowflake Components
- Related ELT Components for Snowflake
- What is Snowflake?
Snowflake is analytic cloud data warehouse build on top of Amazon Web Services (AWS) cloud Infrastructure and is a true SaaS (Software as a Service) offering platform. There is no need to select, install, configure or manage any hardware. And also, there is no software you need to install, configure or manage. It cannot be run on any private cloud or hosted Infrastructure. All needed ongoing management, maintenance and tuning is handled by snowflake itself.
- Key Capabilities
- AWS and Azure Only (As on Date)
- No PK/FK Enforcement (Informational only)
- Snowflake SQL
- DDL/DML
- SQL Functions
- User Defined Functions/Stored Procedure (using java Script)
- Views/Materialized Views
- ACID Transactions
- Analytical Aggregations, Windowing and Hierarchical Queries
- Integration Supports
- Data integration Tools (Talend, Informatica, Pentaho etc.)
- Self-Services BI Tools (Tableau, QlikView, Spotfire etc.)
- Big Data Tools (Kafka, Spark, Databricks etc.)
- JDBC/ODBC Drivers
- Native Language Connectors (Python, Go, Node.jsetc.)
- SQL Interface & Client
- Snowflake web Interface
- Snowflake CLI
- DBeaver
- Unique Features
- Scalability (Storage and Compute)
- User Experience (Performance)
- No Indexing
- No Performance Tuning
- No Partitioning
- No Physical Storage Design
- Tunable pay per use
- How to use Snowflake data warehouse
It is pretty easy to learn and handle snowflake. You can find open source 30 days trial version. Provide all the details required and do sign up for the first time. After login you can see the screen like this:
From the right-side menu, you can switch Role, Warehouse, Database and Schema. To create all these, you can run simple create SQL query on worksheet provided. There are few tabs you can see databases, Warehouse, Worksheet, History and Account on topmost menu. All created database you can see on database tab and simultaneously warehouse and history details you can find. If you interested in detailed information about snowflake architecture visit snowflake documentation here https://docs.snowflake.com/en/.
- Snowflake Integration with Talend
- Creating a metadata connection to snowflake
- Inside project repository find the Metadata section
- Locate the Snowflake icon
- Right click and select snowflake connection menu option
- Inside connection definition dialog box fill up the details like Name, Account, User ID, Password, Warehouse Name, Schema and database name
- Initially just fill the parameter details manually to establish a valid connection but best practice is to convert it into a context group with assigned variables of connection parameters
- In Advanced ensure that Login Timeout, Tracing and Role settings as per requirement
- Click ok then click Test connection to ensure connection validity
- Once made a valid connection click next
- Select the tables as per your requirement then click finish
- Talend Snowflake Components
- tSnowflakeConnection:
Use to manage a connection to Snowflake that can be reuse by another Snowflake components.
You can either drag from metadata snowflake connection and select tSnowflakeConnection component or type tSnowflakeConnection and configure all the properties
- Standared properties
- Basic Settings
Database |
Select the database list and apply accordingly |
Property type |
Select the way connection details build in or repository |
Account |
Enter provided account name within double quotes |
Snowflake Region |
Select AWS region or Azure region from dropdown list |
User Id and password |
Enter provided login name within double quotes and click […] button to enter password within double quotes |
Warehouse |
Enter Warehouse name within double quotes as per your project |
Schema |
Enter schema name to be used within double quotes |
Database |
Enter database name to be used within double quotes |
- Advance settings
Use custom snowflake Region |
To use customize snowflake region select the checkbox and provide region id as per region used within double quotes like eu-west-1 or east-us |
Login Timeout |
Specify login timeout to wait for response when connecting to snowflake before returning an error |
Role |
Provide the snowflake role you have assigned if empty it will take public role automatically granted |
TStatCatcher Statistics |
This check box is for gather the job processing metadata at the job level as well as component level |
- Global variables
ERROR_MESSAGE |
This is the error message generated by the component when error occurs |
- Usage
Usage Rule |
It creates a snowflake connection and works with other sub jobs that reuse this connection using trigger link |
- tSnowflakeInput:
Use to reads data from a snowflake table into the data flow of your job based on an SQL query.
- Standard properties
- Basic settings
Database |
Select the database list and apply accordingly |
Property type |
Select the way connection details build in or repository |
Connection Component |
Select the connection component and use existing connection |
Account |
Enter provided account name within double quotes |
User Id and password |
Enter provided login name within double quotes and click […] button to enter password within double quotes |
Warehouse |
Enter Warehouse name within double quotes as per your project |
Schema |
Enter schema name to be used within double quotes |
Database |
Enter database name to be used within double quotes |
Table |
Click […] button and in select snowflake table to be used |
Schema and Edit Schema |
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs. |
Manual query |
Select the checkbox and write proper SQL query within double quotes |
Condition |
Enter the Boolean expression to be used to filter data from your snowflake table within double quotes |
- Advance settings
Login Timeout |
Specify login timeout to wait for response when connecting to snowflake before returning an error |
Role |
Provide the snowflake role you have assigned if empty it will take public role automatically granted |
Tracing |
Use for taking log for snowflake JDBC driver |
Allow snowflake to convert column to uppercase |
Select checkbox to convert lowercase to uppercase in the defined table name. This property will not available if you select Manual query check box
|
TStatCatcher Statistics |
This check box is for gather the job processing metadata at the job level as well as component level |
- Global variables
ERROR_MESSAGE |
This is the error message generated by the component when error occurs |
NB_LINE |
Provide the number of rows proceed and returns integers |
- Usage
Usage Rule |
This component sends data to other components via row link |
- tSnowflakeOutput:
Use to insert, update, upsert or delete data in a output snowflake table incoming from its preceding component. It uses the bulk loader for high performance database operations provided by snowflake.
- Standard properties
- Basic settings
Database |
Select the database list and apply accordingly |
Property type |
Select the way connection details build in or repository |
Connection Component |
Select the connection component and use existing connection |
Account |
Enter provided account name within double quotes |
User Id and password |
Enter provided login name within double quotes and click […] button to enter password within double quotes |
Warehouse |
Enter Warehouse name within double quotes as per your project |
Schema |
Enter schema name to be used within double quotes |
Database |
Enter database name to be used within double quotes |
Table |
Click […] button and in select snowflake table to be used |
Schema and Edit Schema |
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs. |
Output Action |
Select the operation to insert, delete, update or merge(upsert) data in snowflake tables |
- Advance settings
Use custom snowflake region |
To use customize snowflake region select the checkbox and provide region id as per region used within double quotes like eu-west-1 or east-us |
Login Timeout |
Specify login timeout to wait for response when connecting to snowflake before returning an error |
Role |
Provide the snowflake role you have assigned if empty it will take public role automatically granted |
Tracing |
Use for taking log for snowflake JDBC driver |
Allow snowflake to convert column to uppercase |
Select checkbox to convert lowercase to uppercase in the defined table name. This property will not available if you select Manual query check box
|
TStatCatcher Statistics |
This check box is for gather the job processing metadata at the job level as well as component level |
- Global variables
ERROR_MESSAGE |
This is the error message generated by the component when error occurs |
NB_LINE |
Provide the number of rows proceed and returns integers |
NB_REJECT |
Provide the number of rows rejected and returns integers |
NB_SUCCESS |
Provide the number of rows Successfully proceed and returns integers |
- Usage
Usage Rule |
It is end component of a data flow in your job. It receives data from other component via Row > Main link and provide the error information like The name of the column in error, The number of row in error, The category of the error, such as parsing error or a conversion error, The character offset in the line in error, SQLSTATE for the error or Snowflake error code |
- tSnowflakeClose:
Use for close active snowflake connection and released the occupied resources
- Standard properties
- Basic settings
Database |
Select the database list and apply accordingly |
Connection Component |
Select the component that opens the connection you need to close from the drop-down list |
- Advance settings
TStatCatcher Statistics |
This check box is for gather the job processing metadata at the job level as well as component level |
- Global variables
ERROR_MESSAGE |
This is the error message generated by the component when error occurs |
- Usage
Usage Rule |
This component is more commonly used with other snowflake component like tSnowflakeConnection component |
- Related ELT Components for Snowflake
- tELTInput:
Use to adds as many tables as required for the SQL statement to be executed. And the standard tELTInput component belongs to the ELT family.
- Standard properties
- Basic settings
Schema and Edit Schema |
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs |
Default table name |
Enter default table name within double quotes |
Default Schema name |
Enter default schema name within double quotes |
Mapping |
Enter and specify the metadata file for the database to be used. The metadata mapping file is used for data type conversion between database and java |
- Advance settings
TStatCatcher Statistics |
This check box is for gather the job processing metadata at the job level as well as component level |
- Global variables
ERROR_MESSAGE |
This is the error message generated by the component when error occurs To fill up a field or expression with a variable, press ctrl+ space to access the variable list and choose the variable to use from it.
|
- Usage
Usage Rule |
This component sends schema information to tELTMap via row link Note that the output link to be used with these components must correspond strictly to the syntax of the table name.
Note: The ELT components do not handle actual data flow but only the schema information |
- tELTMap:
It is same as tMap component uses the tables provided as input to feed the parameter in the built SQL statement. The statement can include inner or outer joins to be implemented between tables or between one table and its aliases. It belongs to ELT family.
- Standard properties
- Basic settings
Use an existing Connection |
Select the connection component click to existing connection and use relevant connection |
ELT Map Editor |
The ELT Map editor allows you to define the output schema and make a graphical build of the SQL statement to be executed. The column names of schema can be different from the column names in the database. |
User Id and password |
Enter provided login name within double quotes and click […] button to enter password within double quotes |
Property type |
Either Build-In or Repository. Build-in: No property data stored centrally. Repository: select the repository file to store the properties |
Mapping |
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs. |
- Advance settings
Additional JDBC parameter |
Add connection properties for additional DB connection you are creating. No need to use if you have selected use an existing connection in basic settings. |
TStatCatcher Statistics |
This check box is for gather the job processing metadata at the job level as well as component level |
- Global variables
ERROR_MESSAGE |
This is the error message generated by the component when error occurs To fill up a field or expression with a variable, press ctrl+ space to access the variable list and choose the variable to use from it. |
- Usage
Usage Rule |
This component sends schema information to tELTOutput via row link Note that the output link to be used with these components must correspond strictly to the syntax of the table name.
Note: The ELT components do not handle actual data flow but only the schema information |
- tELTOutput:
Use for inserts the data according to the output schema defined in the tELTMap component including action and clauses on the table specified.
- Standard properties
- Basic settings
Action on Table |
Select an operation like None, Drop and create table, create table, create table if does not exists, drop table if exist and create, Truncate table as per your requirement from the dropdown menu |
Action on Data |
Select and perform Insert, Update and Delete operations accordingly |
Schema and Edit Schema |
create and store the schema locally for this component or use already created schema in the repository. You can reuse repository n various projects and job designs. |
Where clause (for Update and Delete only) |
Enter a clause to filter the data to be updated or deleted during the update or delete operations.
|
Default Table Name |
Enter default table name within double quotes |
Default Schema Name |
Enter default schema name within double quotes |
User Defined Table Name |
Select the checkbox to define a different output table name between double quotes, in the appeared Table Name field |
Mapping |
Enter and specify the metadata file for the database to be used. The metadata mapping file is used for data type conversion between database and java |
- Advance settings
Use Update Statement without Subqueries |
Select option to generate an UPDATE statement for the database. Option is available only when update is selected from the Action on data in basic settings. |
TStatCatcher Statistics |
This check box is for gather the job processing metadata at the job level as well as component level |
- Global variables
ERROR_MESSAGE |
This is the error message generated by the component when error occurs |
NB_LINE |
Provide the number of rows proceed and returns integer |
NB_LINE INSERTED |
The number of rows inserted and returns integer |
- Usage
Usage Rule |
This component is used with tELTMap via row link Note that the output link to be used with these components must correspond strictly to the syntax of the table name.
Note: The ELT components do not handle actual data flow but only the schema information |
- Final Thoughts:
Traditional data warehousing methods and technologies are faced with a major challenge to provide the kind of service, simplicity and value required to sustain in today’s demanding and rapidly changing business environment.
The magic combination of Snowflake and Talend –a Cloud data integration leader is not just super fun and easy to work with but is also an attractive proposition as a Cloud Data warehousing solution.
About Girikon:
Girikon is a reputed name in the Salesforce consulting, Salesforce implementation and Salesforce support space offers end-to-end IT services in order to cater to the needs of clients across different industry verticals.