Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описывается, как настроить Lakehouse Federation для выполнения федеративных запросов к данным SQL Server, которые не управляются Azure Databricks. Дополнительные сведения о Федерации Lakehouse см. в статье "Что такое Федерация Lakehouse?"
Чтобы подключиться к базе данных SQL Server с помощью функциональности Lakehouse Federation, необходимо создать следующее в метахранилище Unity Catalog в Azure Databricks:
- Подключение к базе данных SQL Server.
- внешний каталог, который зеркально отражает базу данных SQL Server в каталоге Unity, чтобы использовать синтаксис запросов Unity и средства управления данными для управления доступом пользователей Azure Databricks к базе данных.
Федерация Lakehouse поддерживает SQL Server, База данных SQL Azure и Управляемый экземпляр SQL Azure.
Подготовка к работе
Требования к рабочей области:
- Включена рабочая область для каталога Unity.
Требования к вычислениям:
- Подключение к сети от ресурса вычислений к целевым системам баз данных. См . рекомендации по сети для Федерации Lakehouse.
- Вычислительные ресурсы Azure Databricks должны использовать Databricks Runtime 13.3 LTS или более поздней версии, а также стандартный или выделенный режим доступа.
- Хранилища SQL должны быть профессиональными или бессерверными и должны использовать 2023.40 или более поздней версии.
Необходимые разрешения:
- Чтобы создать подключение, необходимо быть администратором хранилища метаданных или пользователем с правами
CREATE CONNECTIONв хранилище метаданных каталога Unity, подключенном к рабочей области. - Чтобы создать внешний каталог, необходимо иметь разрешение
CREATE CATALOGв хранилище метаданных и быть владельцем подключения или иметь привилегиюCREATE FOREIGN CATALOGна подключение.
Дополнительные требования к разрешениям указываются в каждом разделе на основе задач, который следует выполнить.
- Если вы планируете пройти проверку подлинности в SQL Server с помощью идентификатора Microsoft Entra, выполните настройку в разделе "Настройка идентификатора Microsoft Entra для федерации SQL Server".
Создание подключения
Подключение задает путь и учетные данные для доступа к внешней системе базы данных. Чтобы создать подключение, можно использовать обозреватель каталогов или команду CREATE CONNECTION SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.
Note
Для создания подключения можно также использовать REST API Databricks или интерфейс командной строки Databricks. Смотрите POST /api/2.1/unity-catalog/connections и команды каталога Unity.
Необходимые разрешения: администратор хранилища метаданных или пользователь с привилегиями CREATE CONNECTION .
Обозреватель каталогов
В рабочей области Azure Databricks щелкните
Каталог.
В верхней
части области каталогащелкните значок Добавить или плюс значок "Добавить " и выберитеДобавить подключения в меню.Кроме того, на странице быстрого доступа нажмите кнопку Внешние данные, перейдите на вкладку подключений и щелкните Создать подключение.
На странице
основы подключения мастера настройки подключениявведите понятное имя подключения .Выберите тип подключения SQL Server.
Выберите тип проверки подлинностиOAuth, OAuth Machine to Machine или Имя пользователя и пароль (обычная проверка подлинности).
(Необязательно) Добавьте комментарий.
Нажмите кнопку Далее.
На странице аутентификации введите следующие свойства подключения для экземпляра SQL Server. Свойства, относящиеся к выбранному методу проверки подлинности, предшествуют
Auth typeв скобках.- Узел: сервер SQL Server.
- (Обычная проверка подлинности) Порт
- (Обычная проверка подлинности) trustServerCertificate: по умолчанию
false. Если задано значениеtrue, транспортный слой использует SSL для шифрования канала и обхода цепочки сертификатов для проверки доверия. Оставьте значение по умолчанию, если у вас нет конкретной необходимости обойти проверку доверия. - (Обычная проверка подлинности) Пользователь
- (Обычная проверка подлинности) Пароль
- (OAuth) Введите сведения о подключении, собранные в разделе Настройка идентификатора Microsoft Entra для федерации SQL Server.
Щелкните Создать подключение.
(Обычная проверка подлинности) На странице сведений о подключении
укажите следующее: - сертификат сервера доверия. Этот параметр по умолчанию не выбран. При выборе уровень транспорта использует SSL для шифрования канала и обхода цепочки сертификатов для проверки доверия. Оставьте значение по умолчанию, если у вас нет конкретной необходимости обойти проверку доверия.
- намерение приложения: тип рабочей нагрузки приложения при подключении к серверу.
Нажмите кнопку Далее.
На странице каталога
введите имя внешнего каталога. Внешний каталог зеркально отражает базу данных во внешней системе данных, чтобы можно было запрашивать и управлять доступом к данным в этой базе данных с помощью Azure Databricks и каталога Unity. Щелкните Создать каталог.
На странице Access выберите рабочие области, в которых пользователи могут получить доступ к созданному каталогу. Вы можете выбрать Все рабочие области имеют доступ, или нажать Назначить рабочие области, выбрать рабочие области, а затем нажать Назначить.
Измените владельца, который сможет управлять доступом ко всем объектам в каталоге. Начните вводить адресата в текстовом поле, а затем выберите адресата в возвращенных результатах.
Предоставьте привилегии на каталоге. Нажмите Grant:
- Укажите ответственных лиц, которые будут иметь доступ к объектам в каталоге. Начните вводить адресата в текстовом поле, а затем выберите адресата в возвращенных результатах.
- Выберите предустановки привилегий , чтобы предоставить каждому субъекту. Все пользователи учетной записи получают
BROWSEпо умолчанию.- Выберите средство чтения данных в раскрывающемся меню, чтобы предоставить
readпривилегии для объектов в каталоге. - Выберите редактор данных в раскрывающемся меню, чтобы предоставить
readиmodifyпривилегии для объектов в каталоге. - Вручную выберите привилегии для предоставления.
- Выберите средство чтения данных в раскрывающемся меню, чтобы предоставить
- Нажмите Grant.
Нажмите кнопку Далее.
На странице метаданных укажите пары тегов «ключ-значение». Дополнительные сведения см. в статье Применение тегов к защищаемым объектам каталога Unity.
(Необязательно) Добавьте комментарий.
Нажмите кнопку Сохранить.
Note
(OAuth) Конечная точка OAuth идентификатора Azure entra должна быть доступна из IP-адресов уровня управления Azure Databricks. Ознакомьтесь с регионами Azure Databricks.
SQL
Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks.
CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Мы рекомендуем использовать секреты Azure Databricks вместо строк открытого текста для конфиденциальных значений, таких как учетные данные. Рассмотрим пример.
CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Сведения о настройке секретов см. в разделе "Управление секретами".
Создание внешнего каталога
Note
Если вы используете интерфейс для создания подключения к источнику данных, создание внешнего каталога будет включено, и вы можете пропустить этот шаг.
Внешний каталог зеркально отражает базу данных во внешней системе данных, чтобы можно было запрашивать и управлять доступом к данным в этой базе данных с помощью Azure Databricks и каталога Unity. Чтобы создать внешний каталог, вы используете подключение к источнику данных, который уже определен.
Чтобы создать внешний каталог, можно использовать обозреватель каталогов или команду SQL CREATE FOREIGN CATALOG в записной книжке Azure Databricks или редакторе запросов SQL. Для создания каталога можно также использовать REST API Databricks или интерфейс командной строки Databricks.
POST /api/2.1/unity-catalog/catalogs и команды каталога Unity.
Необходимые разрешения: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>');
Поддерживаемые продвижения
Для всех вычислений поддерживаются следующие pushdown:
- Filters
- Projections
- Limit
- Функции: частичные, только для выражений фильтров. (Строковые функции, математические функции, функции data, Time и Timestamp и другие другие функции, такие как Псевдоним, Приведение, SortOrder)
Следующие pushdown поддерживаются в Databricks Runtime 13.3 LTS и более поздних версиях, а также в вычислительных ресурсах хранилища SQL:
- Aggregates
- Следующие логические операторы: =, =, <<=, =, >>=, <=>
- Следующие математические функции (не поддерживаются при отключении ANSI): +, -, *, %, /
- Следующие прочие операторы: ^, |, ~
- Сортировка при использовании с ограничением
Следующие pushdown не поддерживаются:
- Joins
- Функции Windows
Сопоставление типов данных
При чтении из SQL Server в Spark типы данных сопоставляются следующим образом:
| Тип SQL Server | Тип Spark |
|---|---|
| bigint (без знака), десятичная, деньги, числовые, малые деньги | DecimalType |
| smallint (маленькое целое число), tinyint (крошечное целое число) | ShortType |
| int | IntegerType |
| bigint (если подписан) | LongType |
| real | FloatType |
| float | DoubleType |
| char, nchar, uniqueidentifier | CharType |
| nvarchar (строковый тип данных с поддержкой юникода), varchar (строковый тип данных без поддержки юникода) | VarcharType |
| text, xml | StringType |
| двоичный, география, геометрия, изображение, временная метка, пользовательский тип данных, переменный двоичный | BinaryType |
| bit | BooleanType |
| date | DateType |
| дата-время, дата-время, маленькая дата-время, время | TimestampType/TimestampNTZType |
*При чтении из SQL Server SQL Server SQL Server datetimes сопоставляется с Spark TimestampType , если preferTimestampNTZ = false (по умолчанию). SQL Server datetimes сопоставляются с TimestampNTZType значением if preferTimestampNTZ = true.