Skip to content

Commit

Permalink
docs: dockerized trino setup (#208)
Browse files Browse the repository at this point in the history
  • Loading branch information
ninaiad authored Nov 5, 2024
1 parent 2240dd6 commit cfff76e
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
2 changes: 2 additions & 0 deletions docs/contribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@

### Первые шаги

Если использование нового внешнего источника данных поддержано в аналогичной федеративной базе данных Trino, вы можете изучить его работу, запустив Trino и источник [локально](./dockerized_trino_setup.md).

Работу по добавлению нового источника можно начать с создания в папке [rdbms](https://github.com/ydb-platform/fq-connector-go/tree/main/app/server/datasource/rdbms) подпапки для нового источника данных. Нейминг должен соответствовать [enum](https://github.com/ydb-platform/ydb/blob/main/ydb/library/yql/providers/generic/connector/api/common/data_source.proto#L29-L37) из YDB API. В этой папке можно реализовать перечисленные выше интерфейсы в самом примитивном виде (на заглушках), и заполнить ими структуру `Preset`.

Сразу после этого новый источник данных надо подключить [в фабрике](https://github.com/ydb-platform/fq-connector-go/blob/main/app/server/datasource/rdbms/data_source_factory.go#L27-L40) источников. После этого вы сможете делать обращения к коннектору через тестовый клиент `fq-connector-go client`.
Expand Down
62 changes: 62 additions & 0 deletions docs/dockerized_trino_setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
### Docker Compose setup for Trino (x MongoDB)

Пример настройки Trino локально с использованием MongoDB в качестве источника данных.

#### 0. Prep

```sh
docker pull trinodb/trino
docker pull mongo
```

- https://trino.io/docs/current/installation/containers.html
- https://hub.docker.com/r/trinodb/trino

#### 1. Trino configuration

- [Configuring Trino](https://trino.io/docs/current/installation/deployment.html#configuring-trino)
- [Community tutorials | github](https://github.com/bitsondatadev/trino-getting-started/tree/main/community-tutorials)

minimal setup:
```
.
├── docker-compose.yaml
├── etc # trino configuration volume
│ └── catalog
│ └── mongo.properties # ext data source connection config
│ └── jvm.config
│ └── node.properties
│ └── config.properties
│ └── log.properties
└── mongodb # ext data source data volume
```

#### 2. Run & populate external data source

```
docker compose up -d
# find out container name with 'docker ps'
docker exec -it trino-mongo-mongodb-1 mongosh
mongosh > db.createCollection("orders");
mongosh > ...
```

#### 3. Query external data source from Trino

- [Trino CLI](https://docs.starburst.io/clients/cli.html#cli)

```
docker exec -it trino-mongo-trino-1 trino
trino > show catalogs;
mongo
trino > show schemas from mongo;
test
trino > show tables from mongo.test;
orders
trino > show columns from mongo.test.orders;
...
trino > select * from mongo.test.orders;
...
```

0 comments on commit cfff76e

Please sign in to comment.