Копирование данных из Oracle Cloud Storage с помощью Azure Data Factory или Synapse Analytics

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

В этой статье описано копирование данных из Oracle Cloud Storage. Дополнительные сведения см. в вводных статьях по Azure Data Factory и Synapse Analytics.

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

Соединитель Oracle Cloud Storage поддерживается для следующих возможностей:

Поддерживаемые возможности IR
Copy activity (источник/-) (1) (2)
Операция поиска (1) (2)
Активность получения метаданных (1) (2)
Удаление действия (1) (2)

(1) Azure среды выполнения интеграции (2) локальная среда выполнения интеграции

В частности, этот соединитель Oracle Cloud Storage поддерживает копирование файлов "как есть" или анализ файлов с использованием поддерживаемых форматов файлов и кодеков сжатия. Он использует преимущества взаимодействия Oracle Cloud Storage, совместимого с S3.

Требуемые условия

Чтобы скопировать данные из Oracle Cloud Storage, ознакомьтесь с предварительными требованиями и необходимыми разрешениями здесь.

Начало работы

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

Создание связанной службы для Oracle Cloud Storage с помощью пользовательского интерфейса

Выполните следующие действия, чтобы создать связанную службу с Oracle Cloud Storage в пользовательском интерфейсе портала Azure.

  1. Перейдите на вкладку "Управление" в рабочей области Azure Data Factory или Synapse и выберите "Связанные службы", а затем нажмите кнопку "Создать".

  2. Выполните поиск по запросу "Oracle" и выберите соединитель Oracle Cloud Storage.

    Снимок экрана: соединитель Oracle Cloud Storage.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Снимок экрана: конфигурация связанной службы для Oracle Cloud Storage.

Сведения о конфигурации соединителя

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

Свойства связанной службы

Для связанной службы Oracle Cloud Storage поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
тип Для свойства type необходимо задать значение OracleCloudStorage. Да
accessKeyId Идентификатор секретного ключа доступа. Сведения о том, как найти ключ доступа и секрет, приводятся в разделе Предварительные требования. Да
секретныйКлючДоступа Сам секретный ключ доступа. Пометьте это поле как SecureString для безопасного хранения или для обращения к секрету, хранящемуся в Azure Key Vault. Да
URL сервиса Укажите пользовательскую конечную точку как https://<namespace>.compat.objectstorage.<region identifier>.oraclecloud.com. Подробности см. здесь Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Можно использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных находится в частной сети). Если это свойство не указано, служба использует среду выполнения интеграции по умолчанию Azure. Нет

Приведем пример:

{
    "name": "OracleCloudStorageLinkedService",
    "properties": {
        "type": "OracleCloudStorage",
        "typeProperties": {
            "accessKeyId": "<access key id>",
            "secretAccessKey": {
                "type": "SecureString",
                "value": "<secret access key>"
            },
            "serviceUrl": "https://<namespace>.compat.objectstorage.<region identifier>.oraclecloud.com"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

Ниже перечислены свойства, которые поддерживаются для Oracle Cloud Storage в параметрах location в наборе данных на основе формата:

Свойство Описание: Обязательное поле
тип Свойству type в разделе location набора данных необходимо присвоить значение OracleCloudStorageLocation. Да
Имя корзины Имя контейнера Oracle Cloud Storage. Да
folderPath Путь к папке в заданном контейнере. Если вы хотите использовать подстановочный знак для фильтрации папок, пропустите этот параметр и укажите его в параметрах источника действия. Нет
имя файла Имя файла в заданном контейнере и путь к папке. Если вы хотите использовать подстановочный знак для фильтрации файлов, пропустите этот параметр и укажите его в параметрах источника действия. Нет

Пример:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Oracle Cloud Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "OracleCloudStorageLocation",
                "bucketName": "bucketname",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Свойства Copy activity

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

Oracle Cloud Storage в качестве типа источника

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

Ниже перечислены свойства, которые поддерживаются для Oracle Cloud Storage в настройках storeSettings в источнике копирования, основанном на формате.

Свойство Описание: Обязательное поле
тип Для свойства type в разделе storeSettings необходимо задать значение OracleCloudStorageReadSettings. Да
Найдите файлы для копирования:
ВАРИАНТ 1. Статический путь
Копирование из заданного контейнера или папки/пути к файлу, которые указаны в наборе данных. Если вы хотите скопировать все файлы из контейнера или папки, дополнительно укажите wildcardFileName как *.
ВАРИАНТ 2. Префикс Oracle Cloud Storage
- префикс
Префикс для имени ключа Oracle Cloud Storage в заданном контейнере, настроенном в наборе данных для фильтрации исходных файлов Oracle Cloud Storage. Выбраны ключи Oracle Cloud Storage, имена которых начинаются с bucket_in_dataset/this_prefix. Используется фильтр на стороне службы Oracle Cloud Storage, который более эффективен, чем фильтр с подстановочными знаками. Нет
Вариант 3. Подстановочный знак
— wildcardFolderPath
Путь к папке с подстановочными знаками в заданном контейнере, настроенном в наборе данных для фильтрации исходных папок.
Допустимые знаки подстановки: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу). Используйте ^ для экранирования знаков, если имя папки содержит подстановочный знак или этот escape-символ.
Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
Нет
ВАРИАНТ 4. Подстановочный знак
— wildcardFileName
Имя файла с подстановочными знаками в заданном хранилище и путь к папке (или путь к папке с подстановочными знаками) для фильтрации исходных файлов.
Допустимые знаки подстановки: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу). Используйте ^ для экранирования, если имя файла содержит подстановочный знак или символ экранирования. Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
Да
OPTION 5: список файлов
- fileListPath
Указывает, что нужно скопировать заданный набор файлов. Укажите текстовый файл со списком файлов, которые необходимо скопировать, по одному файлу в строке (каждая строка должна содержать относительный путь к заданному в наборе данных пути).
При использовании этого варианта не указывайте имя файла в наборе данных. Ознакомьтесь с дополнительными примерами в разделе Примеры списков файлов.
Нет
Дополнительные параметры:
рекурсивный Указывает, следует ли читать данные рекурсивно из вложенных каталогов или только из конкретной папки. Обратите внимание, что если для свойства recursive задано значение true, а приемником является файловое хранилище, пустые папки и вложенные папки не создаются в приемнике.
Допустимые значения: true (по умолчанию) и false.
Это свойство не применяется при настройке fileListPath.
Нет
УдалитьФайлыПослеЗавершения Указывает, удаляются ли двоичные файлы из исходного хранилища после успешного перемещения в конечное хранилище. Файлы удаляются поочередно, поэтому в случае сбоя действия копирования вы увидите, что некоторые файлы уже скопированы в место назначения и удалены из источника, в то время как остальные находятся в исходном хранилище.
Это свойство допустимо только в сценарии копирования двоичных файлов. По умолчанию имеет значение false.
Нет
modifiedDatetimeStart Фильтр файлов на основе атрибута времени последнего изменения.
Будут выбраны все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".
Эти свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не будут применяться к этому набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
Это свойство не применяется при настройке fileListPath.
Нет
modifiedDatetimeEnd То же, что выше. Нет
" enablePartitionDiscovery Для секционированных файлов укажите, следует ли анализировать секции из пути к файлу и добавлять их как дополнительные исходные столбцы.
Допустимые значения: false (по умолчанию) и true.
Нет
Корневой путь раздела Если обнаружение секций включено, укажите абсолютный корневой путь, чтобы считывать секционированные папки как столбцы данных.

Если параметр не задан (по умолчанию), происходит следующее.
— При использовании пути к файлу в наборе данных или списке файлов в источнике корневым путем секции считается путь, настроенный в наборе данных.
— При использовании фильтра папки с подстановочными знаками корневым путем раздела считается подчасть пути до первого подстановочного знака.

Предположим, что вы настроили путь в наборе данных следующим образом: "root/folder/year=2020/month=08/day=27".
— Если указать корневой путь секции "root/folder/year=2020", действие копирования в дополнение к указанным в файлах столбцам создаст еще два столбца, month и day, со значениями "08" и "27" соответственно.
— Если корневой путь секции не указан, дополнительные столбцы создаваться не будут.
Нет
максимальное количество одновременных подключений Верхний предел одновременных подключений, установленных в хранилище данных при запуске задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений. Нет

Пример:

"activities":[
    {
        "name": "CopyFromOracleCloudStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "OracleCloudStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Примеры фильтров папок и файлов

В этом разделе описывается итоговое поведение пути папки и имени файла при использовании фильтров с подстановочными знаками.

контейнер ключ рекурсивный Структура исходной папки и результат фильтрации (извлекаются файлы, выделенные полужирным шрифтом)
контейнер Folder*/* ложь контейнер
    ПапкаA
         Файл1.csv
         File2.json
        Вложенная папка1
            File3.csv
            File4.json
            File5.csv
    ДругаяПапкаB
        Файл6.csv
контейнер Folder*/* true контейнер
    ПапкаA
         Файл1.csv
         File2.json
        Вложенная папка1
             File3.csv
             File4.json
             File5.csv
    ДругаяПапкаB
        Файл6.csv
контейнер Folder*/*.csv ложь контейнер
    ПапкаA
         Файл1.csv
        File2.json
        Вложенная папка1
            File3.csv
            File4.json
            File5.csv
    ДругаяПапкаB
        Файл6.csv
контейнер Folder*/*.csv true контейнер
    ПапкаA
         Файл1.csv
        File2.json
        Вложенная папка1
             File3.csv
            File4.json
             File5.csv
    ДругаяПапкаB
        Файл6.csv

Примеры списков файлов

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

Предположим, что у вас есть следующая исходная структура папок и вы хотите скопировать файлы, выделенные полужирным шрифтом:

Пример исходной структуры Содержимое в файле FileListToCopy.txt Настройка
контейнер
    ПапкаA
         Файл1.csv
        File2.json
        Вложенная папка1
             File3.csv
            File4.json
             File5.csv
    Метаданные
        FileListToCopy.txt
Файл1.csv
Вложенная_папка1/Файл3.csv
Подпапка1/Файл5.csv
В наборе данных:
– Контейнер: bucket
– Путь к папке: FolderA

В источнике процесса копирования:
– Путь к списку файлов: bucket/Metadata/FileListToCopy.txt

Путь к списку файлов указывает на текстовый файл в том же хранилище данных, который содержит список файлов, которые вы хотите скопировать, с указанием одного файла на строку и относительным путем, который соответствует маршруту, настроенному в наборе данных.

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

Подробные сведения об этих свойствах см. в разделе Действие поиска.

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

Подробные сведения об этих свойствах см. в статье Действие GetMetadata.

Удалить свойства активности

Чтобы узнать подробности о свойствах, проверьте раздел Удаление действий.

Список хранилищ данных, поддерживаемых Copy activity в качестве источников и приемников, см. в разделе Сопортированные хранилища данных.