fiware - Cosmos HttpFS 文件格式

标签 fiware fiware-orion fiware-cygnus

实际上,我正在通过 Cygnus 向 Cosmos 发送数据。 Cygnus 放置数据的 Cosmos 目录是,例如/user/myUser/mysetdata。我使用以下列创建了我的配置单元表:recvTimeTs、recvTime、entityId、entityType、attrName、attrType、attrValue。

现在,我想通过 HttpFS 将数据直接放入 Cosmos 中,并放入与 Cygnus 相同的目录中。

“.txt”文件格式怎么可能?必须用逗号分隔吗?例如:

recvTimeTs;recvTimem;entityId;entityType;attrName;attrType;attrValue 值;值;值;...

最佳答案

Hive 表包含位于 HDFS 文件夹中的文件内的结构化数据,该文件夹在 Hive 表创建命令中给出。

使用 Cygnus 0.1,此类结构化数据是通过使用类似 CSV 的文件来实现的,因此将新文件添加到 HDFS 文件夹或将新数据附加到该文件夹​​中已存在的文件非常简单组成新的类似 CSV 的数据行。分隔符必须与创建表时指定的相同,例如:

create external table <table_name> (recvTimeTs bigint, recvTime string, entityId string, entityType string, attrName string, attrType string, attrValue string) row format delimited fields terminated by '|' location '/user/<myusername>/<mydataset>/';

因此,作为示例分隔符 |,新数据行必须类似于:

<ts>|<ts_ms>|<entity_name>|<entity_type>|<attribute_name>|<attribute_type>|<value>

Cugnus 0.2(含)开始,结构化数据是通过使用类似Json的文件来实现的。在这种情况下,您不必处理分隔符,也不必创建表(请参阅 this question ),因为 Json 不使用分隔符并且表创建是自动的。在这种情况下,您必须按照任何一种格式(取决于您将数据存储在 row 还是 column 中)来编写一个新文件或新数据,以附加到现有文件中分别为 模式):

{"recvTimeTs":"13453464536", "recvTime":"2014-02-27T14:46:21", "entityId":"Room1", "entityType":"Room", "attrName":"temperature", "attrType":"centigrade", "attrValue":"26.5", "attrMd":[{name:ID, type:string, value:ground}]}

{"recvTime":"2014-02-27T14:46:21", "temperature":"26.5", "temperature_md":[{"name":"ID", "type":"string", "value":"ground"}]}

值得一提的是,存在负责将类 0.1 格式转换为类 0.2(或更高)格式的脚本。

关于fiware - Cosmos HttpFS 文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246991/

相关文章:

fiware - 如何使用Postman和FIWARE API?

docker - 在小时间段内打开大量连接时的ECONNRESET

fiware - 无法使用 MySQL 代理运行 Cygnus

fiware - Cygnus 未作为服务启动

fiware - 访问 Fi-lab 上的虚拟机

c++ - 如何调试固件-Orion

Fiware - Orion Context Broker 订阅未发送到 STH, "conditions was supposed to be an array"

fiware - 使用 dockerized fiware-orion 似乎无法进行订阅

fiware - Orion 上下文代理,订阅格式 "JSON"

fiware-cygnus - Cygnus 通知 - 不支持 application/json 内容类型