Skip to content

Semantic Data Interconnect (SDI) Data Management

构想

Semantic Data Interconnect (SDI) Data Management 相关 API 处理数据注册和准备的整个工作流。SDI 提供了一种简单的方法来准备用于建立语义关联和数据查询处理的数据。使用SDI 的阶段包括:

关于这些阶段的更多信息请参考基础.

访问

要访问此服务,您需要在 SDI 角色和范围中列出相应的角色。

应用用户可以使用 REST 客户端访问 REST API。用户需要不同的角色来访问 SDI 数据查询服务的不同 APIs。

说明

SDI Data Query Service APIs 由 MindSphere 使用 OAUTH 凭证认证方法保护。

基础

数据注册

数据科学家或分析师决定数据的数据源和分类、数据标记名称、数据上传策略(替换/追加)和文件类型(JSON、CSV、Parquet 或\和 XML)。一旦做出这些决定,就可以使用数据注册 API 来创建注册。 数据注册 API 用于组织输入的数据。在配置数据注册时,可以基于替换或追加策略更新数据。

在每个数据摄取操作期间,替换策略将替换现有的模式和数据,而追加策略将更新现有的模式和数据。 例如,如果模式更改和传入的数据文件每次都完全不同,那么可以使用替换策略。

自定义数据类型

默认情况下,SDI 标识每个属性的基本数据类型,如字符串、整数、浮点数、日期等。 一旦确定了数据源和数据类型,用户就可以使用正则表达式模式提供自定义数据类型,以便 SDI 可以在模式创建期间应用该类型。开发人员可以使用自定义数据类型 API 来管理自定义类型。
用户可以使用这组 API 创建自己的自定义数据类型。SDI 还提供了一个 API 来根据用户提供的示例测试值建议数据类型。自定义数据类型包含数据类型名称和一个或多个需要与传入数据匹配的正则表达式模式。SDI 还提供建议并帮助确定数据类型的正则表达式。这将返回一个包含给定测试和示例值的可能的正则表达式匹配器列表。用户可以选择最匹配示例值的正则表达式模式,并将这些模式注册为自己的自定义数据类型。
SDI 也支持删除未使用的自定义数据类型。如果自定义数据类型仍然被模式使用,则该类型不能被删除。

数据摄取

开发人员可以使用数据摄取 API 将数据输入 SDI,这样就可以通过查询和语义模型创建过程来创建模式。Integrated Data Lake (IDL) 用户应该遵循 Data Lake APIs 来为 SDI 处理数据。 数据摄取是为模式创建模式和数据管理的起点。一旦为数据源创建了有效的注册,用户就可以执行文件上传并启动数据摄取过程来创建模式。这用于从各种系统上传文件,并启动 SDI 的数据摄取过程。目前 SDI 支持 JSON、XML、Parquet 和 CSV 文件格式的企业数据和时间序列数据的 Parquet 格式。SDI 支持以下两种数据摄取方式:

Integrated Data Lake (IDL) 客户

如果您是使用 SDI 与 IDL 进行企业和 IoT 数据的 IDL 新客户,您应该遵循以下步骤:

  1. 购买 SDI 和 IDL base plan.
  2. 默认情况下,SDI 允许对 sdi 目录下分配的租户进行交叉账户访问。
  3. SDI 使用 POST/objectEventSubscriptions IDL 端点在将 SDI 和 IDL 提供给租户时订阅 SDI 主题。IDL 将随时通知此文件夹的更改。
  4. 通过 IDL API - GET/objects 检索 <storageAccount>。 使用响应中的 storageAccount 向 SDI 注册 IDL datalake 。
  5. 通过使用有效载荷 {"type": "MindSphere", "name": "idl", "bashPath": "<customer_root>"} 调用 POST/dataLakes 向 SDI 注册 IDL datalake。
  6. 上传至 sdi 目录的企业数据或导入至 sdi 目录的 MindSphere IoT 数据将根据收到的 IDL 通知进行处理。
  7. 如果用户希望 SDI 处理来自不同于 sdi 目录的文件,那么重复步骤2和3,以便 SDI 处理针对该目录上传的文件。
企业数据流
  1. 使用 SDI 文档的按照数据注册 API 描述创建一个数据注册。一旦创建了数据注册,SDI 将返回 registryId
  2. 保存林数据注册获取到的 registryId
  3. 识别需要为给定的 registryId 上传的文件,并使用IDL POST/objectMetadata/{objectpath} API 为文件创建元数据。

  {"tags": ["registryId” :_”<registry id>"]}
如果输入文件包含 XML,并且 XML 文件没有默认的 rootTag 标识,或者您希望为一个文件提供不同的 rootTag,那么在上面的元数据创建中添加这个标记:

  {"tags": ["registryId” :_”<registry id>", "rootTag” : “<root tag>”  #if not using defaultRootTag or want to use different rootTag>"]}
