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


Формат файлов Excel на Фабрике данных Azure и в Azure Synapse Analytics

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

Совет

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

Если вам требуется анализировать файлы Excel, следуйте инструкциям, приведенным в этой статье. Служба поддерживает расширения XLS и XLSX.

Формат Excel поддерживается для следующих соединителей: 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. Он поддерживается в качестве источника, но не в качестве приемника.

Примечание.

Формат XLS не поддерживается при использовании протокола HTTP.

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

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

Свойство Описание: Обязательное поле
type Для свойства type набора данных необходимо задать значение Excel. Да
расположение Параметры расположения файлов. Каждый файловый соединитель имеет собственный тип расположения и поддерживает собственный набор свойств в разделе location. Да
sheetName Имя листа Excel для чтения данных. Следует задать значение sheetName или sheetIndex
sheetIndex Индекс листа Excel для чтения данных (начинается с 0). Следует задать значение sheetName или sheetIndex
range Диапазон ячеек на данном листе для нахождения избранных данных, например:
- не указано: считывается весь лист в виде таблицы из первой непустой строки и столбца;
- A3: таблица считывается, начиная с заданной ячейки, при этом динамически обнаруживаются все строки ниже и все столбцы справа;
- A3:H5: указанный фиксированный диапазон считывается в виде таблицы;
- A3:A3: считывается указанная отдельная ячейка.
No
firstRowAsHeader Следует ли рассматривать первую строку в заданном листе или диапазоне как строку заголовка с именами столбцов.
Допустимые значения: true и false (по умолчанию).
No
nullValue Задает строковое представление значения NULL.
Значение по умолчанию — пустая строка.
No
compression Группа свойств для настройки сжатия файлов. Настройте этот раздел, если требуется сжатие/распаковка при выполнении действия. No
type
(в разделеcompression)
Кодек сжатия, используемый для чтения и записи двоичных файлов JSON.
Допустимые значения: bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy, lz4. Значение по умолчанию — без сжатия.
Примечание. В настоящее время действие Copy не поддерживает кодек "snappy" и "lz4", а поток данных сопоставления не поддерживает кодеки "ZipDeflate", "TarGzip"и"Tar".
Примечание. При использовании действия Copy для распаковки файлов с помощью кодека ZipDeflate и записи в хранилище файловых данных приемника файлы извлекаются в папку <path specified in dataset>/<folder named as source zip file>/.
level
(в разделеcompression)
Коэффициент сжатия.
Допустимые значения: оптимальный или самый быстрый.
- Fastest: операция сжатия должна выполняться как можно быстрее, даже если итоговый файл будет сжат не оптимально.
- Optimal: операция сжатия должна выполняться оптимально, даже если для ее завершения требуется больше времени. Дополнительные сведения см. в разделе Уровень сжатия.
No

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

{
    "name": "ExcelDataset",
    "properties": {
        "type": "Excel",
        "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",
            },
            "sheetName": "MyWorksheet",
            "range": "A3:H5",
            "firstRowAsHeader": true
        }
    }
}

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

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

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

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

Свойство Описание: Обязательное поле
type Для свойства type действия Copy необходимо задать значение ExcelSource. Да
storeSettings Группа свойств, определяющих способ чтения данных из хранилища данных. Каждый файловый соединитель поддерживает собственный набор параметров чтения в разделе storeSettings. No
"activities": [
    {
        "name": "CopyFromExcel",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "ExcelSource",
                "storeSettings": {
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            ...
        }
        ...
    }
]

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

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

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

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

Имя Описание Обязательное поле Допустимые значения Свойство скрипта для потока данных
Пути с подстановочными знаками Будут обработаны все файлы, соответствующие пути с подстановочными знаками. Переопределяет папку и путь к файлу, заданные в наборе данных. 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

Пример источника

Ниже приведен пример конфигурации источника Excel в потоках данных для сопоставления при использовании режима набора данных.

Источник Excel

Связанный скрипта потока данных:

source(allowSchemaDrift: true,
    validateSchema: false,
    wildcardPaths:['*.xls']) ~> ExcelSource

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

Встроенный набор данных источника Excel

Связанный скрипта потока данных:

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'excel',
    fileSystem: 'container',
    folderPath: 'path',
    fileName: 'sample.xls',
    sheetName: 'worksheet',
    firstRowAsHeader: true) ~> ExcelSourceInlineDataset

Обработка очень больших файлов Excel

Соединитель Excel не поддерживает потоковое чтение для действия Copy и должен загрузить весь файл в память, прежде чем данные будут считываться. Чтобы импортировать схему, просмотреть данные или обновить набор данных Excel, данные должны возвращаться до истечения времени ожидания HTTP-запроса (100 с). Для больших файлов Excel эти операции могут не завершиться в течение этого периода времени, что приведет к ошибке тайм-аута. Если вы хотите переместить большие файлы Excel (>100 МБ) в другое хранилище данных, можно использовать один из следующих вариантов, чтобы обойти это ограничение:

  • Используйте локальную среду выполнения интеграции (SHIR), а затем используйте действие Copy для перемещения большого файла Excel в другое хранилище данных с помощью SHIR.
  • Разделите большой Excel файл на несколько небольших, а затем используйте действие Copy для перемещения папки, содержащей файлы.
  • Используйте действие потока данных для перемещения большого файла Excel в другое хранилище данных. Поток данных поддерживает потоковое чтение для Excel и может быстро перемещать / передавать большие файлы.
  • Вручную преобразуйте большой файл Excel в формат CSV, а затем используйте действие Copy для перемещения файла.