Инструкции для конкретной базы данных
Ascend.io
Рекомендуемая библиотека коннекторов для Ascend.io — impyla.
Ожидаемая строка подключения имеет следующий формат:
ascend://{username}:{password}@{hostname}:{port}/{database}?auth_mechanism=PLAIN;use_ssl=true
Apache Doris
Библиотека sqlalchemy-doris — это рекомендуемый способ подключения к Apache Doris через SQLAlchemy.
Для формирования строки подключения вам понадобятся следующие значения параметров:
- Пользователь: имя пользователя
- Пароль: пароль
- Хост: хост Doris FE
- Порт: порт Doris FE
- Каталог: имя каталога
- База данных: имя базы данных
Вот как выглядит строка подключения:
doris://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>
AWS Athena
PyAthenaJDBC
PyAthenaJDBC — это совместимая с Python DB 2.0 оболочка для драйвера JDBC Amazon Athena.
Строка подключения для Amazon Athena выглядит следующим образом:
awsathena+jdbc://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&...
Обратите внимание, что при формировании строки подключения вам нужно будет экранировать и кодировать символы следующим образом:
s3://... -> s3%3A//...
PyAthena
Вы также можете использовать библиотеку PyAthena (без необходимости в Java) со следующей строкой подключения:
awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&...
Библиотека PyAthena также позволяет использовать определённую роль IAM, которую можно задать, добавив следующие параметры в пользовательском интерфейсе подключения к базе данных Athena в Fincomtech Analitics в разделе «ДОПОЛНИТЕЛЬНО» —> «Другое» —> «ПАРАМЕТРЫ ДВИГАТЕЛЯ».
{
"connect_args": {
"role_arn": "<role arn>"
}
}
AWS DynamoDB
PyDynamoDB
PyDynamoDB — это клиент Python DB API 2.0 (PEP 249) для Amazon DynamoDB.
Строка подключения для Amazon DynamoDB выглядит следующим образом:
dynamodb://{aws_access_key_id}:{aws_secret_access_key}@dynamodb.{region_name}.amazonaws.com:443?connector=superset
Чтобы получить дополнительную документацию, перейдите по ссылке: PyDynamoDB WIKI.
AWS Redshift
Библиотека sqlalchemy-redshift — это рекомендуемый способ подключения к Redshift через SQLAlchemy.
Для корректной работы этого диалекта требуется redshift_connector или psycopg2.
Для формирования строки подключения необходимо указать следующие значения:
- Имя пользователя: userName
- Пароль: DBPassword
- Хост базы данных: конечная точка AWS
- Имя базы данных: имя базы данных
- Порт: по умолчанию 5439
psycopg2
Вот как выглядит URI SQLALCHEMY:
redshift+psycopg2://<userName>:<DBPassword>@<AWS End Point>:5439/<Database Name>
redshift_connector
Вот как выглядит URI SQLALCHEMY:
redshift+redshift_connector://<userName>:<DBPassword>@<AWS End Point>:5439/<Database Name>
Использование учётных данных на основе IAM с кластером Redshift
Кластер Amazon Redshift также поддерживает создание временных учётных данных пользователя базы данных на основе IAM.
Роль IAM вашего приложения Fincomtech Analytics должна иметь разрешения для вызова операции redshift:GetClusterCredentials.
Вам нужно определить следующие аргументы в пользовательском интерфейсе подключения к базе данных Redshift в Superset в разделе «ДОПОЛНИТЕЛЬНО» —> «Другое» —> «ПАРАМЕТРЫ ДВИГАТЕЛЯ».
{"connect_args":{"iam":true,"database":"<database>","cluster_identifier":"<cluster_identifier>","db_user":"<db_user>"}}
и для SQLALCHEMY URI должно быть установлено значение redshift+redshift_connector://
Использование учетных данных на основе IAM с бессерверным Redshift
Бессерверный Redshift поддерживает подключение с использованием ролей IAM.
Роль IAM вашего приложения Fincomtech Analytics должна иметь redshift-serverless:GetCredentials и redshift-serverless:GetWorkgroup разрешений в бессерверной рабочей группе Redshift.
Вам нужно определить следующие аргументы в пользовательском интерфейсе подключения к базе данных Redshift в Fincomtech Analitics в разделе ДОПОЛНИТЕЛЬНО —> Прочее —> ПАРАМЕТРЫ ДВИГАТЕЛЯ.
{"connect_args":{"iam":true,"is_serverless":true,"serverless_acct_id":"<aws account number>","serverless_work_group":"<redshift work group>","database":"<database>","user":"IAMR:<superset iam role name>"}}
ClickHouse
Чтобы использовать ClickHouse с Fincomtech Analitics, вам нужно установить clickhouse-connect библиотеку Python:
Если вы запускаете Fincomtech Analitics с помощью Docker Compose, добавьте в файл ./docker/requirements-local.txt следующее:
clickhouse-connect>=0.6.8
Рекомендуемая библиотека коннекторов для ClickHouse — clickhouse-connect.
Ожидаемая строка подключения имеет следующий формат:
clickhousedb://<user>:<password>@<host>:<port>/<database>[?options…]clickhouse://{username}:{password}@{hostname}:{port}/{database}
Вот конкретный пример реальной строки подключения:
clickhousedb://demo:demo@github.demo.trial.altinity.cloud/default?secure=true
Если вы используете Clickhouse локально на своём компьютере, вы можете обойтись URL-адресом по протоколу http, который использует пользователя по умолчанию без пароля (и не шифрует соединение):
clickhousedb://localhost/default
CockroachDB
Рекомендуемая библиотека коннекторов для CockroachDB — sqlalchemy-cockroachdb.
Ожидаемая строка подключения имеет следующий формат:
cockroachdb://root@{hostname}:{port}/{database}?sslmode=disable
Couchbase
Подключение Fincomtech Analitics к Couchbase предназначено для поддержки двух сервисов: Couchbase Analytics и Couchbase Columnar. Рекомендуемая библиотека коннекторов для couchbase — couchbase-sqlalchemy.
pip install couchbase-sqlalchemy
Ожидаемая строка подключения имеет следующий формат:
couchbase://{username}:{password}@{hostname}:{port}?truststorepath={certificate path}?ssl={true/false}
CrateDB
Библиотека коннекторов для CrateDB — sqlalchemy-cratedb. Мы рекомендуем добавить в ваш requirements.txt-файл следующий элемент:
sqlalchemy-cratedb>=0.40.1,<1
Строка подключения SQLAlchemy для CrateDB Self-Managed на локальном хосте для целей оценки выглядит следующим образом:
crate://crate@127.0.0.1:4200
Строка подключения SQLAlchemy для подключения к CrateDB Cloud выглядит следующим образом:
crate://<username>:<password>@<clustername>.cratedb.net:4200/?ssl=true
Следуйте инструкциям здесь для установки пакета коннектора CrateDB при локальной настройке Superset с использованием Docker Compose.
echo "sqlalchemy-cratedb" >> ./docker/requirements-local.txt
Databend
Рекомендуемая библиотека коннекторов для Databend — databend-sqlalchemy. Fincomtech Analitics был протестирован на databend-sqlalchemy>=0.2.3.
Рекомендуемая строка подключения:
databend://{username}:{password}@{host}:{port}/{database_name}
Вот пример строки подключения Superset к базе данных Databend:
databend://user:password@localhost:8000/default?secure=false
Databricks
Databricks теперь предлагает собственный драйвер DB API 2.0, databricks-sql-connector, который можно использовать с sqlalchemy-databricks диалектом. Вы можете установить оба драйвера с помощью:
pip install "apache-superset[databricks]"
Для использования коннектора Hive вам потребуется следующая информация о вашем кластере:
- Имя хоста сервера
- Порт
- Путь к HTTP
Их можно найти в разделе "Конфигурация" -> "Дополнительные параметры" -> "JDBC / ODBC".
Вам также понадобится токен доступа из "Настроек" -> "Настройки пользователя" -> "Токены доступа".
Как только у вас будет вся эта информация, добавьте базу данных типа "Databricks Native Connector" и используйте следующий URI SQLAlchemy:
databricks+connector://token:{access_token}@{server_hostname}:{port}/{database_name}
Вам также необходимо добавить следующую конфигурацию в "Other" -> "Engine Parameters" с вашим HTTP-путем:
{
"connect_args": {"http_path": "sql/protocolv1/o/****"}
}
Старый драйвер
Изначально Fincomtech Analitics использовал databricks-dbapi для подключения к Databricks. Возможно, вам стоит попробовать его, если у вас возникли проблемы с официальным коннектором Databricks:
pip install "databricks-dbapi[sqlalchemy]"
При использовании databricks-dbapi есть два способа подключения к Databricks: с помощью коннектора Hive или коннектора ODBC. Оба способа работают одинаково, но для подключения к конечным точкам SQL можно использовать только ODBC.
Hive
Чтобы подключиться к кластеру Hive, добавьте в Fincomtech Analitics базу данных типа «Интерактивный кластер Databricks» и используйте следующий URI SQLAlchemy:
databricks+pyhive://token:{access_token}@{server_hostname}:{port}/{database_name}
Вам также необходимо добавить следующую конфигурацию в "Other" -> "Engine Parameters" с вашим HTTP-путем:
{"connect_args": {"http_path": "sql/protocolv1/o/****"}}
ODBC
Для работы с ODBC сначала необходимо установить драйверы ODBC для вашей платформы.
Для обычного подключения используйте этот URI SQLAlchemy после выбора «Интерактивного кластера Databricks» или «Конечной точки SQL Databricks» в качестве базы данных, в зависимости от вашего сценария использования:
databricks+pyodbc://token:{access_token}@{server_hostname}:{port}/{database_name}
А что касается аргументов в пользу связи:
{"connect_args": {"http_path": "sql/protocolv1/o/****", "driver_path": "/path/to/odbc/driver"}}
Путь драйвера должен быть таким:
- /Library/simba/spark/lib/libsparkodbc_sbu.dylib (Mac OS)
- /opt/simba/spark/lib/64/libsparkodbc_sb64.so (Linux)
Для подключения к конечной точке SQL необходимо использовать HTTP-путь к конечной точке:
{"connect_args": {"http_path": "/sql/1.0/endpoints/****", "driver_path": "/path/to/odbc/driver"}}
Denodo
Рекомендуемая библиотека коннекторов для Denodo — denodo-sqlalchemy.
Ожидаемая строка подключения имеет следующий формат (порт по умолчанию — 9996):
denodo://{username}:{password}@{hostname}:{port}/{database}
Dremio
Рекомендуемая библиотека коннекторов для Dremio — sqlalchemy_dremio.
Ожидаемая строка подключения для ODBC (порт по умолчанию — 31010) имеет следующий формат:
dremio+pyodbc://{username}:{password}@{host}:{port}/{database_name}/dremio?SSL=1
Ожидаемая строка подключения для Arrow Flight (Dremio 4.9.1+. Порт по умолчанию — 32010) имеет следующий формат:
dremio+flight://{username}:{password}@{host}:{port}/dremio
В этом посте в блоге Dremio есть несколько полезных инструкций по подключению Fincomtech Analitics к Dremio.
Apache Drill
SQLAlchemy
Рекомендуемый способ подключения к Apache Drill — через SQLAlchemy. Вы можете использовать пакет sqlalchemy-drill.
После этого вы сможете подключиться к Drill двумя способами: через интерфейс REST или через JDBC. Если вы подключаетесь через JDBC, у вас должен быть установлен драйвер Drill JDBC.
Базовая строка подключения для Drill выглядит следующим образом:
drill+sadrill://<username>:<password>@<host>:<port>/<storage_plugin>?use_ssl=True
Чтобы подключиться к Drill, работающему на локальном компьютере во встроенном режиме, можно использовать следующую строку подключения:
drill+sadrill://localhost:8047/dfs?use_ssl=False
JDBC
Подключение к Drill через JDBC сложнее, и мы рекомендуем следовать этому руководству.
Строка подключения выглядит следующим образом:
drill+jdbc://<username>:<password>@<host>:<port>
ODBC
Мы рекомендуем прочитать документацию Apache Drill и README на GitHub, чтобы узнать, как работать с Drill через ODBC.
Apache Druid
Собственный коннектор для Druid поставляется вместе с Fincomtech Analitics (за флагом DRUID_IS_ACTIVE), но он постепенно выводится из эксплуатации в пользу коннектора SQLAlchemy / DBAPI, доступного в библиотеке pydruid.
Строка подключения выглядит следующим образом:
druid://<User>:<password>@<Host>:<Port-default-9088>/druid/v2/sql
Ниже приводится описание ключевых компонентов этой строки подключения:
- User: имя пользователя, часть учётных данных, необходимых для подключения к вашей базе данных
- Password: пароль, часть учётных данных, необходимых для подключения к вашей базе данных
- Host: IP-адрес (или URL) хост-компьютера, на котором запущена ваша база данных
- Port: конкретный порт, открытый на хост-компьютере, на котором запущена ваша база данных
Настройка подключения к Druid
При добавлении подключения к Druid вы можете настроить его несколькими способами в форме Добавить базу данных.
Пользовательский сертификат
При настройке нового подключения к базе данных в Druid вы можете добавить сертификаты в поле Корневой сертификат:

