Настройка 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.