From cfff76e36a4454de3acef50080d31a417bba3bdd Mon Sep 17 00:00:00 2001 From: Nina <100221635+ninaiad@users.noreply.github.com> Date: Tue, 5 Nov 2024 11:06:24 +0300 Subject: [PATCH] docs: dockerized trino setup (#208) --- docs/contribution.md | 2 ++ docs/dockerized_trino_setup.md | 62 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 docs/dockerized_trino_setup.md diff --git a/docs/contribution.md b/docs/contribution.md index 081ee86b..1df34180 100644 --- a/docs/contribution.md +++ b/docs/contribution.md @@ -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`. diff --git a/docs/dockerized_trino_setup.md b/docs/dockerized_trino_setup.md new file mode 100644 index 00000000..67745149 --- /dev/null +++ b/docs/dockerized_trino_setup.md @@ -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; +... +```