СТВОРИТИ ЗОВНІШНЮ ТАБЛИЦЮ ЯК ВИБРАТИ (CETAS)
Ця одиниця уважно подивиться на команду CREATE EXTERNAL TABLE AS SELECT (CETAS) і переваги, які вона надає.
CETAS підтримує сховище BLOB-об'єктів Azure, сховище Azure Data Lake, сховище для об'єктів, сумісне з S3, а також зовнішні бази даних. Функція CETAS також підтримує експорт форматів файлів у форматі CSV або Parquet.
Найпотужніші можливості CETAS – поєднати з іншими операціями SELECT, наприклад поєднати з OPENROWSET або з іншими зовнішніми таблицями. Ця комбінація дає змогу використовувати CETAS різними та гнучкими способами.
Приклади використання для CETAS
Є багато різних випадків використання для CETAS, але три основні:
- Звітування
- Рівень або розвантаження даних
- Центр експорту даних
Звітування
Найбільш очевидним випадком використання CETAS є спрощення звітування за допомогою всіх можливостей гнучкості PolyBase і SQL Server. Ви можете підключитися до будь-якого підтримуваного джерела даних, таблиці або файлу та використовувати T-SQL, щоб керувати результатами та експортувати їх. Наприклад, замість того, щоб підключати засоби звітування до СЕРВЕРА SQL Server, можна скористатися функцією CETAS для виконання всіх необхідних запитів, експортувати результат як файл паркету та навести засіб звітування на експортовані дані.
Рівень або розвантаження даних
Іншим поширеним сценарієм є експорт архівних або лише для читання даних із таблиць SQL Server до віддаленого сховища, але все ще виконується звичайний запит за допомогою зовнішніх таблиць. Таким чином, ви можете зберігати лише активні дані на сервері SQL Server, зберігаючи ресурси, але за потреби отримувати доступ до даних прозоро. З точки зору програми це так само, як доступ до звичайної таблиці SQL Server.
Наприклад, уявіть, що таблиця order має історичні дані минулих років, які не змінюються, але вона все одно потрібна для повної доступності. CETAS може допомогти експортувати всі order дані таблиці до іншого розташування, зменшивши розмір бази даних і необхідний час обслуговування. Експортовані дані з зовнішньої таблиці працюють так само, як звичайна таблиця.
Центр експорту даних
Використовуючи SQL Server 2025 як концентратор даних, ви можете поєднувати CETAS з усіма існуючими можливостями PolyBase, включаючи підключення до інших джерел даних, таких як Oracle, Teradata, ODBC або інших версій SQL Server.
Вимоги CETAS
Щоб використовувати CETAS у SQL Server 2025, вам потрібно ввімкнути цю властивість ALLOW POLYBASE EXPORT , використовуючи sp_configure. Докладніше див. в наступній вправі.
Дозволи CETAS
Щоб використовувати CETAS, потрібно мати три різні рівні дозволів:
Дозвіл на доступ і читання джерела даних. Якщо дані розташовані за межами СЕРВЕРА SQL Server на мережевій папці або на іншому сервері бази даних, обліковий запис служби SQL Server має мати дозвіл на доступ до джерела даних.
Дозвіл на SQL Server 2025 на використання команди CETAS. Щоб користувач бази даних виконав команду CETAS, дитина має адмініструвати групові операції, змінити будь-які зовнішні джерела данихта змінити будь-який зовнішній формат файлу дозволи.
Дозвіл на записування в місці призначення для записування результатів CETAS. Щоб мати змогу писати до кінцевого файлу призначення, паркету або CSV-файлу, користувачу потрібні дозволи на записування до місця призначення. Наприклад, щоб записати запис до Сховища BLOB-об'єктів в Azure або сховищі Azure Data Lake, користувачу потрібно LIST, READ, CREATE, а також дозволи на записування для цих місць призначення.
Докладні відомості про дозволи для CETAS див. в дозволів CREATE EXTERNAL TABLE AS SELECT (CETAS).
Підтримувані формати CETAS
Функція CETAS отримує потік даних, використовуючи команду SELECT як ввід, і експортує результати у форматі CSV або Parquet. Введені дані підтримують ті самі формати, що й команда SELECT, включно з результатами OPENROWSET.
Це може бути таблиця, запущена локально в екземплярі SQL Server, мережевий файл, який використовується під час операції OPENROWSET, таблиця в іншій системі бази даних або файл Відмінності, що зберігається в сховищі BLOB-об'єктів Azure, сховищі Azure Data Lake або S3-сумісному сховищі об'єктів.
- Повний список підтримуваних форматів див. в статті CREATE EXTERNAL FILE FORMAT.
- Повний список підтримуваних джерел даних див. CREATE EXTERNAL DATA SOURCE.
- Щоб дізнатися, як отримати доступ до віддалених файлів за допомогою OPENROWSET, див. OPENROWSET.
Структура CETAS T-SQL
Щоб краще зрозуміти CETAS, можна розбити загальний синтаксис T-SQL. Структура CETAS T-SQL базується на підході знизу вгору. Легше почати з кінця оператора, а потім поступово рухатися до верхньої частини оператора T-SQL.
- У нижній частині структури CETAS є оператор SELECT, який ви використовуєте для визначення, які дані експортувати.
- Посередині є додаткові параметри, які можна використати для відхилення даних, які ви не хочете експортувати.
- У верхній частині оператора CETAS, після оголошення CREATE EXTERNAL TABLE, додається інформація про місце призначення, ім'я файлу та формат файлу.
Ця структура дозволяє поєднувати CETAS з будь-яким оператором SELECT для запиту даних поза SQL Server, у межах SQL Server або з будь-якої іншої підтримуваної бази даних. SQL Server 2025 автоматично створює ім'я файлу та розбиває результати на кілька файлів для оптимізації. Наприклад, таблиця, експортована як паркет, може створити кілька файлів залежно від розміру експортованих даних. Оператор select визначає визначення та тип стовпця зовнішньої таблиці.
Експорт таблиці з SQL Server як паркету
У наведеному нижче прикладі функція CETAS експортує таблицю з SQL Server як паркет:
CREATE EXTERNAL TABLE ext_sales
WITH (
LOCATION = '/cetas',
DATA_SOURCE = s3_eds,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];
Читання файлу відмінностей і експортування як паркету
У наведеному нижче прикладі CETAS читає файл Відмінності та експортує його як паркет:
CREATE EXTERNAL TABLE Delta_to_Parquet
WITH (
LOCATION = N'/backup/sales',
DATA_SOURCE = s3_parquet,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM OPENROWSET(BULK N'/delta/sales_fy22/',
FORMAT = 'DELTA',
DATA_SOURCE = 's3_delta') AS [r];
У наступній вправі ви використовуєте CETAS для:
- Експорт таблиці як паркету.
- Переміщення холодних даних із бази даних у сховище.
- Створення зовнішньої таблиці для доступу до збережених даних.
- Використовуйте подання, пошук узагальнення, усунення папок і метадані як стратегії запитів.