首页 > 其他分享 >Apache IoTDB开发系统整合之Hive TsFile

Apache IoTDB开发系统整合之Hive TsFile

时间:2023-09-06 13:05:15浏览次数:48  
标签:iotdb jar hive connector IoTDB Hive Apache sensor

TsFile-Hive-Connector 用户指南

关于 TsFile-Hive-Connector

TsFile-Hive-Connector 实现了 Hive 对 Tsfile 类型的外部数据源的支持。这使用户能够按Hive操作Tsfile。

使用此连接器,您可以

  • 将单个 TsFile 从本地文件系统或 hdfs 加载到 hive 中
  • 将特定目录中的所有文件(从本地文件系统或 hdfs)加载到 hive 中
  • 通过 HQL 查询 tsfile。
  • 截至目前,配置单元连接器不支持写入操作。因此,通过配置单元操作 tsfile 时,不允许在 HQL 中进行插入操作。

System Requirements

Hadoop Version

Hive Version

Java Version

TsFile

2.7.3 or 3.2.1

2.3.6 or 3.1.2

1.8

0.10.0

Data Type Correspondence

TsFile data type

Hive field type

BOOLEAN

Boolean

INT32

INT

INT64

BIGINT

FLOAT

Float

DOUBLE

Double

TEXT

STRING

为 Hive 添加依赖项

要在 hive 中使用 hive-connector,我们应该将 hive-connector jar 添加到 hive 中。

Apache IoTDB开发系统整合之Hive TsFile_Hive

您可以使用 的命令获取 .mvn clean package -pl hive-connector -am -Dmaven.test.skip=truehive-connector-X.X.X-jar-with-dependencies.jar

然后在 hive 中,使用 的命令添加依赖项。例如:add jar XXX

  1. hive> add jar /Users/hive/incubator-iotdb/hive-connector/target/hive-connector-0.10.0-jar-with-dependencies.jar;

  2. Added [/Users/hive/incubator-iotdb/hive-connector/target/hive-connector-0.10.0-jar-with-dependencies.jar] to class path
  3. Added resources: [/Users/hive/incubator-iotdb/hive-connector/target/hive-connector-0.10.0-jar-with-dependencies.jar]

创建 Tsfile 支持的 Hive 表

要创建支持 Tsfile 的表,请指定 as 、 指定 as 和 as 。serdeorg.apache.iotdb.hive.TsFileSerDeinputformatorg.apache.iotdb.hive.TSFHiveInputFormatoutputformatorg.apache.iotdb.hive.TSFHiveOutputFormat

还要提供一个仅包含两个字段的架构:和表。 是时间序列的时间值,是要从 TSFILE 提取到 Hive 的传感器的名称,例如 。表的名称可以是 hive 中的任何有效表名称。time_stampsensor_idtime_stampsensor_idsensor_1

此外,提供配置单元连接器将从中提取表的最新数据的位置。

该位置必须是特定的目录,如果您已设置Hadoop,它可以位于本地文件系统或HDFS上。如果它位于本地文件系统中,则位置应如下所示file:///data/data/sequence/root.baic2.WWS.leftfrontdoor/

最后,您应该将 in 设置为要分析的设备名称。device_idTBLPROPERTIES

例如:

CREATE EXTERNAL TABLE IF NOT EXISTS only_sensor_1(
time_stamp TIMESTAMP,
sensor_1 BIGINT)
ROW FORMAT SERDE 'org.apache.iotdb.hive.TsFileSerDe'
STORED AS
INPUTFORMAT 'org.apache.iotdb.hive.TSFHiveInputFormat'
OUTPUTFORMAT 'org.apache.iotdb.hive.TSFHiveOutputFormat'
LOCATION '/data/data/sequence/root.baic2.WWS.leftfrontdoor/'
TBLPROPERTIES ('device_id'='root.baic2.WWS.leftfrontdoor.plc1');

在此示例中,我们将从 的目录中提取 的数据。此表可能会导致如下说明:root.baic2.WWS.leftfrontdoor.plc1.sensor_1/data/data/sequence/root.baic2.WWS.leftfrontdoor/

  1. hive> describe only_sensor_1;
  2. OK
  3. time_stamp timestamp from deserializer
  4. sensor_1 bigint from deserializer
  5. Time taken: 0.053 seconds, Fetched: 2 row(s)

此时,可以在 Hive 中像处理任何其他表一样处理 Tsfile 支持的表。

从 Tsfile 支持的 Hive 表查询

在执行任何查询之前,我们应该通过执行以下命令来设置 in hive。hive.input.format

  1. hive> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;

现在,我们已经有了一个在 hive 中命名的外部表。我们可以通过 HQL 使用任何查询操作来分析它。only_sensor_1

例如:

选择子句示例

hive> select * from only_sensor_1 limit 10;
OK
1000000
1000001
1000002
1000003
1000004
1000005
1000006
1000007
1000008
1000009
Time taken: 1.464 seconds, Fetched: 10 row(s)

