Smart Ingest lets you pull data stored in your Trino database and push it to Iterable.
NOTE
Contact your Iterable customer success manager to discuss adding Smart Ingest to your plan.
Smart Ingest can only import data from Trino.
In this article
Connection requirements
Before you can connect Smart Ingest to Trino, you need to do the following:
- Allow Smart Ingest IPs in Trino.
- Choose a connection type.
- Choose a sync engine.
- Get Trino connection details.
- Get Trino user credentials.
Allowing Smart Ingest IPs in Trino
Before you connect Smart Ingest to Trino, make sure to allow Smart Ingest IPs to connect to your database.
Connection types
Smart Ingest supports two connection types for Trino:
A direct connection over the public internet.
-
A SSH tunnel.
To learn more about SSH tunneling and how to set up standard and reverse tunnels for Smart Ingest, read SSH Tunneling for Smart Ingest.
The connection type you choose depends on your Trino configuration and your security requirements. Because data is encrypted in transit via TLS, a direct connection is suitable for most use cases. You may need to set up a tunnel if your Trino instance is on a private network or virtual private cloud (VPC).
Sync engines
Choose from the Lightning or Basic sync engine. Lightning is faster and more efficient, but requires the database user to have write access. Basic is slower and less efficient, but doesn’t require write access.
To learn more about sync engines, read Optimizing Smart Ingest Sync Performance.
Permissions required for the Lightning sync engine
The Lightning sync engine requires the database user to have write access.
To view the specific permissions required:
Log in to Iterable as a user with the Manage Integrations project permission and open the project you’re working on.
Go to Integrations > Smart Ingest.
Click Connect a New Source.
Select Trino and click Continue.
Scroll down to Step 3 and select the Lightning Sync Engine. Smart Ingest displays the additional permissions required for the database user.
These permissions are necessary for Smart Ingest to create and manage the sync schema, and are customized based on the other inputs you provide in the source setup form (such as the catalog name).
NOTE
Smart Ingest is co-developed by Iterable and Hightouch. Hightouch is a data processor for this feature. Smart Ingest data operations and schemas may contain the Hightouch name, but the feature is fully supported by Iterable.
Trino connection details
To connect to Trino, you need the following details from your Trino administrator:
Host - The hostname or IP address of your Trino coordinator server.
Port - The port number of your Trino coordinator server. The default port number is
8080
, but yours may be different.(Optional) Default Catalog - The catalog that Smart Ingest uses by default when executing queries in Trino.
(Optional) Default Schema - The schema that Smart Ingest uses by default when executing queries in Trino.
Engine - Smart Ingest can use the Trino or Presto engine to execute queries.
Connector - The connector that Smart Ingest can use to access the data source used by the sync engine: Hive, Iceberg, or PostgreSQL.
(Optional) Extra Table Properties - The key-value pairs used as default extra properties for tables created with the Hive and Iceberg connectors.
(Optional) Filter Table Discovery - If enabled, Smart Ingest filters out tables that don't match the specified catalog and schema.
(Optional) Disable Encryption - Encryption is enabled by default. You can turn it off if your Trino instance doesn't support encrypted connections.
(Optional) SSL/TLS Certificate - If your Trino server requires an SSL/TLS certificate, you can provide it for Smart Ingest.
(Optional) Custom HTTP headers - Pass custom HTTP headers to the Trino server. These are provided in key-value pairs.
Trino user credentials
Smart Ingest allows you to connect to Trino using a username and password, or using OAuth.
Username and password authentication
To connect with a username and password, you need these details:
-
User - This can be your personal Trino login or a dedicated user for Smart Ingest. The user should, at minimum, have permission to read the tables you want to sync.
If you're using the Lightning sync engine, the user must also have write access.
Password - The password for the user specified above.
OAuth authentication
To connect with OAuth, you need to provide the following details:
- OAuth Access Token URL - The URL for the OAuth authorization endpoint.
- OAuth Client ID - The client ID for the OAuth application.
- OAuth Client Secret - The client secret for the OAuth application.
Using a SSL Certificate
If you use a custom SSL/TLS certificate with your Trino server, you can provide the certificate and key to Smart Ingest. This is optional, and most users can connect without providing a custom certificate.
Smart Ingest supports the following formats for certificates:
PEM - A common format for certificates and keys. You can provide the certificate and key in separate files, or in a single file with the certificate first and the key second.
CRT - A common format for certificates. You can provide the certificate in a single file.
To use your own SSL/TLS certificate with Smart Ingest, you need to provide the following details:
CA Certificate - A CA certificate file in PEM or CRT format, max size 10MB. You can disable verification if you are setting up a connection with a self-signed CA certificate.
(Optional) SSL Key - The key file in PEM or KEY format, max size 10MB.
(Optional) SSL Certificate - A SSL certificate file in PEM or CRT format, max size 10MB.
(Optional) Passphrase - The password for the key file, if it is encrypted.
Connecting Trino to Smart Ingest
To connect Smart Ingest with your Trino database:
Log in to Iterable as a user with the Manage Integrations project permission and open the project you’re working on.
Go to Integrations > Smart Ingest.
Click Connect a New Source.
Select Trino and click Continue.
-
In Step 1, select the connection type your sync should use to connect:
Connect Directly to Trino. This creates a direct connection with no additional setup needed.
-
Connect via SSH Tunnel. This connects using SSH. Add a standard or reverse tunnel, or select an existing tunnel if you’ve already set one up.
To learn more about SSH tunneling and how to set up standard and reverse tunnels for Smart Ingest, read SSH Tunneling for Smart Ingest.
-
In Step 2, enter your Trino connection details:
- Host
- Port
- Default Catalog (optional)
- Default Schema (optional)
- Engine - Trino or Presto
- Connector - Hive, Iceberg, or PostgreSQL
- Extra Table Properties (optional)
- Filter Table Discovery (optional)
- Disable Encryption (optional)
- Use custom SSL/TLS Certificate (optional) - provide the certificate and key details
- Custom HTTP headers (optional) - Enter a key in the text area, then click Add Key to add a value.
In Step 3, choose from the Lightning Sync Engine or Basic Sync Engine.
-
In Step 4, select the type of authentication you want to use, and then enter the required details:
Username / Password - Enter your Trino user credentials: Username and Password.
OAuth - Enter your OAuth details: OAuth Access Token URL, OAuth Client ID, and OAuth Client Secret.
Click Continue. Smart Ingest automatically tests the connection.
When the connection test is successful, click Continue. (If there are problems connecting, click Back and review the connection details for accuracy.)
Add a name for your data source to display in Iterable.
Click Finish.
Next steps
You've now connected your data warehouse to Smart Ingest. The next thing you can do is create a sync.