Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: SQL Server 2016 (13.x) и более поздних
версий базы данных
SQL Azure Sql Azure, управляемого экземпляра
Azure Synapse Analytics Analytics
Platform System (PDW)
SQL, в Microsoft Fabric
Создаёт внешний объект формата файла, определяющий внешние данные, хранящиеся в Hadoop, Azure Blob Storage, Azure Data Lake Store, OneLake в Microsoft Fabric или для входных и выходных потоков, связанных с внешними потоками. Создание формата внешнего файла — обязательное условие для создания внешней таблицы. Создавая формат внешнего файла, вы указываете фактическую структуру данных, на которые ссылается внешняя таблица. Инструкции по созданию внешней таблицы см. в статье CREATE EXTERNAL TABLE (Transact-SQL).
Поддерживаются следующие форматы файлов.
Текст с разделителями
SQL-база данных в Microsoft Fabric поддерживает только CSV-формат разграничённого текста.
Hive RCFile
Не применимо к Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL Database в Microsoft Fabric или SQL Server 2022 (16.x).
Улья ORC
Не применимо к Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL Database в Microsoft Fabric или SQL Server 2022 (16.x).
Паркет
JSON
Применяется только к Пограничным службам SQL Azure. Сведения об использовании
OPENROWSETимпорта данных JSON на других платформах см. в статье "Импорт документов JSON" в SQL Server или запрос JSON-файлов с помощью бессерверного пула SQL в Azure Synapse Analytics.Разностная версия
Применяется толькок серверным SQL-пулам в Azure Synapse Analytics, Azure SQL Database, SQL Server 2022 (16.x) и более поздних версиях. Можно запросить Delta Lake версии 1.0. Изменения, внесенные с тех пор, в Delta Lake 1.2, например переименование столбцов, не поддерживаются. Если вы используете более высокие версии Delta с векторами удаления, контрольными точками версии 2 и другими функциями, рассмотрите возможность использования других обработчиков запросов, таких как конечная точка аналитики Microsoft Fabric SQL для Lakehouses.
Соглашения о синтаксисе Transact-SQL
Синтаксис
-- Create an external file format for DELIMITED (CSV/TSV) files.
CREATE EXTERNAL FILE FORMAT file_format_name
WITH (
FORMAT_TYPE = DELIMITEDTEXT
[ , FORMAT_OPTIONS ( <format_options> [ ,...n ] ) ]
[ , DATA_COMPRESSION = {
'org.apache.hadoop.io.compress.GzipCodec'
}
]);
<format_options> ::=
{
FIELD_TERMINATOR = field_terminator
| STRING_DELIMITER = string_delimiter
| FIRST_ROW = integer -- Applies to: Azure Synapse Analytics and SQL Server 2022 and later versions
| DATE_FORMAT = datetime_format
| USE_TYPE_DEFAULT = { TRUE | FALSE }
| ENCODING = {'UTF8' | 'UTF16'}
| PARSER_VERSION = {'parser_version'}
}
Аргументы
file_format_name
Задает имя формата внешнего файла.
FORMAT_TYPE
Задает формат внешних данных.
FORMAT_TYPE = ПАРКЕТ
задает формат Parquet.
FORMAT_TYPE = ORC
Задает формат ORC. Для использования этого параметра во внешнем кластере Hadoop требуется Hive версии 0.11 или выше. В Hadoop формат файла ORC обеспечивает более качественное сжатие и более высокую производительность, чем формат файла RCFILE.
FORMAT_TYPE = RCFILE, SERDE_METHOD = SERDE_method
Указывает формат файла Record Columnar (RcFile). Этот параметр требует задания метода сериализации и десериализации куч (SerDe). То же требование действует при использовании Hive/HiveQL в Hadoop для отправки запросов файлам RC. Обратите внимание, что метод SerDe учитывает регистр.
Примеры задания RCFile с двумя методами SerDe, которые поддерживаются PolyBase.
FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
FORMAT_TYPE = РАЗДЕЛИТЕЛЬ
Задаёт формат текста с разделителями столбцов, также известными как терминаторы полей.
FORMAT_TYPE = JSON
Определяет формат JSON. Применяется только к SQL Azure для пограничных вычислений.
FORMAT_TYPE = ДЕЛЬТА
Задает формат Delta Lake. Применяется к бессерверным пулам SQL в Azure Synapse Analytics и SQL Server 2022 (16.x).
FORMAT_OPTIONS
Необязательно. Только для типов текстовых данных с разделителями.
Поддержка PARSER_VERSIONтолько бессерверных пулов SQL в Azure Synapse Analytics.
Бессерверные пулы SQL не поддерживают DATE_FORMAT этот параметр.
DATA_COMPRESSION = data_compression_method
Задает метод сжатия данных для внешних данных. Если DATA_COMPRESSION значение не указано, значение по умолчанию — несжатые данные.
Для правильной .gz работы сжатые файлы Gzip должны иметь расширение файла.
Тип DELIMITEDTEXT формата поддерживает этот метод сжатия: DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec
Варианты форматов текста с разделителями
Варианты форматов, описанные в этом разделе, являются необязательными и применяются только к текстовым файлам с разделителями.
FIELD_TERMINATOR = field_terminator
Применяется только к текстовым файлам с разделителями. Признак конца поля задает один или несколько символов, отмечающих окончание каждого поля (столбца) в файле с разделителями текста. По умолчанию используется вертикальная черта |. Для гарантированной поддержки рекомендуется использовать один или несколько символов ASCII.
Примеры:
FIELD_TERMINATOR = '|'FIELD_TERMINATOR = ' 'FIELD_TERMINATOR = ꞌ\tꞌFIELD_TERMINATOR = '~|~'
STRING_DELIMITER
STRING_DELIMITER = *string_delimiter*
Задает символ, который заключает текстовые значения в текстовый файл с разделителями текста. По умолчанию используется пустая строка "". Значение STRING_DELIMITER функционально эквивалентно параметру FIELDQUOTE в OPENROWSET BULK функции.
Примечание.
Таблицы Hadoop в выделенных пулах SQL Synapse позволяют указать один или несколько символов в STRING_DELIMITER. В бессерверном пуле SQL можно использовать только один символ.
Примеры:
STRING_DELIMITER = '"'STRING_DELIMITER = '0x22'— двойная кавычка в шестнадцатеричном форматеSTRING_DELIMITER = '*'STRING_DELIMITER = ꞌ,ꞌSTRING_DELIMITER = '0x7E0x7E'(Например,~~два тильда ) — поддерживается в выделенном пуле SQL.
FIRST_ROW = first_row_int
Область применения: Azure Synapse Analytics, SQL Server 2022 и более поздних версий
Задает номер строки, которая читается первой во всех файлах во время загрузки PolyBase. Этот параметр может принимать значения 1–15. Если задано значение 2, первая строка в каждом файле (строка заголовка) при загрузке данных пропускается. Строки пропускаются по признакам конца строк (/r/n, /r, /n). Если для экспорта используется этот вариант, строки добавляются в данные, чтобы гарантировать возможность прочтения файла без потери данных. Если задано значение >2, первой экспортируется строка с названиями столбцов внешней таблицы.
DATE_FORMAT = datetime_format
Задает пользовательский формат для всех данных даты и времени, которые могут присутствовать в текстовом файле с разделителями. Если исходный файл использует стандартные форматы даты и времени, этот параметр не является обязательным. Можно использовать не более одного пользовательского формата даты и времени на файл. Невозможно указать для файла более одного пользовательского формата даты и времени. Однако можно использовать несколько форматов даты и времени, если каждый из них является форматом по умолчанию для соответствующего типа данных в определении внешней таблицы.
Внимание
PolyBase использует пользовательский формат даты только для импорта данных. Для записи данных во внешний файл пользовательский формат не используется.
Если параметр DATE_FORMAT не задан или является пустой строкой, PolyBase использует следующие форматы по умолчанию:
Время свидания:
'yyyy-MM-dd HH:mm:ss'SMALLDATETIME:
'yyyy-MM-dd HH:mm'дата:
'yyyy-MM-dd'Datetime2:
'yyyy-MM-dd HH:mm:ss'Смещение времени даты:
'yyyy-MM-dd HH:mm:ss'время:
'HH:mm:ss'
Внимание
Указание настраиваемых DATE_FORMAT переопределяет все форматы типов по умолчанию. Это означает, что вам потребуется использовать одинаковые форматы даты в ячейках с датой и временем, датой и временем в ваших файлах. При переопределении DATE_FORMATнельзя иметь значения даты и времени в другом формате.
Примеры форматов даты приводятся в следующей таблице:
Примечания об этой таблице:
Год, месяц и день могут иметь различные форматы и порядок. В таблице показан только формат ymd. Месяц может обозначаться одной или двумя цифрами или тремя символами. День может обозначаться одной или двумя цифрами. Год может обозначаться двумя или четырьмя цифрами.
Миллисекунды (
fffffff) не требуются.amилиpm(tt) не требуются. Значение по умолчанию —AM.
| Тип данных | Пример | Описание |
|---|---|---|
| datetime | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff |
Помимо года, месяца и дня, этот формат дат включает 00-24 часа, 00-59 минут, 00-59 секунд и три цифры для миллисекунд. |
| datetime | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt |
Помимо года, месяца и дня, этот формат дат включает в себя 00-12 часов, 00-59 минут, 00-59 секунд, три цифры для миллисекунд и , AMamилиPMpm. |
| smalldatetime | DATE_FORMAT = yyyy-MM-dd HH:mm |
Кроме года, месяца и дня этот формат данных включает 00-23 часа, 00-59 минут. |
| smalldatetime | DATE_FORMAT = yyyy-MM-dd hh:mmtt |
Помимо года, месяца и дня, этот формат дат включает в себя 00-11 часов, 00-59 минут, без секунд и AMam, PMили pm. |
| date | DATE_FORMAT = yyyy-MM-dd |
Год, месяц и день. Элемент времени не включен. |
| date | DATE_FORMAT = yyyy-MMM-dd |
Год, месяц и день. Если месяц указывается с MMM, входное значение равно единице или строковым значениям, Jan, Feb, Mar, Apr, May,Jun, Jul, Aug, Sep, Oct, Novили Dec. |
| datetime2 | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff |
Помимо года, месяца и дня, этот формат дат включает 00-23 часа, 00-59 минут, 00-59 секунд и семь цифр для миллисекунд. |
| datetime2 | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt |
Помимо года, месяца и дня, этот формат даты включает 00-11 часов, 00-59 минут, 00-59 секунд, семь цифр для миллисекунд и , AMилиam. PMpm |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz |
Кроме года, месяца и дня этот формат данных включает 00-23 часа, 00-59 минут, 00-59 секунд, семизначное обозначение миллисекунд и смещение часового пояса, которое указывается во входящем файле в виде {+|-}HH:ss. Например, так как время в Лос-Анджелесе без перехода на летнее время на 8 часов отстает от времени UTC, значение -08:00 во входящем файле задает часовой пояс для Лос-Анджелеса. |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz |
Помимо года, месяца и дня, этот формат дат включает 00-11 часов, 00-59 минут, 00-59 секунд, семь цифр для миллисекунд, (AM, amPM, илиpm) и смещение часового пояса. См. в описании в предыдущей строке. |
| Время | DATE_FORMAT = HH:mm:ss |
Нет значения даты, только 00-23 часа 00-59 минут и 00-59 секунд. |
Поддерживаемые форматы даты и времени
Формат внешнего файла может описывать большое число форматов даты и времени:
| datetime | smalldatetime | date | datetime2 | datetimeoffset |
|---|---|---|---|---|
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fff] |
[M[M]]M-[d]d-[yy]yy HH:mm[:00] |
[M[M]]M-[d]d-[yy]yy |
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] |
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fff][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm[:00][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz |
|
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fff] |
[M[M]]M-[yy]yy-[d]d HH:mm[:00] |
[M[M]]M-[yy]yy-[d]d |
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] |
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fff][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm[:00][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz |
|
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] |
[yy]yy-[M[M]]M-[d]d HH:mm[:00] |
[yy]yy-[M[M]]M-[d]d |
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] |
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz |
|
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fff] |
[yy]yy-[d]d-[M[M]]M HH:mm[:00] |
[yy]yy-[d]d-[M[M]]M |
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] |
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fff][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] zzz |
|
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] |
[d]d-[M[M]]M-[yy]yy HH:mm[:00] |
[d]d-[M[M]]M-[yy]yy |
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] |
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz |
|
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fff] |
[d]d-[yy]yy-[M[M]]M HH:mm[:00] |
[d]d-[yy]yy-[M[M]]M |
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] |
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] zzz |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] zzz |
Сведения.
Для разделения значений месяца, дня и года необходимо использовать один из следующих разделителей:
-,/или.. Для простоты в таблице используется только разделитель-.Чтобы указать месяц в виде текста, используйте три и более символов. Обозначения месяца из одного или двух символов интерпретируются как число.
Для разделения значений времени используйте символ
:.Буквы в квадратных скобках необязательны.
Буквы
tt, назначаемые [AM|PM|am|pm].AM— это значение по умолчанию. Еслиttзадано, значение часа (hh) должно находиться в диапазоне от 0 до 12.Буквы
zzzопределяют смещение часового пояса для текущего часового пояса системы в формате{+|-}HH:ss].
USE_TYPE_DEFAULT = { ПРАВДА | ЛОЖНО }
Указывает способ обработки отсутствующих значений в текстовых файлах с разделителями, когда PolyBase извлекает данные из текстового файла. Значение по умолчанию — FALSE.
ПРАВДА
При извлечении данных из текстового файла сохраните каждое отсутствующее значение, воспользовавшись значением по умолчанию для типа данных в соответствующем столбце в определении внешней таблицы. Например, замените отсутствующее значение следующим:
0Значение , если столбец определен как числовой столбец. Столбцы decimal не поддерживаются и приводят к ошибке.Пустая строка "", если столбец является строковым.
Значение , если столбец является столбцом даты. В Azure Synapse Analytics
USE_TYPE_DEFAULT=trueне поддерживаетсяFORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.
ЛОЖЬ
Сохраните все отсутствующие значения как
NULL. ВсеNULLзначения, хранящиеся с помощью словаNULLв текстовом файле с разделителями, импортируются в виде строкиNULL.
КОДИРОВКА = {'UTF8' | 'UTF16'}
В Azure Synapse Analytics и Analytics Platform System (PDW) (APS CU7.4) PolyBase может считывать текстовые файлы в кодировке UTF8 и UTF16-LE.
В SQL Server PolyBase не поддерживает чтение файлов в кодировке UTF16.
Разрешения
Требуется разрешение ALTER ANY EXTERNAL FILE FORMAT.
Замечания
Формат внешнего файла ограничен базой данных в SQL Server и Azure Synapse Analytics. Она находится в области сервера в системе платформы аналитики (PDW).
Формат Hadoop поддерживается только в SQL Server 2016, 2017 и 2019 годов.
Все варианты форматов являются необязательными и применяются только к текстовым файлам с разделителями.
Если данные хранятся в одном из сжатых форматов, PolyBase сначала распаковывает данные и только потом возвращает записи данных.
База данных SQL в Microsoft Fabric поддерживает только формат CSV с разделённым текстом и файлами Parquet. База данных Fabric SQL поддерживает OneLake только в Microsoft Fabric как источник данных.
Ограничения
Разделитель строк в текстовых файлах с разделителями должен поддерживаться объектом LineRecordReader в Hadoop. Значение должно быть \r, \n или \r\n. Эти разделители не настраиваются пользователем.
Сочетания поддерживаемых методов SerDe с RCFiles, а также поддерживаемые методы сжатия данных перечислены ранее в этой статье. Поддерживаются не все комбинации.
Максимальное число одновременно выполняющихся процессов PolyBase — 32. При выполнении 32 параллельных запросов каждый запрос может прочитать не более 33 000 файлов из внешнего файлового расположения. Корневая папка и каждая вложенная папка тоже считаются файлами. Если степень параллелизма меньше 32, внешнее файловое расположение может содержать более 33 000 файлов.
Из-за ограничения на количество файлов во внешней таблице рекомендуется хранить не более 30 000 файлов в корневой и вложенных папках внешнего файлового расположения. Кроме того, рекомендуется не создавать много вложенных папок в корневом каталоге. При ссылке на слишком большое число файлов может возникнуть исключение, связанное с нехваткой памяти на виртуальной машине Java.
При экспорте данных в Hadoop или хранилище BLOB-объектов Azure с помощью PolyBase передаются только данные без имен столбцов (метаданных), как определено в команде CREATE EXTERNAL TABLE.
Блокировка
Принимает совмещаемую блокировку на объекте EXTERNAL FILE FORMAT.
Производительность
При использовании сжатых файлов всегда приходится идти на компромисс: перенести меньше данных между внешним источником данных и SQL Server, но увеличить использование ресурсов ЦП для сжатия и распаковывания данных.
Сжатые текстовые файлы Gzip разделить невозможно. Чтобы повысить производительность сжатых текстовых файлов Gzip, рекомендуется создать несколько хранимых в одном каталоге файлов во внешнем источнике данных. Такая файловая структура позволяет PolyBase читать и распаковывать данные быстрее, используя несколько процессов чтения и распаковывания. Оптимальное количество сжатых файлов — максимальное число процессов чтения данных на вычислительном узле. В SQL Server
В системе платформы аналитики (PDW) максимальное количество процессов чтения данных составляет 8 на узел. В Azure Synapse Analytics максимальное количество процессов чтения данных составляет 20 читателей на узел.
Примеры
А. Создание формата внешнего файла DELIMITEDTEXT
В этом примере создается формат внешнего файла textdelimited1 для текстового файла с разделителями. Параметры, заданные для FORMAT_OPTIONS, указывают, что поля в файле необходимо разделять вертикальной чертой |. Текстовый файл также сжимается с помощью кодека Gzip. Если DATA_COMPRESSION он не указан, текстовый файл распаковается.
Для текстового файла с разделителями метод сжатия данных может быть кодеком по умолчанию org.apache.hadoop.io.compress.DefaultCodec или кодеком Gzip org.apache.hadoop.io.compress.GzipCodec.
CREATE EXTERNAL FILE FORMAT textdelimited1
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = '|',
DATE_FORMAT = 'MM/dd/yyyy' ),
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
);
В. Создание формата внешнего файла RCFile
В этом примере создается внешний формат файла для RCFile, который использует serialization/deserialization метод org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe. Кроме того, указано, что в качестве метода сжатия данных необходимо использовать кодек по умолчанию. Если DATA_COMPRESSION значение не указано, значение по умолчанию не является сжатием.
CREATE EXTERNAL FILE FORMAT rcfile1
WITH (
FORMAT_TYPE = RCFILE,
SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe',
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.DefaultCodec'
);
В. Создание формата внешнего файла ORC
В этом примере создается формат внешнего файла для файла ORC, который сжимает данные с помощью метода сжатия данных org.apache.io.compress.SnappyCodec. Если DATA_COMPRESSION значение не указано, значение по умолчанию не является сжатием.
CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
FORMAT_TYPE = ORC,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
Д. Создание формата внешнего файла PARQUET
В этом примере создается формат внешнего файла для файла Parquet, который сжимает данные с помощью метода сжатия данных org.apache.io.compress.SnappyCodec. Если DATA_COMPRESSION значение не указано, значение по умолчанию не является сжатием.
CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
Е. Создание текстового файла с разделителями с пропуском строки заголовка
Область применения: Azure Synapse Analytics и SQL Server 2022 (16.x) и более поздних версий.
В этом примере создается формат внешнего файла для файла CSV с одной строкой заголовка. Дополнительные сведения см. в разделе Виртуализация CSV-файла с помощью PolyBase.
CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS(
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True)
);
F. Создание формата внешнего файла JSON
Область применения: SQL Azure для пограничных вычислений.
В этом примере создается формат внешнего файла для файла JSON, который сжимает данные с помощью метода сжатия данных org.apache.io.compress.SnappyCodec. Если DATA_COMPRESSION значение не указано, значение по умолчанию не является сжатием. Этот пример применяется к SQL Azure для пограничных вычислений и в настоящее время не поддерживается для других продуктов SQL.
CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
FORMAT_TYPE = JSON,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
G. Создание формата внешнего файла для таблицы Delta
В этом примере создается формат внешнего файла для формата файла с типом таблицы Delta. Этот пример применяется к SQL Server 2022 (16.x). Дополнительные сведения см. в статье Virtualize delta table with PolyBase.
CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
FORMAT_TYPE = DELTA
);