Настройка PolyBase для доступа к внешним данным в SQL Server

Область применения:SQL Server

Эта статья описывает, как с помощью PolyBase в экземпляре SQL Server запросить внешние данные другого экземпляра SQL Server.

Предварительные условия

Если вы не установили PolyBase, см. раздел Установка PolyBase. Необходимые условия описываются в статье, посвященной установке. По завершении установки необходимо также включить PolyBase.

Внешний источник данных SQL Server использует проверку подлинности SQL.

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

Настройка внешнего источника данных SQL Server

Чтобы запросить данные из источника данных SQL Server, необходимо создать внешние таблицы, чтобы ссылаться на внешние данные. Этот раздел содержит пример кода для создания таких внешних таблиц.

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

В рамках этого раздела используются следующие команды Transact-SQL:

  1. Создайте учетные данные, ограниченные областью базы данных, для доступа к источнику SQL Server. В следующем примере создаются учетные данные для внешнего источника данных с IDENTITY = 'username' и SECRET = 'password'.

    CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials
    WITH IDENTITY = 'username', SECRET = 'password';
    

    Внимание

    Соединитель ODBC SQL для PolyBase поддерживает только обычную проверку подлинности, но не проверку подлинности Kerberos.

  2. Создайте внешний источник данных с помощью CREATE EXTERNAL DATA SOURCE. Следующий пример:

    • Создает внешний источник данных SQLServerInstance.
    • Определяет внешний источник данных (LOCATION = '<vendor>://<server>[:<port>]'). В примере он указывает на экземпляр SQL Server по умолчанию.
    • Определяет, следует ли передавать вычисления на источник (PUSHDOWN). PUSHDOWN по умолчанию равен ON.

    Наконец, в примере используются учетные данные, созданные ранее.

    CREATE EXTERNAL DATA SOURCE SQLServerInstance
        WITH ( LOCATION = 'sqlserver://SqlServer',
        PUSHDOWN = ON,
        CREDENTIAL = SQLServerCredentials);
    
  3. Создайте внешнюю таблицу с помощью CREATE EXTERNAL TABLE. Для инструкции требуется параметр сортировки, а для расположения — трёхчастная нотация (<database>.<schema>.<table>).

    CREATE EXTERNAL TABLE DatabasesExternal (
        name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS)
      WITH (LOCATION = 'master.sys.databases',
      DATA_SOURCE = SQLServerInstance);
    
  4. (Необязательно) Создайте статистику для внешней таблицы.

Чтобы обеспечить оптимальную производительность запросов, создайте статистику для столбцов внешней таблицы, особенно для тех, которые используются для объединений, фильтров и агрегаций.

  CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
  WITH FULLSCAN;

Внимание

После создания внешнего источника данных можно использовать CREATE EXTERNAL TABLE команду для создания запрашиваемой таблицы над этим источником.

Совместимые типы соединителей SQL Server

Для доступа к База данных SQL Azure можно также использовать соединитель SQL Server (sqlserver://). Для этого выполните те же действия, что указаны ранее. Убедитесь, что учетные данные, ограниченные областью базы данных, адрес сервера, порт и строка расположения соответствовали источнику данных База данных SQL Azure, к которому требуется подключиться.

Следующие шаги

Для получения дополнительных руководств по созданию внешних источников данных и внешних таблиц для различных источников данных, см. справочник по PolyBase Transact-SQL.

Дополнительные сведения о PolyBase см. в статье Руководство по PolyBase.