4. 您可以上传文件,SDI 将为每次上传从 IDL 检索消息,并为上传的文件创建一个模式。如果你使用 Postman 上传文件,请确保通过 IDL 生成的 URL 上传文件时选择 binary 选项。 5. 使用 SDI 的 searchSchema 检索上传文件的所有模式,并使用 SDI API 创建查询。

IoT 数据流
  1. 识别希望 SDI 处理数据的 Asset 和 Aspect。使用 POST /iotDataRegistries 端点为给定Asset 和 Aspect 使用 SDI 数据注册创建 API 创建 IoT 数据注册。
  2. 创建 IoT 数据注册后,使用 IDL API 通过 POST /timesSeriesImportJobs 端点执行导入。
  3. 一旦执行了 timeSeriesImportJobs 并将数据存储到 SDI 订阅的路径中,IDL 将向 SDI 发送一条消息。
  4. 导入到 SDI 订阅目录中的 Timeseries 数据将由 SDI 使用并在查询中使用就绪。
  5. 使用 SDI 的搜索模式来检索上传文件的所有模式,并开始使用 SDI API编写查询。

Data Lakes 用户

用户需要额外的 SDI 数据存储升级来启用 SDI 中的数据存储。用户可以使用 SDI POST /dataUpload API 上传 JSON、CSV、Parquet 或 XML文件。 一旦数据被上传到 SDI 中,用户就可以按照这组 API 将数据摄取到 SDI 中并查看作业状态。摄入的作业必须匹配有效的数据注册。POST /ingestJobs 将为每个作业生成 jobId, GET /ingestJobStatus/{id} 可用于跟踪该作业的状态。当 SDI 创建一个模式并准备好查询数据时,就成功了。

搜索模式

一旦 ingestJobs 成功,该模式就可用。模式注册允许用户根据以下内容检索模式:

  • 企业类别的源名称、数据标记或模式名称。
  • IoT 类别的 assetId, aspectName, 或 schema name。

功能

数据注册

这是任何数据被摄取或连接到 SDI 以进行模式提取或查询执行之前的第一步。数据分析师或管理员需要注册用于分析和语义建模的数据源。

注册包括数据源名称、数据标记(或源中的子源/表)、文件模式、文件上传策略。SDI 当前支持 csv, json 或 xml。文件名后缀必须是 csv, xml 或 json 文件类型。下面是不同类型的示例文件模式: 示例文件模式支持不同的扩展名: [a-z]+.json (JSON 文件类型), [a-z]+.csv (CSV 文件类型), [a-z]+.xml (XML 文件类型)。 SDI 可以接受这些格式的多个扩展名: [a-z]+.(json|csv|xml) 按实际需求用支持的文件名替换[a-z]。

对于基于文件的批处理数据摄取,SDI 提供了各种文件上载数据管理策略。目前,SDI 提供了**Append** 和 Replace 两种策略,可以为数据源中的每个 datatag 设置这两种策略。

  • Append: 它连接为源和数据标签而摄取的文件。如果模式匹配,它提供一个成功响应,否则,它创建附加到现有模式。此策略可用于从数据上载 API 获取基于批处理的数据。
  • Replace: 此数据管理策略将替换对应源和数据标记的整个数据集。这种策略在更新元数据类型的信息时非常有用。

数据注册服务主要用于两个目的:

  1. 为租户维护注册信息: 使用此服务,您可以使用此服务创建特定于域的注册项。这个注册是任何分析和文件上传的起点。数据注册允许根据将要上载的文件模式和区域来限制将要上载的文件类型。SDI 将根据文件上传策略替换或附加现有数据。以下端点可用于创建和检索客户创建的数据注册表:

    • /dataRegistries POST
    • /dataRegistries/{id} PATCH
    • /dataRegistries/{id} GET
    • /dataRegistries GET
  2. 为给定租户创建自定义数据类型: 此端点允许您创建可在模式提取期间使用的示例正则表达式模式。这有助于根据可用的示例值生成正则表达式模式,然后注册一个或多个系统生成的正则表达式模式。它还允许您检索生成的模式。SDI 系统在根据上传文件提取模式时默认使用一组正则表达式。如果承租者在此服务中使用自定义生成的正则表达式提供了自定义数据类型,那么还将使用这些数据类型来推断上传文件中的数据类型。可以使用以下端点:

    • /suggestPatterns POST - 为给定的一组样本值生成正则表达式模式。
    • /dataTypes/{name} GET - 检索租户的数据类型和数据类型名称。
    • /dataTypes/{name} DELETE - 删除租户的指定名称数据类型。只有该类型未被任何模式使用时才能删除。
    • /dataTypes GET – 检索租户的数据类型。
    • /dataTypes POST - 根据生成的示例值或客户创建的数据类型向租户注册数据类型。
    • /dataTypes/{name}/addPatterns– POST – 更新已注册的数据类型。

