Поделиться через


Выполнение федеративных запросов в Microsoft Azure Synapse

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

В этой статье описывается, как настроить федерацию Lakehouse для выполнения федеративных запросов в azure Synapse (хранилище данных SQL), которые не управляются Azure Databricks. Дополнительные сведения о Федерации Lakehouse см. в статье "Что такое Федерация Lakehouse".

Чтобы подключиться к базе данных Azure Synapse (хранилище данных SQL) с помощью федерации Lakehouse, необходимо создать следующее в хранилище метаданных каталога Azure Databricks Unity:

  • Подключение к базе данных Azure Synapse (хранилище данных SQL).
  • Внешний каталог, который зеркало базу данных Azure Synapse (хранилище данных SQL) в каталоге Unity, чтобы использовать синтаксис запросов Unity и средства управления данными для управления доступом пользователей Azure Databricks к базе данных.

Подготовка к работе

Требования к рабочей области:

  • Рабочая область включена для каталога Unity.

Требования к вычислениям:

  • Сетевое подключение из кластера среды выполнения Databricks или хранилища SQL к целевым системам баз данных. См . рекомендации по сети для Федерации Lakehouse.
  • Кластеры Azure Databricks должны использовать Databricks Runtime 13.3 LTS или более поздней версии и режим общего или однопользовательского доступа.
  • Склады SQL должны быть профессиональными или бессерверными.

Необходимые разрешения:

  • Чтобы создать подключение, необходимо быть администратором хранилища метаданных или пользователем с CREATE CONNECTION привилегиями в хранилище метаданных каталога Unity, подключенном к рабочей области.
  • Чтобы создать внешний каталог, необходимо иметь CREATE CATALOG разрешение на хранилище метаданных и быть владельцем подключения или иметь CREATE FOREIGN CATALOG привилегии для подключения.

Дополнительные требования к разрешениям указываются в каждом разделе на основе задач, который следует выполнить.

Создание подключения

Подключение задает путь и учетные данные для доступа к внешней системе базы данных. Чтобы создать подключение, можно использовать Обозреватель каталога или CREATE CONNECTION команду SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.

Необходимые разрешения: администратор хранилища метаданных или пользователь с привилегиями CREATE CONNECTION .

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Значок каталога"Каталог".
  2. В левой области разверните меню "Внешние данные" и выберите Подключение.
  3. Нажмите Create connection (Создать подключение).
  4. Введите понятное имя Подключение ion.
  5. Выберите типПодключение ion SQLDW.
  6. Введите следующие свойства подключения для экземпляра Azure Synapse.
    • Узел: например, sqldws-demo.database.windows.net.
    • Порт: например, 1433
    • trustServerCertificate: по умолчанию false. Если задано значение true, уровень транспорта использует SSL для шифрования канала и обхода цепочки сертификатов для проверки доверия. Оставьте этот набор значение по умолчанию, если у вас нет конкретной необходимости обойти проверку доверия.
    • Пользователь
    • Пароль
  7. (Необязательно) Нажмите кнопку "Проверить подключение" , чтобы убедиться, что она работает.
  8. (Необязательно) Добавьте комментарий.
  9. Нажмите кнопку Создать.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks.

CREATE CONNECTION <connection-name> TYPE sqldw
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Рекомендуется использовать секреты Azure Databricks вместо строк открытого текста для конфиденциальных значений, таких как учетные данные. Например:

CREATE CONNECTION <connection-name> TYPE sqldw
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>')
)

Сведения о настройке секретов см. в разделе "Управление секретами".

Создание внешнего каталога

Внешний каталог зеркало базу данных во внешней системе данных, чтобы можно было запрашивать и управлять доступом к данным в этой базе данных с помощью Azure Databricks и каталога Unity. Чтобы создать внешний каталог, вы используете подключение к источнику данных, который уже определен.

Чтобы создать внешний каталог, можно использовать Обозреватель каталога или команду SQL в записной книжке Azure Databricks или CREATE FOREIGN CATALOG редакторе sql-запросов Databricks.

Необходимые разрешения:CREATE CATALOG разрешение на хранилище метаданных и право владения подключением или CREATE FOREIGN CATALOG привилегией подключения.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Значок каталога"Каталог".
  2. Нажмите кнопку Создать каталог.
  3. В диалоговом окне "Создание нового каталога" введите имя каталога и выберите типвнешнего пользователя.
  4. Выберите Подключение, предоставляющий доступ к базе данных, которую вы хотите зеркало в качестве каталога каталога Unity.
  5. Введите имя базы данных, которую вы хотите зеркало в качестве каталога.
  6. Нажмите кнопку Создать.

SQL

Выполните следующую команду SQL в записной книжке или редакторе SQL Databricks. Элементы в квадратных скобках являются необязательными. Замените значения-заполнители:

  • <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

Поддерживаются следующие pushdown:

  • Фильтры
  • Проекции.
  • Лимит
  • Агрегаты (среднее, количество, макс, мин, StddevPop, StddevSamp, Sum, VarianceSamp)
  • Функции (Арифметические и другие прочие функции, такие как Псевдоним, Каст, SortOrder)
  • Сортировка

Следующие pushdown не поддерживаются:

  • Объединения
  • Функции Windows

Сопоставление типов данных

При чтении из Synapse или хранилища данных SQL в Spark типы данных сопоставляются следующим образом:

Тип Synapse Тип Spark
десятичные, деньги, числовые, небольшие деньги DecimalType
smallint ShortType
tinyint ByteType
INT IntegerType
bigint LongType
real FloatType
с плавающей запятой DoubleType
char, nchar, ntext, nvarchar, text, uniqueidentifier, varchar, xml StringType
binary, geography, geometry, image, timestamp, udt, varbinary BinaryType
bit BooleanType
Дата DateType
datetime, datetime, smalldatetime, time TimestampType/TimestampNTZType*

*При чтении из Synapse / хранилища данных SQL (SQLDW) SQLDW datetimes сопоставляются с Spark TimestampType , если preferTimestampNTZ = false (по умолчанию). SQLDW datetimes сопоставляется с TimestampNTZType значением if preferTimestampNTZ = true.