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


Действие Get Metadata в Фабрике данных Azure или Azure Synapse Analytics

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

Совет

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

Действие Get Metadata можно использовать для получения метаданных любых данных в конвейере Фабрики данных Azure или Synapse. Выходные данные действия получения метаданных можно использовать в условных выражениях для выполнения проверки. Кроме того, полученные метаданные можно использовать в последующих действиях.

Создание действия "Получение метаданных" с помощью пользовательского интерфейса

Чтобы использовать действие "Получить метаданные " в конвейере, выполните следующие шаги:

  1. Выполните поиск элемента Получить метаданные на панели конвейера "Действия" и перетащите действие "Сбой" на холст конвейера.

  2. Выберите новое действие "Получить метаданные" на холсте, если оно еще не выбрано, и вкладка "Параметры " для изменения сведений.

  3. Выберите набор данных или создайте новый с помощью кнопки "Создать". Затем можно указать параметры фильтра и добавить столбцы из доступных метаданных для набора данных.

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

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

    Показывает конвейер с действием Switch, добавленным для обработки выходных данных действия Get Metadata.

  5. В редакторе динамического содержимого выберите выходные данные действия "Получить метаданные", чтобы сослаться на него в другом действии.

    Отображает редактор динамического содержимого с выходными данными действия Get Metadata в качестве динамического содержимого.

Поддерживаемые возможности

Действие получения метаданных принимает в качестве входных данных набор данных и возвращает сведения о метаданных. Сейчас поддерживаются приведенные ниже соединители и соответствующие извлекаемые метаданные. Максимальный размер возвращаемых метаданных — 4 МБ.

Поддерживаемые соединители

Хранилище файлов

Соединитель и метаданные itemName
(файл или папка)
itemType
(файл или папка)
size
(файл)
создаются
(файл или папка)
lastModified1
(файл или папка)
childItems
(папка)
contentMD5
(файл)
structure2
(файл)
columnCount2
(файл)
exists3
(файл или папка)
Amazon S3 √/√ √/√ x/x √/√ x √/√
Совместимое хранилище Amazon S3 √/√ √/√ x/x √/√ x √/√
Google Cloud Storage √/√ √/√ x/x √/√ x √/√
Хранилище Oracle Cloud √/√ √/√ x/x √/√ x √/√
Хранилище BLOB-объектов Azure √/√ √/√ x/x √/√ √/√
Azure Data Lake Storage 1-го поколения √/√ √/√ x/x √/√ x √/√
Azure Data Lake Storage 2-го поколения √/√ √/√ x/x √/√ √/√
Файлы Azure √/√ √/√ √/√ √/√ x √/√
Microsoft Fabric Lakehouse √/√ √/√ x/x √/√ √/√
Файловая система √/√ √/√ √/√ √/√ x √/√
SFTP √/√ √/√ x/x √/√ x √/√
FTP √/√ √/√ x/x x/x x √/√

1 Метаданные lastModified.

  • Для Amazon S3, хранилища, совместимого с Amazon S3, Google Cloud Storage и Oracle Cloud Storage метаданные lastModified применяются к контейнеру и ключу, но не к виртуальной папке, а метаданные exists применяются к контейнеру и ключу, но не к префиксу или виртуальной папке.
  • Для хранилища BLOB-объектов Azure метаданные lastModified применяются к контейнерам и большим двоичным объектам, но не с виртуальным папкам.

2 Метаданные structure и columnCount не поддерживаются при получении метаданных из двоичных файлов, JSON- и XML-файлов.

3 Метаданные exists. Для Amazon S3, хранилища, совместимого с Amazon S3, Google Cloud Storage и Oracle Cloud Storage метаданные exists применяется к контейнеру и ключу, но не к префиксу или виртуальной папке.

Обратите внимание на следующее:

  • При использовании действия получения метаданных для папки убедитесь, что у вас есть разрешение LIST/EXECUTE для данной папки.

  • Для действия получения метаданных не поддерживается фильтр с подстановочными знаками для папок и файлов.

  • Для соединителя задаются фильтры modifiedDatetimeStart и modifiedDatetimeEnd.

    • Эти два свойства используются для фильтрации дочерних элементов при получении метаданных из папки. Они не применяются при получении метаданных из файла.
    • При использовании такого фильтра childItems в выходные данных добавляются только те файлы, которые были изменены за указанный период, но не являются папками.
    • Чтобы применить такой фильтр, действие получения метаданных будет перечислять все файлы в указанной папке и проверять время изменения. Не следует указывать на папку с большим количеством файлов, даже если ожидаемое число соответствующих файлов мало.

Реляционная база данных

Соединитель и метаданные отчета columnCount существует
Amazon RDS для SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
SQL Server

