你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:执行 CSV 解析器导入

逗号分隔值(CSV)分析器引入提供将 CSV 文件引入到 Azure Data Manager for Energy 实例的功能。

本教程中,您将学习如何:

  • 使用 cURL 将示例井口数据 CSV 文件引入到 Azure Data Manager for Energy 实例中。
  • 使用 cURL 搜索在 CSV 引入期间创建的存储元数据记录。

先决条件

获取 Azure Data Manager for Energy 实例的详细信息

  • 在本教程中,需要以下参数:
参数 要使用的值 示例: 在何处查找此值
DNS URI <instance>.energy.azure.com 在 Azure Data Manager for Energy 实例的概述页上找到此值。
data-partition-id 数据分区 <data-partition-id> 在 Azure Data Manager for Energy 实例中的“数据分区”部分找到此值。
access_token 访问令牌值 0.ATcA01-XWHdJ0ES-qDevC6r........... 按照 如何生成身份验证令牌 来创建访问令牌并将其保存。

按照 “管理用户指南 ”为运行本教程的用户添加适当的权利。

配置你的环境

请确保在您的系统上安装了 cURL。 你将使用它进行 API 调用。

使用 cURL 引入井口数据

若要将示例井口数据 CSV 文件引入到 Azure Data Manager for 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.获取用于上传 CSV 文件的签名 URL

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"
}

SignedURLFileSource从响应中保存,以用于后续步骤。

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从响应中保存上传的文件 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"
    }
  ]
}

应该能够查看搜索结果中的记录。

后续步骤

转到下一教程: