Формат XML в конвейерах Фабрики данных Azure и Synapse Analytics
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
Если вам требуется анализировать файлы XML, следуйте инструкциям, приведенным в этой статье.
Формат XML поддерживается для следующих соединителей: Amazon S3, хранилище, совместимое с Amazon S3, BLOB-объекты Azure, Azure Data Lake Storage 1-го поколения, Azure Data Lake Storage 2-го поколения, Файлы Azure, файловая система, FTP, Google Cloud Storage, HDFS , HTTP, Oracle Cloud Storage и SFTP. Он поддерживается в качестве источника, но не в качестве приемника.
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. В этом разделе приведен список свойств, поддерживаемых набором данных XML.
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Для свойства type набора данных необходимо задать значение Xml. | Да |
расположение | Параметры расположения файлов. Каждый файловый соединитель имеет собственный тип расположения и поддерживает собственный набор свойств в разделе location . Подробные сведения см. в статье о соединителях —> раздел "Свойства набора данных". |
Да |
encodingName | Тип кодировки, используемый для чтения и записи тестовых файлов. Допустимые значения: "UTF-8", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258". |
No |
nullValue | Задает строковое представление значения NULL. Значение по умолчанию — пустая строка. |
No |
compression | Группа свойств для настройки сжатия файлов. Настройте этот раздел, если требуется сжатие/распаковка при выполнении действия. | No |
type (в разделе compression ) |
Кодек сжатия, используемый для чтения и записи файлов XML. Допустимые значения: bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy, lz4. Значение по умолчанию — без сжатия. Примечание. В настоящее время действие Copy не поддерживает кодек "snappy" и "lz4", а поток данных сопоставления не поддерживает кодеки "ZipDeflate", "TarGzip"и"Tar". Обратите внимание, что при использовании действия копирования для распаковки файлов ZipDeflate / TarGzip / tar и записи в файловое хранилище данных приемника по умолчанию файлы распаковываются в папку: <path specified in dataset>/<folder named as source compressed file>/ , используйте preserveZipFileNameAsFolder /preserveCompressionFileNameAsFolder в источнике действия копирования, чтобы использовать имя сжатого (-ых) файла (-ов) для названия структуры папок. |
№ |
level (в разделе compression ) |
Коэффициент сжатия. Допустимые значения: оптимальный или самый быстрый. - Fastest: операция сжатия должна выполняться как можно быстрее, даже если итоговый файл будет сжат не оптимально. - Optimal: операция сжатия должна выполняться оптимально, даже если для ее завершения требуется больше времени. Дополнительные сведения см. в разделе Уровень сжатия. |
No |
Ниже приведен пример набора данных XML в хранилище BLOB-объектов Azure:
{
"name": "XMLDataset",
"properties": {
"type": "Xml",
"linkedServiceName": {
"referenceName": "<Azure Blob Storage linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "containername",
"folderPath": "folder/subfolder",
},
"compression": {
"type": "ZipDeflate"
}
}
}
}
Свойства действия копирования
Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры и действия в фабрике данных Azure. В этом разделе приведен список свойств, поддерживаемых источником XML.
Сведения о сопоставлении XML-данных и приемника хранилища данных и формата из схемы сопоставления. При предварительном просмотре XML-файлов данные отображаются с иерархией JSON, а для указания полей используется путь JSON.
XML в качестве источника
В разделе источника *source* действия копирования поддерживаются указанные ниже свойства. Дополнительные сведения см. в статье Поведение соединителя XML.
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Свойство type для источника действия копирования должно иметь значение XmlSource. | Да |
formatSettings | Группа свойств. См. таблицу Параметры считывания XML ниже. | No |
storeSettings | Группа свойств, определяющих способ чтения данных из хранилища данных. Каждый файловый соединитель поддерживает собственный набор параметров чтения в разделе storeSettings . Подробные сведения см. в статье о соединителях —> раздел "Свойства действия Copy". |
No |
Поддерживаемые Параметры считывания XML в разделе formatSettings
:
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Для типа formatSettings должно быть задано значение XmlReadSettings. | Да |
validationMode | Указывает, следует ли проверять схему XML. Допустимые значения: none (по умолчанию, без проверки), xsd (проверка с использованием XSD), dtd (проверка с помощью DTD). |
No |
пространства имен | Следует ли включать пространство имен при синтаксическом анализе XML-файлов. Допустимые значения: true (по умолчанию), false. | No |
namespacePrefixes | URI пространства имен для сопоставления с префиксом, который используется для именования полей при синтаксическом анализе XML-файла. Если в XML-файле есть и включено пространство имен, по умолчанию имя поля совпадает с именем в XML-документе. Если в этой карте есть элемент, определенный для URI пространства имен, имя поля будет иметь значение prefix:fieldName . |
No |
detectDataType | Определяет, следует ли обнаруживать типы данных "целое число", double и логические. Допустимые значения: true (по умолчанию), false. | No |
compressionProperties | Группа свойств для распаковки данных для данного кодека сжатия. | No |
preserveZipFileNameAsFolder (в разделе compressionProperties ->type как ZipDeflateReadSettings ) |
Применяется, когда для входного набора данных настроено сжатие ZipDeflate. Указывает, следует ли использовать имя исходного ZIP-файла в качестве имени структуры папок во время копирования. — Если задано значение true (по умолчанию), служба записывает разархивированные файлы в <path specified in dataset>/<folder named as source zip file>/ .— Если задано значение false, служба записывает разархивированные файлы непосредственно в <path specified in dataset> . Чтобы избежать непредвиденных ситуаций, убедитесь в том, что в разных исходных ZIP-файлах нет файлов с одинаковыми именами. |
No |
preserveCompressionFileNameAsFolder (в разделе compressionProperties ->type как TarGZipReadSettings или TarReadSettings ) |
Применяется, когда для входного набора данных настроено сжатие TarGzip/Tar. Указывает, следует ли сохранять имя исходного сжатого файла в качестве имени структуры папок во время копирования. — Если задано значение true (по умолчанию), служба записывает распакованные файлы в <path specified in dataset>/<folder named as source compressed file>/ . — Если задано значение false, служба записывает распакованные файлы непосредственно в <path specified in dataset> . Чтобы избежать непредвиденных ситуаций, убедитесь в том, что в разных исходных файлах нет файлов с одинаковыми именами. |
No |
Свойства потока данных для сопоставления
В потоках данных для сопоставления можно читать и записывать данные формата XML в следующих хранилищах данных: Хранилище BLOB-объектов Azure, Azure Data Lake Storage 1-го поколения, Azure Data Lake Storage 2-го поколения, Amazon S3 и SFTP. Указывать на файлы XML можно либо с помощью набора данных XML, либо с помощью встроенного набора данных.
Свойства источника
В приведенной ниже таблице перечислены свойства, поддерживаемые источником данных XML. Эти свойства можно изменить на вкладке Параметры источника. Дополнительные сведения см. в статье Поведение соединителя XML. При использовании встроенного набора данных будут отображаться дополнительные параметры, совпадающие со свойствами, описанными в разделе Свойства набора данных.
Имя | Описание | Обязательное поле | Допустимые значения | Свойство скрипта для потока данных |
---|---|---|---|---|
Пути с подстановочными знаками | Будут обработаны все файлы, соответствующие пути с подстановочными знаками. Переопределяет папку и путь к файлу, заданные в наборе данных. | No | String[] | wildcardPaths |
Корневой путь раздела | Для секционированных файловых данных можно ввести корневой путь к секции, чтобы считывать секционированные папки как столбцы | Нет | Строка | partitionRootPath |
Список файлов | Сообщает о том, указывает ли источник на текстовый файл, в котором перечислены файлы для обработки. | No | true или false |
fileList |
Столбец для хранения имени файла | Предписывает создать столбец с именем и путем исходного файла. | Нет | Строка | rowUrlColumn |
After completion (После завершения) | Инструкции в отношении удаления или перемещения файлов после обработки. Путь к файлу начинается с корня контейнера. | No | Удаление: true или false Перемещение: ['<from>', '<to>'] |
Очистка файлов moveFiles |
Фильтр по последнему изменению | Задает фильтр для файлов по времени последнего изменения | No | Метка времени | modifiedAfter modifiedBefore |
Режим проверки | Указывает, следует ли проверять схему XML. | No | None (по умолчанию, без проверки)xsd (проверка с помощью XSD)dtd (проверка с помощью DTD). |
validationMode |
Пространства имен | Следует ли включать пространство имен при синтаксическом анализе XML-файлов. | No | true (по умолчанию) или false |
пространства имен |
Пары префиксов пространства имен | URI пространства имен для сопоставления с префиксом, который используется для именования полей при синтаксическом анализе XML-файла. Если в XML-файле есть и включено пространство имен, по умолчанию имя поля совпадает с именем в XML-документе. Если в этой карте есть элемент, определенный для URI пространства имен, имя поля будет иметь значение prefix:fieldName . |
No | Массив с шаблоном['URI1'->'prefix1','URI2'->'prefix2'] |
namespacePrefixes |
Allow no files found (Разрешить ненайденные файлы) | Когда задано значение true, ошибка не возникает, если файлы не найдены | no | true или false |
ignoreNoFilesFound |
Пример сценария источника XML
Ниже приведен сценарий конфигурации источника XML в потоках данных для сопоставления при использовании режима набора данных.
source(allowSchemaDrift: true,
validateSchema: false,
validationMode: 'xsd',
namespaces: true) ~> XMLSource
Ниже приведен сценарий конфигурации источника XML в с помощью встроенного набора данных.
source(allowSchemaDrift: true,
validateSchema: false,
format: 'xml',
fileSystem: 'filesystem',
folderPath: 'folder',
validationMode: 'xsd',
namespaces: true) ~> XMLSource
Поведение соединителя XML
При использовании XML в качестве источника обратите внимание на следующее.
XML-атрибуты:
- Атрибуты элемента анализируются как подполя элемента в иерархии.
- Имя поля атрибута соответствует шаблону
@attributeName
.
Проверка схемы XML:
- Можно выбрать вариант без проверки схемы или проверить схему с помощью XSD либо DTD.
- При использовании XSD или DTD для проверки XML-файлов необходимо ссылаться на XSD/DTD внутри XML-файлов по относительному пути.
Обработка пространств имен:
- Пространство имен можно отключить при использовании потока данных. В этом случае атрибуты, определяющие пространство имен, будут анализироваться так же, как обычные атрибуты.
- При включенном пространстве имен имена элемента и атрибутов следуют шаблону
namespaceUri,elementName
иnamespaceUri,@attributeName
по умолчанию. Можно определить префикс пространства имен для каждого URI пространства имен в источнике. В этом случае имена элемента и атрибутов следуют шаблонуdefinedPrefix:elementName
илиdefinedPrefix:@attributeName
.
Столбец значений:
- Если XML-элемент имеет как простое текстовое значение, так и атрибуты или дочерние элементы, то простое текстовое значение анализируется как значение столбца значений со встроенным именем поля
_value_
. Он также наследует пространство имен элемента, если применимо.
- Если XML-элемент имеет как простое текстовое значение, так и атрибуты или дочерние элементы, то простое текстовое значение анализируется как значение столбца значений со встроенным именем поля