Поделиться через


Формат Avro в Фабрике данных Azure и Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Если вам требуется анализировать файлы Avro или записывать данные в формате Avro, следуйте инструкциям, приведенным в этой статье.

Формат Avro поддерживается для следующих соединителей: Amazon S3, хранилище, совместимое с Amazon S3, BLOB-объекты Azure, Azure Data Lake Storage 1-го поколения, Azure Data Lake Storage 2-го поколения, Файлы Azure, файловая система, FTP, облачное хранилище Google, HDFS , HTTP, Oracle Cloud Storage и SFTP.

Свойства набора данных

Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. В этом разделе приведен список свойств, поддерживаемых набором данных Avro.

Свойство Описание: Обязательное поле
type Для свойства type набора данных необходимо задать значение Avro. Да
расположение Параметры расположения файлов. Каждый файловый соединитель имеет собственный тип расположения и поддерживает собственный набор свойств в разделе location. Подробные сведения см. в статье о соединителях —> раздел "Свойства набора данных". Да
avroCompressionCodec Кодек сжатия, используемый при записи в файлы Avro. При чтении из файлов Avro служба автоматически определяет кодек сжатия по метаданным файла.
Поддерживаемые типы: "none" (по умолчанию), "deflate", "snappy". Примечание. В настоящее время действие Copy не поддерживает кодек Snappy при чтении и записи файлов Avro.
No

Примечание.

Пробелы в именах столбцов файлов Avro не поддерживаются.

Ниже приведен пример набора данных Avro в хранилище BLOB-объектов Azure:

{
    "name": "AvroDataset",
    "properties": {
        "type": "Avro",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "avroCompressionCodec": "snappy"
        }
    }
}

Свойства действия копирования

Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры и действия в фабрике данных Azure. В этом разделе приведен список свойств, поддерживаемых источником и приемником Avro.

Avro в качестве источника

В разделе источника *source* действия копирования поддерживаются указанные ниже свойства.

Свойство Описание: Обязательное поле
type Для свойства type источника действия Copy необходимо задать значение AvroSource. Да
storeSettings Группа свойств, определяющих способ чтения данных из хранилища данных. Каждый файловый соединитель поддерживает собственный набор параметров чтения в разделе storeSettings. Подробные сведения см. в статье о соединителях —> раздел "Свойства действия Copy". No

Avro в качестве приемника

В разделе *sink* действия Copy поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Для свойства type источника действия Copy необходимо задать значение AvroSink. Да
formatSettings Группа свойств. См. таблицу Параметры записи Avro ниже. No
storeSettings Группа свойств, определяющих способы записи данных в хранилище данных. Каждый файловый соединитель поддерживает собственный набор параметров записи в разделе storeSettings. Подробные сведения см. в статье о соединителях —> раздел "Свойства действия Copy". No

Поддерживаемые параметры записи Avro в разделе formatSettings:

Свойство Описание: Обязательное поле
type Для параметра type свойства formatSettings необходимо задать значение AvroWriteSettings. Да
maxRowsPerFile Можно выбрать режим записи данных в папку с разбиением на несколько файлов и указать максимальное число строк в одном таком файле. No
fileNamePrefix Это свойство применимо, если задано свойство maxRowsPerFile.
Оно задает префикс, добавляемый к имени файла при записи данных с разбиением на несколько файлов. Имя присваивается по следующему шаблону: <fileNamePrefix>_00000.<fileExtension>. Если это свойство не задано, то префикс имени файла будет создан автоматически. Это свойство не применяется, если источником является файловое хранилище или хранилище данных с поддержкой разделов.
No

Свойства потока данных для сопоставления

В потоках данных для сопоставления можно читать и записывать данные формата Avro в следующих хранилищах данных: Хранилище BLOB-объектов Azure, Azure Data Lake Storage 1-го поколения, Azure Data Lake Storage 2-го поколения и SFTP; также чтение формата Avro поддерживается Amazon S3.

Свойства источника

В приведенной ниже таблице перечислены свойства, поддерживаемые источником данных Avro. Изменить эти свойства можно на вкладке Source options (Параметры источника).

Имя Описание Обязательное поле Допустимые значения Свойство скрипта для потока данных
Пути с подстановочными знаками Будут обработаны все файлы, соответствующие пути с подстановочными знаками. Переопределяет папку и путь к файлу, заданные в наборе данных. no String[] wildcardPaths
Корневой путь раздела Для секционированных файловых данных можно ввести корневой путь к секции, чтобы считывать секционированные папки как столбцы no Строка partitionRootPath
Список файлов Сообщает о том, указывает ли источник на текстовый файл, в котором перечислены файлы для обработки. no true или false fileList
Столбец для хранения имени файла Предписывает создать столбец с именем и путем исходного файла. no Строка rowUrlColumn
After completion (После завершения) Инструкции в отношении удаления или перемещения файлов после обработки. Путь к файлу начинается с корня контейнера. no Удаление: true или false
Перемещение: ['<from>', '<to>']
Очистка файлов
moveFiles
Фильтр по последнему изменению Задает фильтр для файлов по времени последнего изменения no Метка времени modifiedAfter
modifiedBefore
Allow no files found (Разрешить ненайденные файлы) Когда задано значение true, ошибка не возникает, если файлы не найдены no true или false ignoreNoFilesFound

Свойства приемника

В приведенной ниже таблице перечислены свойства, поддерживаемые приемником данных Avro. Эти свойства можно изменить на вкладке Параметры.

Имя Описание Обязательное поле Допустимые значения Свойство скрипта для потока данных
Clear the folder (Очистить папку) Указывает, очищается ли конечная папка перед записью no true или false truncate
File name option (Параметр имени файла) Формат именования записываемого файла данных. По умолчанию — по одному файлу на секцию в формате part-#####-tid-<guid> no Шаблон: строка
На секцию: String[]
Как данные в столбце: Строка
Вывод в один файл: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames
Заключать все в кавычки Предписывает заключать все значения в кавычки. no true или false quoteAll

Поддержка типов данных

Действие копирования

Сложные типы данных Avro (записи, перечисления, массивы, сопоставления, объединения и фиксированные данные) не поддерживаются действием Copy.

Потоки данных

При работе с файлами Avro в потоках данных можно читать и записывать сложные типы данных, но сначала следует удалить физическую схему из набора данных. В потоках данных можно задать логическую проекцию и производные столбцы, являющиеся сложными структурами, а затем автоматически сопоставлять эти поля с полями файла Avro.