Skip to content

Updating public docs with Reverse-ETL DB2 source setup guide #7664

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/_data/sidenav/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ sections:
title: BigQuery Reverse ETL Setup
- path: /connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup
title: Databricks Reverse ETL Setup
- path: /connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup
title: DB2 Reverse ETL Setup
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: DB2 Reverse ETL Setup
title: Db2 Reverse ETL Setup

- path: /connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup
title: Postgres Reverse ETL Setup
- path: /connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: DB2 Reverse ETL Setup
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: DB2 Reverse ETL Setup
title: Db2 Reverse ETL Setup

---

Set up DB2 as your Reverse ETL source.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Set up DB2 as your Reverse ETL source.
Set up Db2 as your Reverse ETL source.


At a high level, when you set up DB2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query, and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Authentication is handled through username and password credentials configured in the Segment app.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
At a high level, when you set up DB2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query, and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Authentication is handled through username and password credentials configured in the Segment app.
At a high level, when you set up Db2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Segment authenticates with your Db2 instance through a username and password.




## Required permissions

In order to run a Reverse ETL sync in a DB2 warehouse, Segment needs the following permissions:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In order to run a Reverse ETL sync in a DB2 warehouse, Segment needs the following permissions:
In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user with the following permissions:


* **Permission to read from all tables used in the model** (i.e., the tables included in your SELECT query).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* **Permission to read from all tables used in the model** (i.e., the tables included in your SELECT query).
* **Permission to read from all tables used in the model**: The user must be able to access all tables included in your SELECT query.

* **Permission to create and manage a schema** for tracking sync metadata.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* **Permission to create and manage a schema** for tracking sync metadata.
* **Permission to create and manage a schema**: Segment creates and manages a schema in your warehouse to track sync metadata.

* **Permission to create tables in the database**, needed for internal metadata tables.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* **Permission to create tables in the database**, needed for internal metadata tables.
* **Permission to create tables in the database**: Segment creates metadata tables in your warehouse.



> info "Use a dedicated user for Segment"
> It's recommended to create a dedicated DB2 user for Segment with access limited to only the relevant schemas and tables.
Comment on lines +20 to +21
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> info "Use a dedicated user for Segment"
> It's recommended to create a dedicated DB2 user for Segment with access limited to only the relevant schemas and tables.
> info "Create a dedicated user for Segment's Reverse ETL connection"
> Segment recommends that you create a dedicated Db2 user for when setting up Reverse ETL. This user should only have access to the relevant schemas and tables you'll need to access during syncs between Segment and your warehouse.


1. In IBM Cloud, go to your DB2 instance and navigate to **Administration > User management**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. In IBM Cloud, go to your DB2 instance and navigate to **Administration > User management**.
1. In IBM Cloud, go to your Db2 instance and navigate to **Administration > User management**.

2. Click **Add**.
3. Create a new user with *user* privileges. Make sure to save the username and password—these are needed to configure the Segment
source connection later.
Comment on lines +25 to +26
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Create a new user with *user* privileges. Make sure to save the username and password—these are needed to configure the Segment
source connection later.
3. Create a new user with *user* privileges. Note the username and password of the user you created, as you'll need this information to set up the Segment source connection in a later step.



> info ""
> The `SEGMENT_REVERSE_ETL` schema will be created and managed by Segment to track the status of each sync.
> You can also choose to create this schema yourself by running:
> `CREATE SCHEMA SEGMENT_REVERSE_ETL`
> Then grant Segment the appropriate privileges.
Comment on lines +29 to +33
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> info ""
> The `SEGMENT_REVERSE_ETL` schema will be created and managed by Segment to track the status of each sync.
> You can also choose to create this schema yourself by running:
> `CREATE SCHEMA SEGMENT_REVERSE_ETL`
> Then grant Segment the appropriate privileges.
> info ""
> Segment creates and manages the `SEGMENT_REVERSE_ETL` schema to track the status of each sync.
> You can also choose to create this schema yourself by running:
> `CREATE SCHEMA SEGMENT_REVERSE_ETL`
> After you've created the schema, grant Segment the appropriate privileges.




Run the following SQL commands to grant Segment the required permissions:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where would someone run these commands? Is it in a workbook/workspace/warehouse/etc.? just looking for more context on this step.


```sql
-- Grant permissions to create and manage objects within the SEGMENT_REVERSE_ETL schema
GRANT CREATEIN, DROPIN ON SCHEMA SEGMENT_REVERSE_ETL TO USER <username>;

-- Grant permission to create tables in the database
GRANT CREATETAB ON DATABASE TO USER <username>;

-- Grant read access on each table used in the model
GRANT SELECT ON TABLE <schema_name>.<table_name> TO USER <username>;
-- Repeat the above command for all tables involved in your model
```


## Set Up Guide
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Set Up Guide
## Set up guide


To set up DB2 as your Reverse ETL source:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To set up DB2 as your Reverse ETL source:
To set up Db2 as your Reverse ETL source:


1. Make sure your DB2 database is network-accessible from [Segment's IPs](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Make sure your DB2 database is network-accessible from [Segment's IPs](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist).
1. Confirm that your Db2 database is network-accessible from the [IP address that Segment uses to connect to your warehouse](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist).

2. Open [your Segment workspace](https://app.segment.com/workspaces){:target="_blank"}.
3. Navigate to **Connections > Sources** then select the **Reverse ETL** tab.
4. Click **+ Add Reverse ETL source**.
5. Select **DB2** and click **Add Source**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this DB2 or Db2 in the UI?

Suggested change
5. Select **DB2** and click **Add Source**.
5. Select **Db2** and click **Add Source**.

6. Fill in the DB2 connection settings:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
6. Fill in the DB2 connection settings:
6. Fill in the following Db2 connection settings:

* Hostname: `<hostname>`
* Port: `<port>`
* Database: `<db_name>`
* Username: `<segment_db2_user>`
* Password: `<password>`
7. Click **Test Connection** to validate the setup.
8. If the connection is successful, click **Add source**.

After successfully adding your DB2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
After successfully adding your DB2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.
After successfully adding your Db2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide.

1 change: 1 addition & 0 deletions src/connections/reverse-etl/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ To add your warehouse as a source:
- [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup)
- [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup)
- [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup)
- [DB2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [DB2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup)
- [Db2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup)

- [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup)
- [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup)
- [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup)
Expand Down