Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В этой статье описывается использование PolyBase в экземпляре SQL Server для запроса внешних данных в Oracle.
Требования
Если вы не установили PolyBase, см. раздел Установка PolyBase.
Перед созданием учетных данных для базы данных необходимо создать Главный ключ.
Настройка внешнего источника данных Oracle
Чтобы запросить данные из источника данных Oracle, необходимо создать внешние таблицы, позволяющие ссылаться на внешние данные. Этот раздел содержит пример кода для создания таких внешних таблиц.
В рамках этого раздела используются следующие команды Transact-SQL:
- CREATE DATABASE CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
Создайте учетные данные, привязанные к базе данных, для доступа к источнику Oracle.
/* specify credentials to external data source * IDENTITY: user name for external source. * SECRET: password for external source. */ CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'password';Внимание
Соединитель ODBC Oracle для PolyBase поддерживает только обычную проверку подлинности, но не проверку подлинности Kerberos.
Создайте внешний источник данных с помощью CREATE EXTERNAL DATA SOURCE.
/* * LOCATION: Location string should be of format '<vendor>://<server>[:<port>]'. * PUSHDOWN: specify whether computation should be pushed down to the source. ON by default. * CONNECTION_OPTIONS: Specify driver location * CREDENTIAL: the database scoped credential, created above. */ CREATE EXTERNAL DATA SOURCE external_data_source_name WITH ( LOCATION = 'oracle://<server address>[:<port>]', -- PUSHDOWN = ON | OFF, CREDENTIAL = credential_name)Создайте внешнюю таблицу с помощью CREATE EXTERNAL TABLE.
/* * LOCATION: Three-part identifier indicating database & domain or only database, schema, and table name. * DATA_SOURCE: The data source created above. */ CREATE EXTERNAL TABLE [T1] ( [KEY] DECIMAL(38) NOT NULL, [RANDOM_INT] DECIMAL(38), [RANDOM_FLOAT] FLOAT(53)) WITH ( LOCATION = '[ORCLCDB.localdomain].SYS.T1', DATA_SOURCE = external_data_source_name)Необязательно. Создайте статистику для внешней таблицы.
Чтобы обеспечить оптимальную производительность запросов, мы советуем создать статистику столбцов внешней таблицы, особенно тех, которые используются для объединения, применения фильтров и статистических выражений.
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY) WITH FULLSCAN;
Внимание
После создания внешнего источника данных можно использовать CREATE EXTERNAL TABLE команду для создания запрашиваемой таблицы над этим источником.