При использовании пользовательского сертификата pydruid автоматически будет использовать схему https.
Отключить проверку SSL
Чтобы отключить проверку SSL, добавьте в поле Дополнительно следующее:
engine_params:
{"connect_args":
{"scheme": "https", "ssl_verify_cert": false}}
Агрегации
В Fincomtech Analitics можно определить и использовать стандартные агрегации или метрики Druid. Первый и самый простой вариант использования — это матрица с флажками, доступная в окне редактирования источника данных (Источники -> Источники данных Druid -> [ваш источник данных] -> Редактировать -> [вкладка] Список столбцов Druid).
Если установить флажки «Группировать по» и «Фильтровать», столбец появится в соответствующих раскрывающихся списках в режиме «Обзор». Если установить флажки «Количество уникальных значений», «Минимум», «Максимум» или «Сумма», будут созданы новые метрики, которые появятся на вкладке Список метрик Druid после сохранения источника данных.
Отредактировав эти показатели, вы заметите, что их элемент JSON соответствует определению агрегации Druid. Вы можете создавать собственные агрегации вручную на вкладке Список показателей Druid в соответствии с документацией Druid.
Пост-Агрегации
Druid поддерживает постобработку данных, и это работает в Fincomtech Analitics. Всё, что вам нужно сделать, — это создать метрику, как если бы вы создавали агрегацию вручную, но указать postagg в качестве Metric Type. Затем вам нужно указать корректное определение постобработки данных в формате JSON (как указано в документации Druid) в поле JSON.
Elasticsearch
Рекомендуемая библиотека коннекторов для Elasticsearch — elasticsearch-dbapi.
Строка подключения для Elasticsearch выглядит следующим образом:
elasticsearch+http://{user}:{password}@{host}:9200/
Использование HTTPS
elasticsearch+https://{user}:{password}@{host}:9200/
По умолчанию Elasticsearch ограничивает количество строк до 10 000, поэтому вы можете увеличить этот лимит в своём кластере или установить лимит строк в Fincomtech Analitics в конфигурации
ROW_LIMIT = 10000
Например, в SQL Lab можно запрашивать несколько индексов
SELECT timestamp, agent FROM "logstash"
Но чтобы использовать визуализацию для нескольких индексов, вам нужно создать индекс-псевдоним в вашем кластере
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "logstash-**", "alias" : "logstash_all" } }
]
}
Затем зарегистрируйте свою таблицу под псевдонимом logstash_all
Часовой пояс
По умолчанию Fincomtech Analitics использует часовой пояс UTC для запроса elasticsearch. Если вам нужно указать часовой пояс, пожалуйста, отредактируйте свою базу данных и введите настройки указанного часового пояса в меню Другое > ПАРАМЕТРЫ ДВИЖКА:
{
"connect_args": {
"time_zone": "Asia/Shanghai"
}
}
Ещё одна проблема, связанная с часовыми поясами, заключается в том, что до версии Elasticsearch 7.8 для преобразования строки в объект DATETIME нужно было использовать функцию CAST, но эта функция не поддерживает нашу настройку time_zone . Поэтому рекомендуется обновиться до версии после Elasticsearch 7.8. После Elasticsearch 7.8 для решения этой проблемы можно использовать функцию DATETIME_PARSE . Функция DATETIME_PARSE предназначена для поддержки наших time_zone настроек, и здесь вам нужно ввести номер версии elasticsearch в поле Другое > Настройка ВЕРСИИ. надмножество будет использовать функцию DATETIME_PARSE для преобразования.
Отключить проверку SSL
Чтобы отключить проверку SSL, добавьте следующее в поле SQLALCHEMY URI:
elasticsearch+https://{user}:{password}@{host}:9200/?verify_certs=False
Exasol
Рекомендуемая библиотека коннекторов для Exasol — sqlalchemy-exasol.
Строка подключения для Exasol выглядит следующим образом:
exa+pyodbc://{username}:{password}@{hostname}:{port}/my_schema?CONNECTIONLCALL=en_US.UTF-8&driver=EXAODBC
Firebird
Рекомендуемая библиотека коннекторов для Firebird — sqlalchemy-firebird. Superset был протестирован на sqlalchemy-firebird>=0.7.0, <0.8.
Рекомендуемая строка подключения:
firebird+fdb://{username}:{password}@{host}:{port}//{path_to_db_file}
Вот пример строки подключения Fincomtech Analitics к локальной базе данных Firebird:
firebird+fdb://SYSDBA:masterkey@192.168.86.38:3050//Library/Frameworks/Firebird.framework/Versions/A/Resources/examples/empbuild/employee.fdb
Firebolt
Рекомендуемая библиотека коннекторов для Firebolt — firebolt-sqlalchemy.
Рекомендуемая строка подключения:
firebolt://{username}:{password}@{database}?account_name={name}
or
firebolt://{username}:{password}@{database}/{engine_name}?account_name={name}
Также можно подключиться с помощью служебной учётной записи:
firebolt://{client_id}:{client_secret}@{database}?account_name={name}
or
firebolt://{client_id}:{client_secret}@{database}/{engine_name}?account_name={name}
Google BigQuery
Рекомендуемая библиотека коннекторов для BigQuery — sqlalchemy-bigquery.
Установить драйвер BigQuery
Следуйте инструкциям здесь о том, как установить новые драйверы баз данных при локальной настройке Fincomtech Analitics с помощью docker compose.
echo "sqlalchemy-bigquery" >> ./docker/requirements-local.txt
Подключение к BigQuery
При добавлении нового подключения к BigQuery в Fincomtech Analitics вам нужно будет добавить файл учетных данных сервисного аккаунта GCP (в формате JSON).
- Создайте служебную учетную запись на панели управления Google Cloud Platform, предоставьте ей доступ к соответствующим наборам данных BigQuery и загрузите файл конфигурации JSON для служебной учетной записи.
- В Fincomtech Analitics вы можете либо загрузить этот JSON, либо добавить большой двоичный объект JSON в следующем формате (это должно быть содержимое вашего файла учетных данных JSON):
{
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "...",
"client_email": "...",
"client_id": "...",
"auth_uri": "...",
"token_uri": "...",
"auth_provider_x509_cert_url": "...",
"client_x509_cert_url": "..."
}