数据摄取

注册完成后,可以从集成 Integrated Data Lakes 或客户数据湖获取原始数据。更多信息请参考基础。 它作为 SDI 应用的数据摄取起点。目前,SDI 支持CSV、JSON、Parquet 和 XML 格式的特定于域的文件。以下两个场景可以用来上传文件:

  1. 使用 SDI 上传文件: 这是首选模式。一旦将文件上传到 IDL, SDI 将使用正确的配置开始处理该文件。有关配置 IDL 的更多信息,请参阅 Integrated Data Lake Service 小节。
  2. 上传具有有效数据源注册的文件: 此方法用于仅使用 SDI 的客户。因为它允许对数据注册表进行更多验证,并基于在数据注册表下创建的不同域创建多个模式。使用此模式,您可以创建来自不同领域的模式组合,查询它们或用于分析建模。

在 Data Management 中,SDI 调度一个自动提取、加载和转换(ELT)作业来从数据中提取/推断模式。然后根据每个数据源和与这些数据源对应的数据标记存储模式。

Schema 进化 Schema 更改仅适用于追加策略。如果 schema 从一个数据摄取更改为另一个数据摄取,那么当发现新属性时,SDI 将负责合并 schema。如果属性在不同的摄取过程中包含不兼容的数据类型,则 SDI 将该类型更新为包含类型。包含类型最多可容纳现有数据的5000条记录,对于不兼容的数据类型更改5000条记录后,现有数据的 schema 被认为是稳定的。

用户可以搜索这些摄入或链接数据的模式来:

  • 基于物理模式构建查询
  • 通过将业务属性映射到物理模式属性来开发语义模型
  • 获取选定模式的初始推断语义模型
  • 基于创建的语义模型构建查询

模式注册服务主要用于维护租户的模式。模式使用 datasource_dataTag 的默认名称格式存储。如果摄取的文件是通过快速 SDI 处理摄取的,那么 fly- schema 名称就是文件的名称。

SDI 系统在上传文件后提取并存储模式。用户可以使用数据标签、模式名和源名搜索 SDI 系统创建的模式。可以使用空列表搜索多个模式,也可以根据以上参数提供过滤列表来搜索系统生成的模式。

在模式提取过程中,SDI将添加一个列sdiLastModifiedDate,该列存储文件被摄取的时间。在相应的作业状态中,响应中的startedDate 将与sdiLastModifiedDate中的值相同。可以使用查询中的sdiLastModifiedDate字段根据时间戳获取数据。

SDI 目前可以识别原始数据文件中的 UTC 格式日期(例如,2020-02-15T04:46:13Z)和 W3C 格式日期(例如,2020-10-15T04:46:13+00:00)。这些日期在结果 schema 中被标识为timestamp数据类型。

搜索模式

这允许用户根据数据标记、模式名或源名搜索模式。搜索模式数组必须在搜索条件中包含相同的元素。

POST Method: /searchSchemas

SDI 基于 schema-on-read 设计。在数据被摄入 MindSphere SDI 之前,用户不需要知道模式。SDI 能够从摄取的数据中推断/提取包含属性和数据类型的模式,并将其存储到特定于租户和数据标记的地方。 数据摄取服务 API 支持XML、Parquet、JSON 和 CSV 作为输入数据文件格式。包含 XML 格式的文件可以提供客户想要处理的根元素。

限制

  1. 可以注册的数据源数量取决于用户租户订阅的发行计划。
  2. 数据摄取 POST 方法支持最大100 MB 文件。
  3. SDI 允许最大摄取速率为70 MBPS。
  4. 一旦数据被成功摄取并且作业完成,就可以使用模式进行搜索。
  5. 用户最多可以为每个租户创建500个注册。
  6. 每个租户最多可以创建200个自定义数据类型,每个数据类型不能包含超过10个正则表达式模式。
  7. 搜索模式请求和推断本体每次搜索限制为20个条目。
  8. 搜索模式的响应将包含最多20个最后摄入的原始文件名。
  9. SDI 支持每个模式最多250个属性。
  10. CSV 不接受分号、管道等作为分隔符。输入 CSV 文件应以逗号(,)作为分隔符。
  11. JSON 格式的输入文件: JSON 键名不应该包含点、空格、逗号、分号、花括号、方括号、换行符、制表符等特殊字符。
  12. 现有的 schema 进化支持最多5000条记录的不兼容数据类型更改。

相关链接

还有问题?

向社区提问


除非另行声明,该网站内容遵循MindSphere开发许可协议.


Last update: June 1, 2020