🚧 dbt-mindsdb 🚧
The dbt-mindsdb package allows dbt to connect to MindsDB.
Installation
Atm, can only be installed from source:
git clone git@github.com:mindsdb/dbt-mindsdb.git
python setup.py develop
There is an dependency issue with latest dbt-core, so make sure to run:
pip install markupsafe==2.0.1
Configurations
Basic profile.yml for connecting to MindsDB:
mindsdb:
outputs:
dev:
database: 'mindsdb'
host: '127.0.0.1'
password: ''
port: 47335
schema: 'mindsdb'
type: mindsdb
username: 'mindsdb'
target: dev
| Key | Required | Description | Example |
|---|---|---|---|
| type | ✔️ | The specific adapter to use | mindsdb |
| host | ✔️ | The MindsDB (hostname) to connect to | cloud.mindsdb.com |
| port | ✔️ | The port to use | 3306 or 47335 |
| schema | ✔️ | Specify the schema (database) to build models into | The MindsDB datasource |
| username | ✔️ | The username to use to connect to the server | mindsdb or mindsdb cloud user |
| password | ✔️ | The password to use for authenticating to the server | `pass |
Usage
- Create dbt project, choose mindsdb database and set up connection
dbt init <project_name>
- To create predictor add dbt model with "predictor" materialization:
Name of the model is used as name of predictor.
Parameters:
- integration - name of used integration to get data from and save result to. In has to be created in mindsdb beforehand
- predict - field for prediction
- predict_alias [optional] - alias for predicted field
- using [optional] - options for configure trained model
{{
config(
materialized='predictor',
integration='photorep',
predict='name',
predict_alias='name',
using={
'encoders.location.module': 'CategoricalAutoEncoder',
'encoders.rental_price.module': 'NumericEncoder'
}
)
}}
select * from stores
- To apply predictor add dbt model with "table" materialization.
It creates or replaces table in selected integration with results of predictor.
Name of the model is used as name of the table to store prediction results.
If you need to specify schema you can do it with dot separator: schema_name.table_name.sql
Parameters:- predictor_name - name of using predictor. It has to be created in mindsdb
- integration - name of used integration to get data from and save result to. In has to be created in mindsdb beforehand
{{ config(materialized='table', predictor_name='TEST_PREDICTOR_NAME', integration='int1') }}
select a, bc from ddd where name > latest
Testing
- Install dev requirements
pip install -r dev_requirements.txt
- Run pytest
python -m pytest tests/
Metadata
Release files for dbt-mindsdb 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dbt-mindsdb-1.0.2.tar.gz | 5.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dbt_mindsdb-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.9 kB
Release files / dbt-mindsdb-1.0.2.tar.gz
| Download URL | dbt-mindsdb-1.0.2.tar.gz |
|---|---|
| Size | 5.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1687eacabab346c9f70366051036285a255a870df5fa5d8b6d24ab1d73c1cf79
|
|
BLAKE2b-256 checksum How to use checksums |
e7d1ea3b5d6b20db204c7ae331a2a25f2ab5ed8b8303dfeff3b95d7f72ace04a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.7.3
|
Release files / dbt_mindsdb-1.0.2-py3-none-any.whl
| Download URL | dbt_mindsdb-1.0.2-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb4264410abbc357710b34cf049c9576d6f5640f43c8449c322335a44337c46a
|
|
BLAKE2b-256 checksum How to use checksums |
6ba90ffa00532cc31a6b67241f19d4dadc5de911d6d2e0150af4160c4cc912ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.7.3
|