Параметры метаданных

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

Тип метаданных Description
itemName Имя файла или папки.
itemType Тип файла или папки. Возвращаемое значение — File или Folder.
size Размер файла в байтах. Применяется только к файлам.
создаются Дата и время создания файла или папки.
lastModified Дата и время последнего изменения файла или папки.
childItems Список вложенных папок и файлов в указанной папке. Применяется только к папкам. Возвращаемое значение представляет собой список имен и типов дочерних элементов.
contentMD5 Сверка MD5 файла. Применяется только к файлам.
отчета Структура данных файла или таблицы реляционной базы данных. Возвращаемое значение представляет собой список имен и типов столбцов.
columnCount Число столбцов в файле или реляционной таблице.
существует Существует ли файл, папка или таблица. Если в списке полей получения метаданных указано значение exists, то действие не завершится сбоем, даже если файл, папка или таблица не существует. Вместо этого в выходных данных возвращается exists: false.

Совет

Если необходимо проверить, существует ли файл, папка или таблица, укажите exists в списке полей действия получения метаданных. Затем можно проверить результат exists: true/false в выходных данных действия. Если значение exists не указано в списке полей, то действие получения метаданных завершится ошибкой, если объект будет не найден.

Примечание.

Если при получении метаданных из хранилищ файлов настроить modifiedDatetimeStart или modifiedDatetimeEnd, то в выходные данные childItems будут включены только файлы по указанному пути, время последнего изменения которых находится в указанном диапазоне. Элементы во вложенных папках включены не будут.

Примечание.

Чтобы в списке полей Structure обеспечить реальную структуру данных для наборов данных с разделителями текста и в формате Excel, необходимо включить свойство First Row as Header, которое поддерживается только для этих источников данных.

Синтаксис

Действие получения метаданных в фабрике данных Azure

{
    "name":"MyActivity",
    "type":"GetMetadata",
    "dependsOn":[

    ],
    "policy":{
        "timeout":"7.00:00:00",
        "retry":0,
        "retryIntervalInSeconds":30,
        "secureOutput":false,
        "secureInput":false
    },
    "userProperties":[

    ],
    "typeProperties":{
        "dataset":{
            "referenceName":"MyDataset",
            "type":"DatasetReference"
        },
        "fieldList":[
            "size",
            "lastModified",
            "structure"
        ],
        "storeSettings":{
            "type":"AzureBlobStorageReadSettings"
        },
        "formatSettings":{
            "type":"JsonReadSettings"
        }
    }
}

Набор данных

{
    "name":"MyDataset",
    "properties":{
        "linkedServiceName":{
            "referenceName":"AzureStorageLinkedService",
            "type":"LinkedServiceReference"
        },
        "annotations":[

        ],
        "type":"Json",
        "typeProperties":{
            "location":{
                "type":"AzureBlobStorageLocation",
                "fileName":"file.json",
                "folderPath":"folder",
                "container":"container"
            }
        }
    }
}

Свойства типа

Сейчас с помощью действия получения метаданных можно получать приведенные ниже типы сведений о метаданных.

Свойство Описание: Обязательное поле
fieldList Типы необходимых сведений о метаданных. Дополнительные сведения о поддерживаемых метаданных см. в разделе Параметры метаданных этой статьи. Да
набор данных Эталонный набор данных, метаданные которого требуется получить с помощью действия получения метаданных. Сведения о поддерживаемых соединителях см. в разделе Возможности. Сведения о синтаксисе наборов данных приведены в разделах, посвященных конкретным соединителям. Да
formatSettings Применяется при использовании набора данных типа с форматированием. No
storeSettings Применяется при использовании набора данных типа с форматированием. No

Пример полученных результатов

Результаты получения метаданных отображаются в выходных данных действия. Ниже приведены два примера, в которых показано множество параметров метаданных. Чтобы использовать эти результаты в последующем действии, следует применить шаблон @{activity('MyGetMetadataActivity').output.itemName}.

Получение метаданных файла

{
  "exists": true,
  "itemName": "test.csv",
  "itemType": "File",
  "size": 104857600,
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "contentMD5": "cMauY+Kz5zDm3eWa9VpoyQ==",
  "structure": [
    {
        "name": "id",
        "type": "Int64"
    },
    {
        "name": "name",
        "type": "String"
    }
  ],
  "columnCount": 2
}

Получение метаданных папки

{
  "exists": true,
  "itemName": "testFolder",
  "itemType": "Folder",
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "childItems": [
    {
      "name": "test.avro",
      "type": "File"
    },
    {
      "name": "folder hello",
      "type": "Folder"
    }
  ]
}

Ознакомьтесь с другими поддерживаемыми действиями потока управления: