Руководство: выполнение загрузки с помощью синтаксического анализатора CSV

Разбор данных с использованием файлов CSV позволяет загружать CSV-файлы в экземпляр системы Azure Data Manager для энергетики.

В этом руководстве описано, как:

  • Загрузите тестовый CSV-файл данных скважины в экземпляр Azure Data Manager для энергетики с помощью cURL.
  • Выполните поиск записей метаданных хранилища, созданных во время приема CSV-файла с помощью cURL.

Предпосылки

Узнайте подробности об экземпляре Azure Data Manager для энергетики

  • Для работы с этим руководством вам потребуются следующие параметры:
Параметр Значение для использования Пример Где найти это значение
DNS УРИ <instance>.energy.azure.com Найдите это значение на странице обзора экземпляра Azure Data Manager для энергетики.
data-partition-id Секции данных <data-partition-id> Найдите это значение в разделе "Секции данных" в экземпляре Azure Data Manager для энергетики.
access_token Значение токена доступа 0.ATcA01-XWHdJ0ES-qDevC6r........... Следуйте инструкциям по созданию маркера проверки подлинности , чтобы создать маркер доступа и сохранить его.

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

Настройка среды

Убедитесь, что вы cURL установили в системе. Вы будете использовать его для вызова API.

Загрузка данных скважины с помощью cURL

Чтобы загрузить образец CSV-файла данных в экземпляр Azure Data Manager для Energy, выполните следующие действия: замените заполнители (<DNS>, <access_token> и т. д.) соответствующими значениями.

1. Создание схемы

Выполните следующую cURL команду, чтобы создать схему:

curl -X POST "https://<DNS>/api/schema-service/v1/schema" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -H "data-partition-id: <data-partition-id>" \
     -d '{
           "schemaInfo": {
               "schemaIdentity": {
                   "authority": "<data-partition-id>",
                   "source": "shapeFiletest",
                   "entityType": "testEntity",
                   "schemaVersionPatch": 1,
                   "schemaVersionMinor": 0,
                   "schemaVersionMajor": 0
               },
               "status": "DEVELOPMENT"
           },
           "schema": {
               "$schema": "http://json-schema.org/draft-07/schema#",
               "title": "Wellbore",
               "type": "object",
               "properties": {
                   "UWI": {
                       "type": "string",
                       "description": "Unique Wellbore Identifier"
                   }
               }
           }
       }'

Пример ответа:

{
  "id": "schema-12345",
  "status": "DEVELOPMENT"
}

Сохраните id из ответа для использования в последующих шагах.

Выполните следующую cURL команду, чтобы создать юридический тег:

curl -X POST "https://<DNS>/api/legal/v1/legaltags" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -H "data-partition-id: <data-partition-id>" \
     -d '{
           "name": "LegalTagName",
           "description": "Legal Tag added for Well",
           "properties": {
               "contractId": "123456",
               "countryOfOrigin": ["US", "CA"],
               "dataType": "Third Party Data",
               "exportClassification": "EAR99",
               "originator": "Schlumberger",
               "personalData": "No Personal Data",
               "securityClassification": "Private",
               "expirationDate": "2025-12-25"
           }
       }'

Пример ответа:

{
  "name": "LegalTagName",
  "status": "Created"
}

3. Получение подписанного URL-адреса для отправки CSV-файла

Выполните следующую cURL команду, чтобы получить подписанный URL-адрес:

curl -X GET "https://<DNS>/api/file/v2/files/uploadURL" \
     -H "Authorization: Bearer <access_token>" \
     -H "data-partition-id: <data-partition-id>"

Пример ответа:

{
  "SignedURL": "https://storageaccount.blob.core.windows.net/container/file.csv?sv=...",
  "FileSource": "file-source-12345"
}

Сохраните SignedURL и FileSource из ответа для использования в следующих шагах.

4. Отправка CSV-файла

Скачайте пример Wellbore.csv на локальный компьютер. Затем выполните следующую cURL команду, чтобы отправить файл:

curl -X PUT -T "Wellbore.csv" "<SignedURL>" -H "x-ms-blob-type: BlockBlob"     

Пример ответа:

{
  "status": "Success"
}

5. Отправка метаданных CSV-файла

Выполните следующую cURL команду, чтобы отправить метаданные для CSV-файла:

curl -X POST "https://<DNS>/api/file/v2/files/metadata" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -H "data-partition-id: <data-partition-id>" \
     -d '{
           "kind": "osdu:wks:dataset--File.Generic:1.0.0",
           "acl": {
               "viewers": ["data.default.viewers@<data-partition-id>.dataservices.energy"],
               "owners": ["data.default.owners@<data-partition-id>.dataservices.energy"]
           },
           "legal": {
               "legaltags": ["<data-partition-id>-LegalTagName"],
               "otherRelevantDataCountries": ["US"],
               "status": "compliant"
           },
           "data": {
               "DatasetProperties": {
                   "FileSourceInfo": {
                       "FileSource": "<FileSource>"
                   }
               }
           }
       }'

Пример ответа:

{
  "id": "metadata-12345",
  "status": "Created"
}

idСохраните идентификатор отправленного файла из ответа для использования на следующем шаге.

6. Активация рабочего процесса приема синтаксического анализа CSV

Выполните следующую cURL команду, чтобы активировать процесс импорта данных:

curl -X POST "https://<DNS>/api/workflow/v1/workflow/csv-parser/workflowRun" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -H "data-partition-id: <data-partition-id>" \
     -d '{
           "executionContext": {
               "id": "<uploadedFileId>",
               "dataPartitionId": "<data-partition-id>"
           }
       }'

Пример ответа:

{
  "runId": "workflow-12345",
  "status": "Running"
}

Сохраните runId из ответа для использования на следующем шаге.

7. Проверьте состояние рабочего процесса и дождитесь завершения.

Выполните следующую cURL команду, чтобы проверить состояние выполнения рабочего процесса:

curl -X GET "https://<DNS>/api/workflow/v1/workflow/csv-parser/workflowRun/<runId>" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -H "data-partition-id: <data-partition-id>"      

Пример ответа:

{
  "runId": "workflow-12345",
  "status": "Completed"
}

Продолжайте проверять каждые несколько секунд, пока ответ не указывает на успешное завершение.

8. Поиск импортированных записей CSV

Выполните следующую cURL команду, чтобы найти загруженные записи.

curl -X POST "https://<DNS>/api/search/v2/query" \
     -H "Authorization: Bearer <access_token>" \
     -H "Content-Type: application/json" \
     -H "data-partition-id: <data-partition-id>" \
     -d '{
           "kind": "osdu:wks:dataset--File.Generic:1.0.0"
       }'

Пример ответа:

{
  "results": [
    {
      "id": "dataset-12345",
      "kind": "osdu:wks:dataset--File.Generic:1.0.0",
      "status": "Available"
    }
  ]
}

Вы должны видеть записи в результатах поиска.

Следующий шаг

Перейдите к следующему уроку: