Trino и Hive Metastore
Trino — распределённый SQL-движок для аналитики. Hive Metastore — каталог метаданных для Iceberg/Hive таблиц. Оба устанавливаются в один namespace.
Назначение
Trino — SQL-движок а налитики платформы. Считает результаты A/B-экспериментов из данных в Iceberg/S3 и ClickHouse, выполняет ETL-загрузки в ClickHouse.
Hive Metastore хранит метаданные Iceberg/Hive-таблиц (схемы, партиции, расположение в S3) и предоставляет их Trino через Thrift-протокол.
Каталоги
Trino подключается к источникам данных через каталоги:
| Каталог | Тип |
|---|---|
trisigma | Iceberg |
trisigma_hive | Hive |
trisigma_clickhouse | ClickHouse (JDBC) |
Деплой
Для установки каждого чарта необходимо заполнить файл с параметрами values-trisigma.yaml.
values.yaml содержит значения по умолчанию — не изменяйте его напрямую, а переопределяйте нужные параметры в отдельных файлах.
Hive Metastore
Параметры приложения · Hive Metastore
Хранятся в values-trisigma.yaml. Создайте файл из примера: cp values-trisigma.yaml.example values-trisigma.yaml.
Образ сервиса
| Параметр | Описание |
|---|---|
image.repository | Образ сервиса в Container registry |
image.tag | Тег образа сервиса в Container registry |
registry.trisigma.io напрямуюОбразы необходимо предварительно зеркалировать в ваш собственный Container Registry.
PostgreSQL
| Параметр | Описание |
|---|---|
postgresql.host | Хостнейм для подключения к PostgreSQL |
postgresql.port | Порт для подключения к PostgreSQL |
postgresql.database | Название БД, к которой подключается сервис |
postgresql.user | Учетная запись для подключения к PostgreSQL |
S3
| Параметр | Описание |
|---|---|
conf.hiveSite.fs.s3a.endpoint | Endpoint S3 для подключения |
conf.hiveSite.fs.s3a.region | Регион S3 |
Секреты · Hive Metastore
Секреты в приложение можно передать двумя способами:
задать значения напрямую в secrets-values.yaml —
или указать имя существующего Kubernetes Secret в поле existingSecret в чарте
(например, созданного через Vault или External Secrets Operator).
Создайте файл из примера: cp secrets-values.yaml.example secrets-values.yaml.
| Секрет | Ключ | Описание |
|---|---|---|
PGPASSWORD | postgresql.password | Пароль для подключения к PostgreSQL |
S3_ANALYTIC_UPLOADS_ACCESS_KEY | s3.accessKey | S3 access key для доступа к бакету trisigma-analytic-uploads |
S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEY | s3.secretAccessKey | S3 secret key для доступа к бакету trisigma-analytic-uploads |
Использование существующего Secret (existingSecret)
Если вы не хотите передавать значения через secrets-values.yaml — укажите название вашего собственного Secret:
kubectl create namespace trisigma-trino
kubectl create secret generic trisigma-hive-metastore-secrets \
--from-literal=PGPASSWORD='...' \
--from-literal=S3_ANALYTIC_UPLOADS_ACCESS_KEY='...' \
--from-literal=S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEY='...' \
-n trisigma-trino
postgresql:
existingSecret: trisigma-hive-metastore-secrets
secretKeys:
passwordKey: PGPASSWORD
s3:
existingSecret: trisigma-hive-metastore-secrets
secretKeys:
accessKeyKey: S3_ANALYTIC_UPLOADS_ACCESS_KEY
secretAccessKeyKey: S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEY
Если имя ключа в Secret отличается — например, pg_password вместо PGPASSWORD —
укажите соответствие через secretKeys:
postgresql:
existingSecret: trisigma-hive-metastore-secrets
secretKeys:
passwordKey: pg_password
Использовать одновременно secrets-values.yaml и existingSecret в одном блоке не получится, способы несовместимы друг с другом.
Helm Install · Hive Metastore
cd trisigma-hive-metastore
helm upgrade --install trisigma-hive-metastore . \
--namespace trisigma-trino --create-namespace \
-f values-trisigma.yaml \
-f secrets-values.yaml # уберите, если все секреты через existingSecret
Trino
Параметры приложения · Trino
Хранятся в values-trisigma.yaml. Создайте файл из примера: cp values-trisigma.yaml.example values-trisigma.yaml.
Образ сервиса
| Параметр | Описание |
|---|---|
image.repository | Образ Trino в Container registry |
image.tag | Тег образа |
registry.trisigma.io напрямуюОбразы необходимо предварительно зеркалировать в ваш собственный Container Registry.
Каталоги
| Параметр | Описание |
|---|---|
s3BucketName | Имя бакета анал итических данных (trisigma-analytic-uploads) |
catalogs.hiveMetastore.host | Хостнейм для подключения к Hive Metastore |
catalogs.s3.endpoint | Endpoint S3 для подключения |
catalogs.s3.region | Регион S3 |
catalogs.clickhouse.host | Хостнейм для подключения к ClickHouse |
Секреты · Trino
Секреты в приложение можно передать двумя способами:
задать значения напрямую в secrets-values.yaml —
или указать имя существующего Kubernetes Secret в поле existingSecret в чарте
(например, созданного через Vault или External Secrets Operator).
Создайте файл из примера: cp secrets-values.yaml.example secrets-values.yaml.
| Секрет | Ключ | Описание |
|---|---|---|
SHARED_SECRET | sharedSecret.value | Внутренняя аутентификация coordinator-worker (генерируемый токен) |
S3_ANALYTIC_UPLOADS_ACCESS_KEY | s3.accessKey | S3 access key для доступа к бакету trisigma-analytic-uploads |
S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEY | s3.secretAccessKey | S3 secret key для доступа к бакету trisigma-analytic-uploads |
TRISIGMA_CH_USER | clickhouse.user | Логин ClickHouse |
TRISIGMA_CH_PASSWORD | clickhouse.password | Пароль ClickHouse |
Использование существующего Secret · Trino (existingSecret)
Если вы не хотите передавать значения через secrets-values.yaml — укажите название вашего собственного Secret для каждого домена:
kubectl create namespace trisigma-trino
kubectl create secret generic trisigma-trino-secrets \
--from-literal=SHARED_SECRET='...' \
--from-literal=S3_ANALYTIC_UPLOADS_ACCESS_KEY='...' \
--from-literal=S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEY='...' \
--from-literal=TRISIGMA_CH_USER='...' \
--from-literal=TRISIGMA_CH_PASSWORD='...' \
-n trisigma-trino
sharedSecret:
existingSecret: trisigma-trino-secrets
secretKeys:
valueKey: SHARED_SECRET
s3:
existingSecret: trisigma-trino-secrets
secretKeys:
accessKeyKey: S3_ANALYTIC_UPLOADS_ACCESS_KEY
secretAccessKeyKey: S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEY
clickhouse:
existingSecret: trisigma-trino-secrets
secretKeys:
userKey: TRISIGMA_CH_USER
passwordKey: TRISIGMA_CH_PASSWORD
Если имя ключа в Secret отличается — например, ch_password вместо TRISIGMA_CH_PASSWORD —
укажите соответствие через secretKeys:
clickhouse:
existingSecret: trisigma-trino-secrets
secretKeys:
passwordKey: ch_password
Использовать одновременно secrets-values.yaml и existingSecret в одном блоке не получится, способы несовместимы друг с другом.
Helm Install · Trino
cd trisigma-trino
helm upgrade --install trisigma-trino . \
--namespace trisigma-trino --create-namespace \
-f values-trisigma.yaml \
-f secrets-values.yaml # уберите, если все секреты через existingSecret