Skip to content
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

RC: RDI in the cloud #570

Draft
wants to merge 56 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
55848df
DOC-4014 added RDI string job config example
andy-stark-redis Jul 26, 2024
c4d39e6
begin index and setup drafts
kaitlynmichael Aug 19, 2024
d586971
overview draft
kaitlynmichael Aug 22, 2024
b5beb6a
edit desc
kaitlynmichael Aug 22, 2024
10d5de8
fix relref
kaitlynmichael Aug 22, 2024
c9e5161
get started, doc link
kaitlynmichael Aug 22, 2024
42fcff9
prepare source database with link
kaitlynmichael Aug 22, 2024
17270d8
setup connectivity
kaitlynmichael Aug 22, 2024
9e0de8e
connectivity steps
kaitlynmichael Aug 22, 2024
efc8b0b
pane > box
kaitlynmichael Aug 22, 2024
20c3050
Limitations draft
kaitlynmichael Aug 23, 2024
c3b7bca
Apply suggestions from code review
cmilesb Aug 30, 2024
85c6d08
Merge branch 'main' into DOC-4137
cmilesb Sep 3, 2024
e938762
Edits and DB credentials changes
cmilesb Sep 3, 2024
a5977a2
Add setup step and more edits
cmilesb Sep 6, 2024
289f0e4
Move last step to provision
cmilesb Sep 11, 2024
1d6fce4
Merge branch 'main' into DOC-4137
cmilesb Sep 13, 2024
272e518
Add some of Yaron's suggestions to intro
cmilesb Sep 13, 2024
9d12553
Apply suggestions from code review
cmilesb Sep 19, 2024
1551e1d
Merge branch 'main' into DOC-4137
cmilesb Sep 19, 2024
a32204e
Add define steps
cmilesb Sep 20, 2024
07bc249
Merge branch 'main' into DOC-4137
cmilesb Sep 20, 2024
bc41625
Merge branch 'main' into DOC-4137
cmilesb Sep 20, 2024
71f431c
Fix relrefs
cmilesb Sep 20, 2024
e8ea310
stash commit
cmilesb Sep 23, 2024
860944a
Add security information
cmilesb Sep 24, 2024
639fc50
Merge branch 'main' into DOC-4137
cmilesb Sep 27, 2024
697d665
Merge branch 'main' into DOC-4137
cmilesb Oct 7, 2024
fa87f86
Add View/Edit
cmilesb Oct 7, 2024
49d1f54
Incorporate Yaron's feedback, part 1
cmilesb Oct 11, 2024
4abac23
Merge branch 'main' into DOC-4137
cmilesb Oct 11, 2024
4d69274
stash commit
cmilesb Oct 15, 2024
129d6af
More suggestions from Yaron
cmilesb Oct 21, 2024
99229b1
Merge branch 'main' into DOC-4137
cmilesb Oct 21, 2024
0b6be0f
DEV: fix attribute type examples on the protocol page (#790)
dwdougherty Oct 21, 2024
468e20e
Create github workflow for fetching command json files from module re…
paoloredis Oct 22, 2024
1d27cf9
Fix typo
paoloredis Oct 22, 2024
a25fa2e
DOC-4383 added Boost.redis to community client table
andy-stark-redis Oct 22, 2024
3751209
Merge pull request #791 from redis/DOC-4386
paoloredis Oct 22, 2024
aec1572
Apply suggestions from code review
andy-stark-redis Oct 22, 2024
1d2e66a
Add missing checkout action
paoloredis Oct 22, 2024
1caa34e
Merge pull request #793 from redis/DOC-4386
paoloredis Oct 22, 2024
c6c3861
Merge pull request #792 from redis/DOC-4383-add-boost-minor-client
andy-stark-redis Oct 22, 2024
ab655d5
Add pull request permissions to redis_modules_docs_sync workflow
paoloredis Oct 22, 2024
6011079
Merge pull request #794 from redis/DOC-4386
paoloredis Oct 22, 2024
7772bf4
pull-request creation logic should only run when there is a module ch…
paoloredis Oct 22, 2024
83bfcca
Merge pull request #795 from redis/DOC-4386
paoloredis Oct 22, 2024
c3e501e
Apply suggestions from code review
cmilesb Oct 22, 2024
9b5864c
Merge pull request #494 from redis/DOC-4014-rdi-string-job-file
andy-stark-redis Oct 22, 2024
fe0853c
DOC-4403 rehomed RDI string example
andy-stark-redis Oct 23, 2024
4f42272
Merge pull request #798 from redis/DOC-4403-rdi-string-ex-wrong-place
andy-stark-redis Oct 23, 2024
2d1c675
Fix Relrefs
cmilesb Oct 23, 2024
70e77af
Update content/integrate/write-behind/data-transformation/data-transf…
cmilesb Oct 23, 2024
bd4714a
Merge pull request #799 from redis/fix-relrefs
cmilesb Oct 23, 2024
7dcb548
multi-ns warning for REAADB (#800)
kaitlynmichael Oct 23, 2024
01907d8
Merge branch 'main' into DOC-4137
cmilesb Oct 24, 2024
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
49 changes: 49 additions & 0 deletions content/operate/rc/databases/rdi/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
Title: Data Integration
alwaysopen: false
categories:
- docs
- operate
- rc
description: Use Redis Data Integration with Redis Cloud.
hideListLinks: true
weight: 99
---

Redis Cloud now supports [Redis Data Integration (RDI)]({{<relref "integrate/redis-data-integration">}}), a fast and simple way to bring your data into Redis.

A relational database usually handles queries much more slowly than a Redis database. If your application uses a relational database and makes many more reads than writes (which is the typical case) then you can improve performance by using Redis as a cache to handle the read queries quickly. Redis Cloud uses [ingest]({{<relref "/integrate/redis-data-integration/ingest/">}}) to help you offload all read queries from the application database to Redis automatically.

RDI helps Redis customers sync Redis Cloud with live data from their primary databases to:
- Meet the required speed and scale of read queries and provide an excellent and predictable user experience.
- Save resources and time when building pipelines and coding data transformations.
- Reduce the total cost of ownership by saving money on expensive database read replicas.

Using RDI with Redis Cloud simplifies managing your data integration pipeline. No need to worry about hardware or underlying infrastructure, as Redis Cloud manages that for you. Creating the data flow from source to target is much easier, and there are validations in place to reduce errors.

## Prerequisites

Before you can create a data pipeline, you must have:

- A [Redis Cloud Pro database]() hosted on Amazon Web Services (AWS)
Copy link
Contributor

Choose a reason for hiding this comment

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

Just checking... these links are intentionally blank for now, right?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yup, I'll fix these before this goes out.

- One supported source database, also hosted on AWS:
- Insert supported source DBs here.

{{< note >}}
Please be aware of the following limitations:

- The target database must be a Redis Cloud Pro database hosted on Amazon Web Services (AWS). Redis Cloud Essentials databases and databases hosted on Google Cloud do not support Data Integration.
- Only the Ingest use case is supported at this time.
cmilesb marked this conversation as resolved.
Show resolved Hide resolved
- Source databases must also be hosted on AWS.
- One source database can only be connected to one target database.
cmilesb marked this conversation as resolved.
Show resolved Hide resolved
{{< /note >}}

## Get started

To create a new data pipeline, you need to:

1. [Prepare your source database]({{<relref "content/operate/rc/databases/rdi/setup">}}) and any associated credentials.
2. [Provision data pipeline]
3. [Define data pipeline]

Once your data pipeline is defined, you can [manage]() and [observe]() it.
61 changes: 61 additions & 0 deletions content/operate/rc/databases/rdi/setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
Title: Prepare source database
alwaysopen: false
categories:
- docs
- operate
- rc
description: null
hideListLinks: true
weight: 1
---


## Create new data pipeline

1. In the Redis Cloud console, go to your target database and select the **Data Pipeline** tab.
1. Select **Create data pipeline**.
1. Select your source database type. The following database types are supported:
Copy link
Contributor

Choose a reason for hiding this comment

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

You also mention MariaDB and Aurora in the intro page. AFAIK, MariaDB is basically the same as MySQL, so I generally write MySQL/MariaDB together. Is Aurora specific to cloud RDI, with it being an Amazon product? Also, if we do support Aurora for this then do we need some extra instructions for it in the Prepare Source Databases section?

Copy link
Contributor

Choose a reason for hiding this comment

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

@yaronp68 - Can you elaborate more on the Aurora inclusion? Is it the same as mySQL/mariaDB, or do we need to add more information as Andy said?

- Insert here
1. If you know the size of your source database, enter it into the **Source dataset size** field.

## Prepare source database

Before using the pipeline, you must first prepare your source database to use the Debezium connector for change data capture (CDC).

See [Prepare source databases]({{<relref "/integrate/redis-data-integration/ingest/data-pipelines/prepare-dbs/">}}) to find steps for your database type.
cmilesb marked this conversation as resolved.
Show resolved Hide resolved

See the [RDI architecture overview]({{< relref "/integrate/redis-data-integration/ingest/architecture#overview" >}}) for more information about CDC.
cmilesb marked this conversation as resolved.
Show resolved Hide resolved

## Share source database credentials
Copy link
Collaborator

Choose a reason for hiding this comment

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

credentials and TLS certificates

Copy link
Contributor

Choose a reason for hiding this comment

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

That's covered in this section. I thought "credentials" in the header would include certificates without making the header too long.


You need to share your source database credentials in an Amazon secret with Redis Cloud so that the pipeline can connect to your database.

In the [AWS Management Console](https://console.aws.amazon.com/), use the **Services** menu to locate and select **Security, Identity, and Compliance** > **Secrets Manager**. [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) of type **Other type of secret** with the following key/value fields:

- `port`: Database port
- `schema_name`: Database name or schema name
- `pdb_name`: Database name *(Oracle only)*
- `username`: Database username
- `password`: Database password
- `server_certificate`: Server certificate in PEM format *(TLS only)*
- `client_certificate`: [X.509 client certificate](https://en.wikipedia.org/wiki/X.509) or chain in PEM format *(mTLS only)*
- `client_certificate_key`: Key for the client certificate or chain in PEM format *(mTLS only)*
- `client_certificate_passphrase`: Passphrase or password for the client certificate or chain in PEM format *(mTLS only)*

{{<note>}}
If your source database has TLS or mTLS enabled, we recommend that you enter the `server_certificate`, `client_certificate`, and `client_certificate_key` into the secret editor using the **Key/Value** input method instead of the **JSON** input method. Pasting directly into the JSON editor may cause an error.
{{</note>}}

After you store this secret, you can view and copy the [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#iam-resources) of your secret on the secret details page.

## Setup connectivity

To expose your source database to Redis, you need to [edit your AWS PrivateLink VPC permissions](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#add-remove-permissions).

1. Open your [Amazon VPC console]() and navigate to **Endpoint services**.
1. Copy the Amazon Resource Name (ARN) provided in **Setup connectivity** pane.
1. Navigate to **Allow principals** tab.
1. Add the Redis Cloud ARN and choose **Allow principals**.

For more details on AWS PrivateLink, see [Share your services through AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html).
Loading