gpt4 book ai didi

fiware - 如何更改默认行为以将每个实体的信息存储在不同的表中

转载 作者:行者123 更新时间:2023-12-01 14:41:10 27 4
gpt4 key购买 nike

我想配置 Orion 和 Cygnus 以将所有数据存储在一个表中。

我知道我应该像这样基于 HTTP header 配置数据和表的名称:

dbName=<fiware-service-header>
tableName=<fiware-servicePath-header>_<entityId>_<entityType>

有人告诉我in this post问另一个问题。

最佳答案

Cygnus 使用通知的 fiware-servicefiware-servicePath header 组成不同后端元素的名称。具体来说:

  • MySQL
    • 数据库称为 <fiware-service>
    • 表名称为<fiware-servicePath>_<destination>
  • HDFS
    • HDFS 路径创建为 /user/<your_user>/<fiware-service>/<fiware-servicePath>/<destination>/<destination>.txt
    • 组织称为 <fiware-service>
    • 包/数据集称为 <fiware-servicePath>
    • 资源被称为<destination>

默认情况下,<destination>等于<entityId>_<entityType> .如问题中所述,这可能会导致为每个通知实体创建一个 MySQL 表/HDFS 文件夹/CKAN 资源。

可以使用 Cygnus 的高级功能(基于模式的分组)更改此类默认目标生成;顾名思义,该功能基于在数据中查找(配置的)模式,以便对显示模式的上下文数据进行分组。例如,此功能允许某种类型的所有实体都存储在一个 MySQL 表中;或某些以前缀开头的实体一起存储在 HDFS 文件中。

为了激活此功能,编辑 /usr/cygnus/conf/matching_table.conf文件并根据需要添加尽可能多的匹配规则;描述了匹配规则语法 here .基本上,规则说“一旦确认了基于模式的匹配,就使用这个新的 <destination> 和这个新的 <fiware-servicePath>”:

<rule_id>|<list_of_fields_to_be_compared>|<regular_expresion>|<new_destination>|<new_fiware-servicePath>

因此,“将所有数据存储在名为‘my_unique_table’的 MySQL 表中”规则如下所示:

<any_unique_number>|<entityId>|.*|unique_table|my_

或:

<any_unique_number>|<entityId>|.*|_table|my_unique

这两个规则都是有效的,因为如前所述,MySQL 表名是通过连接 <fiware-servicePath> 创建的和 <destination> ;在这种情况下,表名等于“my_”+_+“unique_table”或“my_unique”+“_table”。

关于fiware - 如何更改默认行为以将每个实体的信息存储在不同的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29823854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com