Перейти к основному содержимому

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 подключается к источникам данных через каталоги:

КаталогТип
trisigmaIceberg
trisigma_hiveHive
trisigma_clickhouseClickHouse (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
warning
Не используйте registry.trisigma.io напрямую

Образы необходимо предварительно зеркалировать в ваш собственный Container Registry.

PostgreSQL
ПараметрОписание
postgresql.hostХостнейм для подключения к PostgreSQL
postgresql.portПорт для подключения к PostgreSQL
postgresql.databaseНазвание БД, к которой подключается сервис
postgresql.userУчетная запись для подключения к PostgreSQL
S3
ПараметрОписание
conf.hiveSite.fs.s3a.endpointEndpoint 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.

СекретКлючОписание
PGPASSWORDpostgresql.passwordПароль для подключения к PostgreSQL
S3_ANALYTIC_UPLOADS_ACCESS_KEYs3.accessKeyS3 access key для доступа к бакету trisigma-analytic-uploads
S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEYs3.secretAccessKeyS3 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Тег образа
warning
Не используйте registry.trisigma.io напрямую

Образы необходимо предварительно зеркалировать в ваш собственный Container Registry.

Каталоги
ПараметрОписание
s3BucketNameИмя бакета аналитических данных (trisigma-analytic-uploads)
catalogs.hiveMetastore.hostХостнейм для подключения к Hive Metastore
catalogs.s3.endpointEndpoint 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_SECRETsharedSecret.valueВнутренняя аутентификация coordinator-worker (генерируемый токен)
S3_ANALYTIC_UPLOADS_ACCESS_KEYs3.accessKeyS3 access key для доступа к бакету trisigma-analytic-uploads
S3_ANALYTIC_UPLOADS_SECRET_ACCESS_KEYs3.secretAccessKeyS3 secret key для доступа к бакету trisigma-analytic-uploads
TRISIGMA_CH_USERclickhouse.userЛогин ClickHouse
TRISIGMA_CH_PASSWORDclickhouse.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