Конектор джерела для Databricks¶
У цьому посібнику описано, як налаштувати digna для підключення до Databricks через ODBC за допомогою рядка підключення без DSN.
Налаштування на боці digna однакове для всіх технологій — де створюються підключення, як шифруються значення властивостей, як тестується підключення та що означають режими профілювання. Це описано в розділі Огляд підключень до баз даних. Ця сторінка охоплює те, що специфічне для Databricks.
Потрібен Unity Catalog
digna зчитує доступні каталоги з system.information_schema.catalogs, тому в робочій області має бути ввімкнено Unity Catalog. Попередні випуски digna пропонували окрему технологію "Databricks Legacy" для робочих областей без Unity Catalog; вона більше недоступна.
1. Встановлення драйвера ODBC¶
Встановіть Databricks ODBC Driver на машині, де працює бекенд digna, відповідно до посібника зі встановлення Databricks.
Залежно від версії драйвер реєструється як Simba Spark ODBC Driver або як Databricks ODBC Driver. Прочитайте точну зареєстровану назву на своєму хості, як описано в розділі Встановлення драйвера ODBC на хості digna.
2. Збирання параметрів підключення¶
Усі значення беруться зі сховища SQL (SQL warehouse) або кластера, яке має використовувати digna. Відкрийте його в робочій області Databricks і перейдіть до Connection details:
| Поле Databricks | Використовується як |
|---|---|
| Server hostname | Host |
| Port | Port, зазвичай 443 |
| HTTP path | HTTPPath |
Для автентифікації створіть персональний токен доступу — див. Databricks personal access token authentication. Токени належать користувачеві або принципалу служби (service principal), і цьому принципалу потрібні права USE CATALOG, USE SCHEMA і SELECT на дані джерела.
3. Властивості ODBC¶
Приклад, а не специфікація
Наведений нижче набір — одна комбінація, яка гарантовано працює. Властивості належать драйверу Databricks/Simba, тому їхні назви, значення за замовчуванням і допустимі значення відрізняються між версіями драйвера — драйвер неодноразово перейменовували й розширювали його параметри автентифікації — і між платформами. Використовуйте це як відправну точку та звіряйтеся з документацією встановленої версії драйвера.
Додайте такі властивості на екрані Add DB Connection:
| Ключ | Приклад значення | Примітки |
|---|---|---|
Driver | Simba Spark ODBC Driver | Має збігатися з назвою драйвера, зареєстрованою на хості digna |
Host | <workspace>.cloud.databricks.com | Ім'я хоста сервера сховища, наприклад adb-1234567890123456.12.azuredatabricks.net |
Port | 443 | |
HTTPPath | /sql/1.0/warehouses/<warehouse-id> | HTTP-шлях сховища або кластера |
SSL | 1 | Кінцеві точки Databricks працюють лише через TLS |
ThriftTransport | 2 | Транспорт HTTP, який використовують кінцеві точки SQL |
AuthMech | 3 | Автентифікація токеном |
UID | token | Буквально слово token, а не ім'я користувача |
PWD | dapi… | Персональний токен доступу. Позначте Encrypted |
UseNativeQuery | 1 | Передає SQL від digna без змін — див. нижче |
Отриманий рядок підключення виглядає так:
Driver=Simba Spark ODBC Driver;Host=<workspace>.cloud.databricks.com;Port=443;HTTPPath=/sql/1.0/warehouses/<warehouse-id>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=dapi…;UseNativeQuery=1
Залишайте UseNativeQuery=1
З UseNativeQuery=0 — значенням драйвера за замовчуванням — драйвер переписує вхідний SQL у те, що вважає переносимим синтаксисом ODBC. digna вже генерує Databricks SQL, тому таке переписування може змінити екранування зворотними апострофами та літерали дат, і тоді профілювання не вдається на інструкціях, які в початковому вигляді є коректними.
OAuth замість токена¶
Для принципала служби з автентифікацією OAuth між машинами (machine-to-machine) замініть AuthMech, UID і PWD на:
| Ключ | Приклад значення | Примітки |
|---|---|---|
AuthMech | 11 | OAuth |
Auth_Flow | 1 | Облікові дані клієнта |
Auth_Client_ID | <application id> | Принципал служби |
Auth_Client_Secret | <client secret> | Позначте Encrypted |
4. Налаштування digna¶
На екрані Add DB Connection вкажіть таке:
Name: Name of the connection. This is used for referencing the connection in other screens.
Technology: Databricks
Profiling Mode: Standard, Permanent or Session
Work Schema: Schema for the work tables of "Permanent" profiling, e.g. "digna_work"
5. Примітки щодо Databricks¶
- Сховище має працювати або мати змогу запуститися, коли digna підключається. Сховищу, яке відновлюється зі стану зупинки, може знадобитися більше часу, ніж тайм-аут підключення — якщо тест не вдається з першої спроби після періоду простою, повторіть його.
- Каталоги беруться з робочої області. На відміну від більшості технологій, одне підключення Databricks має доступ до кожного каталогу, який дозволено бачити принципалу, тому одне підключення може обслуговувати джерела з різних каталогів.
- Режими профілювання. Permanent створює робочі таблиці в Work Schema всередині каталогу джерела, тому принципалу потрібне там право
CREATE TABLE. Session використовуєCREATE TEMPORARY TABLEі не зачіпає Work Schema. Standard потребує лише доступу для читання. - Безсерверні сховища працюють так само; відрізняється лише
HTTPPath.
6. Перевірка драйвера (необов'язково)¶
Для підключення без DSN налаштовувати джерело даних ODBC не потрібно, але власний діалог драйвера — зручний спосіб переконатися, що драйвер, сховище й токен працюють, перш ніж вводити їх у digna.
Крок 1¶

Крок 2¶

Крок 3¶

Крок 4¶

Крок 5 – Тестування підключення¶
Натисніть кнопку TEST. Успішне підключення має виглядати так:

Хост, HTTP-шлях і токен, введені тут, — саме ті значення, які приймають властивості з розділу 3.