Skip to content

Commit

Permalink
Add dbt extrica docs (#4672)
Browse files Browse the repository at this point in the history
## What are you changing in this pull request and why?
### Description & Motivation

This pull request introduces the
[dbt-extrica](https://github.com/extricatrianz/dbt-extrica) adapter, an
innovative addition to the dbt ecosystem designed to seamlessly
integrate data mesh principles into the dbt workflow.

By building an adapter on top of dbt Core, we aim to extend the reach of
the [Extrica](https://www.extrica.ai) use case to a wider audience
within the dbt community. The adapter is now available on the
[PyPI](https://pypi.org/project/dbt-extrica/).

#### Key Features
* The dbt-extrica adapter acts as a bridge between dbt Core and the
extrica data mesh solution, facilitating data integration,
`transformation`, `modeling`, and `analysis` from `diverse data
sources`.
* Data Mesh Integration: Enables users to seamlessly integrate and model
data from `multiple sources`, aligning with the principles of data mesh
architecture.
* Comprehensive Transformation & Ease of Use: Supports `complex data
transformations` to derive meaningful insights for analysis and
reporting. The adapter is designed with user convenience in mind,
ensuring a smooth and intuitive experience for dbt users.

### Validation of Models

This contribution has undergone rigorous testing to ensure its
reliability and effectiveness. The adapter has been validated in
real-world scenarios to guarantee its performance in diverse
environments.
#### Running Test Cases
![Screenshot
(308)](https://github.com/dbt-labs/docs.getdbt.com/assets/153259391/197edc6b-cc68-4546-963c-200b25e7eed9)

## Checklist

- [ ] The adapter is hosted on
[GitHub](https://github.com/extricatrianz/dbt-extrica).
- [ ] the dbt-extrica adapter is published
[PyPI](https://pypi.org/project/dbt-extrica/).

Adding new pages:
- [ ] The page has been added to `website/sidebars.js`
- [ ] Provided a unique filename for the new page (extrica-configs for
configuration and extrica-setup for setup)
- [ ] Created setup file under
`/docs/core/connect-data-platform/extrica-setup.md`
- [ ] Created config file under
`reference/resource-configs/extrica-configs.md`
- [ ] Added Extrica under `docs/community-adapters.md`.

---------

Co-authored-by: Mrinal Mayank (Trianz) <[email protected]>
Co-authored-by: mirnawong1 <[email protected]>
Co-authored-by: Doug Beatty <[email protected]>
  • Loading branch information
4 people authored Jan 9, 2024
1 parent 48f3771 commit e690246
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 1 deletion.
2 changes: 1 addition & 1 deletion website/docs/docs/community-adapters.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ Community adapters are adapter plugins contributed and maintained by members of
| [TiDB](/docs/core/connect-data-platform/tidb-setup) | [Firebolt](/docs/core/connect-data-platform/firebolt-setup) | [MindsDB](/docs/core/connect-data-platform/mindsdb-setup)
| [Vertica](/docs/core/connect-data-platform/vertica-setup) | [AWS Glue](/docs/core/connect-data-platform/glue-setup) | [MySQL](/docs/core/connect-data-platform/mysql-setup) |
| [Upsolver](/docs/core/connect-data-platform/upsolver-setup) | [Databend Cloud](/docs/core/connect-data-platform/databend-setup) | [fal - Python models](/docs/core/connect-data-platform/fal-setup) |
| [TimescaleDB](https://dbt-timescaledb.debruyn.dev/) | | |
| [TimescaleDB](https://dbt-timescaledb.debruyn.dev/) | [Extrica](/docs/core/connect-data-platform/extrica-setup) | |
80 changes: 80 additions & 0 deletions website/docs/docs/core/connect-data-platform/extrica-setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: "Extrica Setup"
description: "Read this guide to learn about the Extrica Trino Query Engine setup in dbt."
id: "extrica-setup"
meta:
maintained_by: Extrica, Trianz
authors: Gaurav Mittal, Viney Kumar, Mohammed Feroz, and Mrinal Mayank
github_repo: 'extricatrianz/dbt-extrica'
pypi_package: 'dbt-extrica'
min_core_version: 'v1.7.2'
cloud_support: 'Not Supported'
min_supported_version: 'n/a'
platform_name: 'Extrica'
---
<h2> Overview of {frontMatter.meta.pypi_package} </h2>

<ul>
<li><strong>Maintained by</strong>: {frontMatter.meta.maintained_by}</li>
<li><strong>Authors</strong>: {frontMatter.meta.authors}</li>
<li><strong>GitHub repo</strong>: <a href={`https://github.com/${frontMatter.meta.github_repo}`}>{frontMatter.meta.github_repo}</a></li>
<li><strong>PyPI package</strong>: <code>{frontMatter.meta.pypi_package}</code> <a href={`https://badge.fury.io/py/${frontMatter.meta.pypi_package}`}><img src={`https://badge.fury.io/py/${frontMatter.meta.pypi_package}.svg`}/></a></li>
<li><strong>Supported dbt Core version</strong>: {frontMatter.meta.min_core_version} and newer</li>
<li><strong>dbt Cloud support</strong>: {frontMatter.meta.cloud_support}</li>
<li><strong>Minimum data platform version</strong>: {frontMatter.meta.min_supported_version}</li>
</ul>
<h2> Installing {frontMatter.meta.pypi_package} </h2>

Use `pip` to install the adapter, which automatically installs `dbt-core` and any additional dependencies. Use the following command for installation:

<code>python -m pip install {frontMatter.meta.pypi_package}</code>


<h2> Connecting to {frontMatter.meta.platform_name} </h2>

#### Example profiles.yml
Here is an example of dbt-extrica profiles. At a minimum, you need to specify `type`, `method`, `username`, `password` `host`, `port`, `schema`, `catalog` and `threads`.
<File name='~/.dbt/profiles.yml'>

```yaml
<profile-name>:
outputs:
dev:
type: extrica
method: jwt
username: [username for jwt auth]
password: [password for jwt auth]
host: [extrica hostname]
port: [port number]
schema: [dev_schema]
catalog: [catalog_name]
threads: [1 or more]

prod:
type: extrica
method: jwt
username: [username for jwt auth]
password: [password for jwt auth]
host: [extrica hostname]
port: [port number]
schema: [dev_schema]
catalog: [catalog_name]
threads: [1 or more]
target: dev

```
</File>

#### Description of Extrica Profile Fields

| Parameter | Type | Description |
|------------|----------|------------------------------------------|
| type | string | Specifies the type of dbt adapter (Extrica). |
| method | jwt | Authentication method for JWT authentication. |
| username | string | Username for JWT authentication. The obtained JWT token is used to initialize a trino.auth.JWTAuthentication object. |
| password | string | Password for JWT authentication. The obtained JWT token is used to initialize a trino.auth.JWTAuthentication object. |
| host | string | The host parameter specifies the hostname or IP address of the Extrica's Trino server. |
| port | integer | The port parameter specifies the port number on which the Extrica's Trino server is listening. |
| schema | string | Schema or database name for the connection. |
| catalog | string | Name of the catalog representing the data source. |
| threads | integer | Number of threads for parallel execution of queries. (1 or more) |
1 change: 1 addition & 0 deletions website/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ const sidebarSettings = {
"docs/core/connect-data-platform/decodable-setup",
"docs/core/connect-data-platform/upsolver-setup",
"docs/core/connect-data-platform/starrocks-setup",
"docs/core/connect-data-platform/extrica-setup",
],
},
],
Expand Down

0 comments on commit e690246

Please sign in to comment.