聚合子句示例

hive> select count(*) from only_sensor_1;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = jackietien_20191016202416_d1e3e233-d367-4453-b39a-2aac9327a3b6
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapreduce.job.reduces=<number>
Job running in-process (local Hadoop)
2019-10-16 20:24:18,305 Stage-1 map = 0%, reduce = 0%
2019-10-16 20:24:27,443 Stage-1 map = 100%, reduce = 100%
Ended Job = job_local867757288_0002
MapReduce Jobs Launched:
Stage-Stage-1: HDFS Read: 0 HDFS Write: 0 SUCCESS
Total MapReduce CPU Time Spent: 0 msec
OK
1000000
Time taken: 11.334 seconds, Fetched: 1 row(s)

标签:iotdb,jar,hive,connector,IoTDB,Hive,Apache,sensor
From: https://blog.51cto.com/u_15123639/7385159

相关文章

  • 43、Flink之Hive 读写及详细验证示例
    Flink系列文章[1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接][13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例][14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性][15、Flink的t......
  • 【创新项目探索】大数据服务omnidata-hive-connector介绍
    omnidata-hive-connector介绍omnidata-hive-connector是一种将大数据组件Hive的算子下推到存储节点上的服务,从而实现近数据计算,减少网络带宽,提升Hive的查询性能。目前支持HiveonTez。omnidata-hive-connector已在openEuler社区开源。OmniData架构OmniData是算子下推的总称。Om......
  • Apache IoTDB开发系统整合之MapReduce TsFile
    TsFile-Hadoop-ConnectorUserGuide关于TsFile-Hadoop-ConnectorTsFile-Hadoop-Connector实现了Hadoop对Tsfile类型的外部数据源的支持。这使用户能够通过Hadoop读取,写入和查询Tsfile。使用此连接器,咱们就可以:将单个TsFile从本地文件系统或hdfs加载到Hadoop中将特定目......
  • Apache IoTDB开发之Load External TsFile工具
    LoadExternalTsFile工具简介加载外部tsfile工具允许用户从正在运行的ApacheIoTDB实例加载tsfiles、删除tsfile或将tsfile移动到目标目录。用法用户通过Cli工具或JDBC向ApacheIoTDB系统发送指定的命令以使用该工具。加载TS文件加载tsfiles的命令是。load"<p......
  • 33、Flink之hive介绍与简单示例
    文章目录Flink系列文章一、Table&SQLConnectors示例:ApacheHive1、支持的Hive版本2、依赖项1)、使用Flink提供的Hivejar2)、用户定义的依赖项3)、移动plannerjar包3、Maven依赖4、连接到Hive5、DDL&DML本文介绍了ApacheHive连接器的使用,以具体的示例演示了通过java和......
  • CDC一键入湖:当 Apache Hudi DeltaStreamer 遇见 Serverless Spark
    ApacheHudi的DeltaStreamer是一种以近实时方式摄取数据并写入Hudi表的工具类,它简化了流式数据入湖并存储为Hudi表的操作,自0.10.0版开始,Hudi又在DeltaStreamer的基础上增加了基于Debezium的CDC数据处理能力,这使得其可以直接将Debezium采集的CDC数据落地成Hudi表,这一功能极大地简......
  • 大数据实战-Hive-技巧实战_2LgaeiFwLs7mCTwG5T3c9M
    大数据实战-Hive-技巧实战_2LgaeiFwLs7mCTwG5T3c9M大数据实战-Hive-技巧实战1.union和unionall前者可以去重selectsex,addressfromtestwheredt='20210218'unionallselectsex,addressfromtestwheredt='20210218';+------+----------+--+|sex|address|......
  • 解决hive数据库的修改删除等更新语句问题
    Hive对使用Update功能的表有特定的语法要求,语法要求如下:(1)要执行Update的表中,建表时必须带有buckets(分桶)属性(2)要执行Update的表中,需要指定格式,其余格式目前赞不支持,如:parquet格式,目前只支持ORCFileformat和AcidOutputFormat(3)要执行Update的表中,建表时必......
  • Apache IoTDB开发之日志可视化工具
    工具简介与其他软件系统一样,IoTDB在运行时生成各种日志。调试和跟踪日志可以帮助开发人员跟踪IoTDB的状态,并挖掘出潜在或不清楚的错误信息日志可以告诉系统的健康程度,并指出数据库参数优化的方向。警告和错误日志指示系统处于危险状态或发生意外情况,并帮助数据库管理员在系统崩溃......
  • idea 创建maven项目出现 Cannot resolve plugin org.apache.maven.plugins:maven-jar-
    idea创建maven项目出现Cannotresolvepluginorg.apache.maven.plugins:maven-jar-plugin:3.3.0如下图所示:遇到这个问题很多次了,也看了很多别人的解决方案,大致分为两种问题:1、maven路径问题:在idea中找到File-Settings通过搜索框找到maven,查看maven的安装路径和本地仓库......