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

🎉 source: clickhouse setup docs #3375

Merged
merged 3 commits into from
May 13, 2021
Merged
Show file tree
Hide file tree
Changes from 2 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
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"sourceDefinitionId": "bad83517-5e54-4a3d-9b53-63e85fbd4d7c",
"name": "ClickHouse",
"dockerRepository": "airbyte/source-clickhouse",
"dockerImageTag": "0.1.0",
"documentationUrl": "https://hub.docker.com/r/airbyte/source-clickhouse"
}
Original file line number Diff line number Diff line change
Expand Up @@ -280,3 +280,8 @@
dockerRepository: airbyte/source-google-search-console-singer
dockerImageTag: 0.1.0
documentationUrl: https://hub.docker.com/r/airbyte/source-google-search-console-singer
- sourceDefinitionId: bad83517-5e54-4a3d-9b53-63e85fbd4d7c
name: ClickHouse
dockerRepository: airbyte/source-clickhouse
dockerImageTag: 0.1.0
documentationUrl: https://hub.docker.com/r/airbyte/source-clickhouse
1 change: 1 addition & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
* [Sources](integrations/sources/README.md)
* [Appstore](integrations/sources/appstore.md)
* [Braintree](integrations/sources/braintree.md)
* [ClickHouse](integrations/sources/clickhouse.md)
* [Drift](integrations/sources/drift.md)
* [Exchange Rates API](integrations/sources/exchangeratesapi.md)
* [Facebook Marketing](integrations/sources/facebook-marketing.md)
Expand Down
56 changes: 56 additions & 0 deletions docs/integrations/sources/clickhouse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# ClickHouse

## Overview

The ClickHouse source supports Full Refresh syncs. That is, every time a sync is run, Airbyte will copy all rows in the tables and columns you set up for replication into the destination in a new table.

This Clickhouse source connector is built on top of the source-jdbc code base and is configured to rely on JDBC v0.3.1 standard drivers provided by ClickHouse [here](https://github.com/ClickHouse/clickhouse-jdbc) as described in ClickHouse documentation [here](https://clickhouse.tech/docs/en/interfaces/jdbc/).

#### Resulting schema

The ClickHouse source does not alter the schema present in your warehouse. Depending on the destination connected to this source, however, the schema may be altered. See the destination's documentation for more details.

### Features

| Feature | Supported | Notes |
| :--- | :--- | :--- |
| Full Refresh Sync | Yes | |
| Incremental Sync | Yes | |
| Replicate Incremental Deletes | Coming soon | |
| Logical Replication \(WAL\) | Coming soon | |
| SSL Support | No | |
| SSH Tunnel Connection | Coming soon | |
| Namespaces | Yes | Enabled by default |

## Getting started

### Requirements

1. ClickHouse Server `21.3.10.1`.
Copy link
Contributor

Choose a reason for hiding this comment

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

spoke about this: Let's make this version or later.

2. Create a dedicated read-only Airbyte user with access to all tables needed for replication

### Setup guide

#### 1. Make sure your database is accessible from the machine running Airbyte

This is dependent on your networking setup. The easiest way to verify if Airbyte is able to connect to your ClickHouse instance is via the check connection tool in the UI.

#### 2. Create a dedicated read-only user with access to the relevant tables \(Recommended but optional\)

This step is optional but highly recommended to allow for better permission control and auditing. Alternatively, you can use Airbyte with an existing user in your database.

To create a dedicated database user, run the following commands against your database:

```sql
CREATE USER 'airbyte'@'%' IDENTIFIED BY 'your_password_here';
```

Then give it access to the relevant schema:

```sql
GRANT SELECT ON <database name>.* TO 'airbyte'@'%';
```

You can limit this grant down to specific tables instead of the whole database. Note that to replicate data from multiple ClickHouse databases, you can re-run the command above to grant access to all the relevant schemas, but you'll need to set up multiple sources connecting to the same db on multiple schemas.

Your database user should now be ready for use with Airbyte.