Выполнение федеративных запросов в Teradata
Важный
Данная функция находится в публичной бета-версии.
В этой статье описывается, как настроить федерацию Lakehouse для выполнения федеративных запросов к данным Teradata, которые не управляются Azure Databricks. Дополнительные сведения о Федерации Lakehouse см. в статье Что такое Федерация Lakehouse?.
Чтобы подключиться к базе данных Teradata с помощью Федерации Lakehouse, необходимо создать следующее в хранилище метаданных каталога Azure Databricks Unity:
- Подключение к базе данных Teradata.
- внешний каталог, который отражает базу данных Teradata в каталоге Unity, чтобы использовать синтаксис запросов Unity и средства управления данными для управления доступом пользователей Azure Databricks к базе данных.
Перед началом работы
Прежде чем начать, убедитесь, что выполнены требования в этом разделе.
Требования к Databricks
Требования к рабочей области:
- Рабочая область активирована для Unity Catalog.
Требования к вычислениям:
- Сетевое подключение от вычислительного ресурса к целевым системам баз данных. См. рекомендации по сетевым вопросам дляФедерации Lakehouse.
- Вычислительные ресурсы Azure Databricks должны использовать Databricks Runtime 16.1 или более поздней версии и общих или режим доступа одного пользователя.
- Хранилища SQL должны быть профессиональными или бессерверными и должны использовать 2024.55 или более поздней версии.
Необходимые разрешения:
- Чтобы создать подключение, необходимо быть администратором хранилища метаданных или пользователем с правами
CREATE CONNECTION
в хранилище метаданных каталога Unity, подключенном к рабочей области. - Чтобы создать внешний каталог, необходимо иметь разрешение
CREATE CATALOG
на хранилище метаданных и быть владельцем подключения или иметьCREATE FOREIGN CATALOG
привилегию на подключение.
Дополнительные требования к разрешениям указываются в каждом следующем разделе, основанном на задачах.
Требования Teradata
- Протокол TLS включен на сервере узла. По умолчанию
SSLMODE
— этоREQUIRE
. Дополнительные сведения см. в разделе Как защитить подключения с помощью TLS в документации по Teradata.
создание подключения Azure Databricks
Подключение задает путь и учетные данные для доступа к внешней системе базы данных. Чтобы создать подключение, можно использовать обозреватель каталогов или команду CREATE CONNECTION
SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.
Заметка
Для создания подключения можно также использовать REST API Databricks или интерфейс командной строки Databricks. См. POST /api/2.1/unity-catalog/connections и команды каталога Unity .
необходимые разрешения : администратор хранилища метаданных или пользователь с правами CREATE CONNECTION
.
Обозреватель каталогов
В рабочей области Azure Databricks щелкните значок .
В верхней
части области каталогащелкните значок Добавить или плюс значок "Добавить " и выберитеДобавить подключения в меню.Кроме того, на странице быстрого доступа нажмите кнопку Внешние данные >, перейдите на вкладку Подключения и нажмите Создать подключение.
На странице основы подключения мастера настройки подключения введите понятное имя подключения.
Выберите тип подключения Teradata.
(Необязательно) Добавьте комментарий.
Нажмите кнопку Далее.
На странице проверки подлинности введите следующие свойства подключения для экземпляра Teradata.
-
узла: например,
teradata-demo.teradata.com
-
порт: например,
1025
-
User: например,
teradata_user
-
Пароль: например,
password123
-
узла: например,
Щелкните Создать подключение.
На странице Основы каталога введите имя внешнего каталога. Внешний каталог зеркально отражает базу данных во внешней системе данных, чтобы можно было запрашивать и управлять доступом к данным в этой базе данных с помощью Azure Databricks и каталога Unity.
(Необязательно) Щелкните Проверить подключение, чтобы убедиться, что оно работает.
Нажмите Создать каталог.
На странице Access выберите рабочие области, в которых пользователи могут получить доступ к созданному каталогу. Вы можете выбрать У всех рабочих областей есть доступили нажать Назначить рабочим областям, выбрать рабочие области, а затем нажать Назначить.
Смените владельца, который будет иметь возможность управления доступом ко всем объектам в каталоге. Начните вводить субъект в текстовом поле, а затем щелкните субъект в возвращенных результатах.
Предоставьте привилегии для в каталоге. Щелкните Предоставить:
- Укажите субъекты , у которых будет доступ к объектам в каталоге. Начните вводить субъект в текстовом поле, а затем щелкните субъект в возвращенных результатах.
- Выберите предустановки привилегий , чтобы предоставить их каждому участнику. Всем пользователям учетной записи по умолчанию предоставлено
BROWSE
.- Выберите средство чтения данных в раскрывающемся меню, чтобы предоставить
read
привилегии для объектов в каталоге. - Выберите редактор данных в раскрывающемся меню, чтобы предоставить
read
иmodify
привилегии для объектов в каталоге. - Вручную выберите привилегии для предоставления.
- Выберите средство чтения данных в раскрывающемся меню, чтобы предоставить
- Щелкните Предоставить.
Нажмите кнопку Далее.
На странице метаданных, обозначенной , укажите пары ключ-значение для тегов. Дополнительные сведения см. в статье Применение тегов к защищаемым объектам каталога Unity.
(Необязательно) Добавьте комментарий.
Нажмите кнопку Сохранить.
SQL
Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks:
CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Databricks рекомендует использовать azure Databricks секреты вместо строк открытого текста для конфиденциальных значений, таких как учетные данные. Например:
CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Если необходимо использовать строки обычного текста в командах SQL записной книжки, избегайте обрезания строки, например, заменяя $
на \
. Например, \$
.
Для получения информации о настройке секретов см. Управление секретами.
Создание внешнего каталога
Заметка
Если вы используете пользовательский интерфейс для создания подключения к источнику данных, создание внешнего каталога будет выполнено автоматически, и этот шаг можно пропустить.
Внешний каталог зеркально отражает базу данных во внешней системе данных, чтобы можно было запрашивать и управлять доступом к данным в этой базе данных с помощью Azure Databricks и каталога Unity. Чтобы создать внешний каталог, вы используете подключение к источнику данных, который уже определен.
Чтобы создать внешний каталог, можно использовать обозреватель каталогов или команду SQL CREATE FOREIGN CATALOG
в записной книжке Azure Databricks или редакторе запросов SQL.
Для создания каталога можно также использовать REST API Databricks или интерфейс командной строки Databricks. См. POST /api/2.1/unity-catalog/catalogs и команды Unity Catalog .
необходимые разрешения :CREATE CATALOG
разрешение на хранилище метаданных и либо владение подключением, либо привилегия CREATE FOREIGN CATALOG
на подключении.
Обозреватель каталогов
В рабочей области Azure Databricks щелкните значок каталога каталога, чтобы открыть обозреватель каталогов.
В верхней части области каталога
щелкните значок Добавить или плюс значок "Добавить " и выберитеДобавить каталог в меню.Кроме того, на странице быстрого доступа нажмите кнопку каталогов, а затем нажмите кнопку "Создать каталог".
Следуйте инструкциям по созданию внешних каталогов в Создание Каталогов.
SQL
Выполните следующую команду SQL в записной книжке или редакторе запросов SQL. Элементы в квадратных скобках являются необязательными. Замените значения заполнителей:
-
<catalog-name>
: имя каталога в Azure Databricks. -
<connection-name>
: объект подключения , указывающий источник данных, путь и учетные данные доступа. -
<database-name>
. Имя базы данных, которую вы хотите зеркально отражать в качестве каталога в Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Поддерживаемые pushdowns
Поддерживаются следующие вытеснения:
- Фильтры
- Проекции
- Предел
- Агрегаты
- актёрский состав
- Содержит, Начинается с, Заканчивается на, Похоже на
Сопоставления типов данных
При чтении из Teradata в Spark типы данных сопоставляются следующим образом:
Тип Teradata | Тип Spark |
---|---|
Байт, Блоб | БинарныйТип |
Byteint, Smallint, Integer | Целочисленный тип |
BigInt | LongType |
Плавающая, двойная, двойная точность | DoubleType |
Number(n, m) | Десятичный тип |
Number(, m), Number(), Number | Неподдерживаемые |
Varchar(N) | ТипСтроки |
Время, Метка времени | Тип временной метки |