docs/integrations/destinations/yellowbrick.md
This page guides you through the process of setting up the Yellowbrick destination connector.
Airbyte Cloud only supports connecting to your Yellowbrick instances with SSL or TLS encryption. TLS is used by default. Other than that, you can proceed with the open-source instructions below.
You'll need the following information to configure the Yellowbrick destination:
Refer to this guide for more details
Make sure your Yellowbrick database can be accessed by Airbyte. If your database is within a VPC, you may need to allow access from the IP you're using to expose Airbyte.
Check that JSON support is enabled in Yellowbrick:
SHOW show enable_full_json;
If enable_full_json is off, enable with:
ALTER SYSTEM SET enable_full_json TO TRUE;
or
ALTER USER "<user>" SET enable_full_json TO TRUE;
In either case, these commands should be followed by:
SELECT pg_reload_conf();
You need a Yellowbrick user with the following permissions:
You can create such a user by running:
CREATE USER airbyte_user WITH ENCRYPTED PASSWORD '<password>';
GRANT CREATE, TEMPORARY ON DATABASE <database> TO airbyte_user;
You can also use a pre-existing user but we highly recommend creating a dedicated user for Airbyte.
You will need to choose an existing database or create a new database that will be used to store synced data from Airbyte.
From Yellowbrick SQL Identifiers syntax
Note the following restrictions on unquoted SQL identifiers:
:::info
Airbyte Yellowbrick destination will create raw tables and schemas using the Unquoted identifiers by replacing any special characters with an underscore. All final tables and their corresponding columns are created using Quoted identifiers preserving the case sensitivity.
:::
For Airbyte Cloud:
Log into your Airbyte Cloud account.
In the left navigation bar, click Destinations. In the top-right corner, click new destination.
On the Set up the destination page, enter the name for the Yellowbrick connector and select Yellowbrick from the Destination type dropdown.
Enter a name for your source.
For the Host, Port, and DB Name, enter the hostname, port number, and name for your Yellowbrick database.
List the Default Schemas. :::note The schema names are case sensitive. The 'public' schema is set by default. Multiple schemas may be used at one time. No schemas set explicitly - will sync all of existing. :::
For User and Password, enter the username and password you created in Step 1.
For Airbyte Open Source, toggle the switch to connect using SSL. For Airbyte Cloud uses SSL by default.
For SSL Modes, select:
To customize the JDBC connection beyond common options, specify additional supported JDBC URL parameters as key-value pairs separated by the symbol & in the JDBC URL Parameters (Advanced) field.
Example: key1=value1&key2=value2&key3=value3
These parameters will be added at the end of the JDBC URL that the AirByte will use to connect to your Yellowbrick database.
The connector now supports connectTimeout and defaults to 60 seconds. Setting connectTimeout to 0 seconds will set the timeout to the longest time available.
Note: Do not use the following keys in JDBC URL Params field as they will be overwritten by Airbyte:
currentSchema, user, password, ssl, and sslmode.
:::warning This is an advanced configuration option. Users are advised to use it with caution. :::
For SSH Tunnel Method, select:
:::warning Since Airbyte Cloud requires encrypted communication, select SSH Key Authentication or Password Authentication if you selected disable, allow, or prefer as the SSL Mode; otherwise, the connection will fail. :::
Click Set up destination.
| Sync mode | Supported? |
|---|---|
| Full Refresh - Overwrite | Yes |
| Full Refresh - Append | Yes |
| Full Refresh - Overwrite + Deduped | Yes |
| Incremental Sync - Append | Yes |
| Incremental Sync - Append + Deduped | Yes |
Each stream will be mapped to a separate raw table in Yellowbrick. The default schema in which the raw tables are
created is airbyte_internal. This can be overridden in the configuration.
Each table will contain 3 columns:
_airbyte_raw_id: a uuid assigned by Airbyte to each event that is processed. The column type in
Yellowbrick is VARCHAR._airbyte_extracted_at: a timestamp representing when the event was pulled from the data source.
The column type in Yellowbrick is TIMESTAMP WITH TIME ZONE._airbyte_loaded_at: a timestamp representing when the row was processed into final table.
The column type in Yellowbrick is TIMESTAMP WITH TIME ZONE._airbyte_data: a json blob representing with the event data. The column type in Yellowbrick
is JSONB.| Airbyte Type | Yellowbrick Type |
|---|---|
| string | VARCHAR |
| number | DECIMAL |
| integer | BIGINT |
| boolean | BOOLEAN |
| object | JSONB |
| array | JSONB |
| timestamp_with_timezone | TIMESTAMP WITH TIME ZONE |
| timestamp_without_timezone | TIMESTAMP |
| time_with_timezone | TIME WITH TIME ZONE |
| time_without_timezone | TIME |
| date | DATE |
This destination supports namespaces. The namespace maps to a Yellowbrick schema.
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 0.0.4 | 2024-03-17 | #48475 | Use JSONB functionality behind the scenes. |
| 0.0.3 | 2024-08-06 | #43342 | Remove explicit Kotlin dependency. |
| 0.0.2 | 2024-05-17 | #38329 | Update CDK |
| 0.0.1 | 2024-03-02 | #35775 | Initial release |