关于tdengine:技术干货代码示例使用-Apache-Spark-连接-TDengine

53次阅读

共计 1921 个字符,预计需要花费 5 分钟才能阅读完成。

小 T 导读:想用 Spark 对接 TDengine?保姆级教程来了。

0、前言

TDengine 是由涛思数据开发并开源的一款高性能、分布式、反对 SQL 的时序数据库(Time-Series Database)。

在上一篇文章中,咱们示范了如何应用 Apache Flink 连贯 TDengine,应用 Apache Spark 的小伙伴们曾经急不可待地期待续集了。

绝对于 Flink,Spark 对接起来就简略多了。

1、技术实现

Spark 自身封装了 JDBC 的办法,所以咱们间接应用 Spark 官网的示例代码就能够实现对接了。

2、示例代码

package com.taosdata.java;                
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SaveMode;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.jdbc.JdbcDialect;
import org.apache.spark.sql.jdbc.JdbcDialects;
public class  SparkTest{public static void main(String[] args) {
               // 数据库配置
               String url = "jdbc:TAOS://u05:6030/tt?user=root&password=taosdata";
               String driver = "com.taosdata.jdbc.TSDBDriver";
               String dbtable = "t1";
               
               SparkSession sparkSession = SparkSession.builder()
                               .appName("DataSourceJDBC") // 设置利用名称
                               .master("local") // 本地单线程运行
                               .getOrCreate();
               // 创立 DataFrame
               Dataset<Row> df = sparkSession
                               .read() // 返回一个 DataFrameReader,可用于将非流数据作为 DataFrame 读取
                               .format("jdbc") // JDBC 数据源
                               .option("url", url)
                               .option("driver", driver)
                               .option("query", "select * from tt.meters limit 100") // 二选一,sql 语句或者表
                               .load();
               // 将 DataFrame 的内容显示
               df.show();
               
               
               df.write() // 返回一个 DataFrameWriter,可用于将 DataFrame 写入内部存储系统
                               .format("jdbc") // JDBC 数据源
                               .mode(SaveMode.Append) // 如果第一次生成了,后续会追加
                               .option("url", url)
                               .option("driver", driver)
                               .option("dbtable", "test.meters") // 表名
                               .save();
               sparkSession.stop();}
}

3、简略测试 JNI 读写

1) 环境筹备:

a) Spark 装置 & 启动:

  • wget https://www.apache.org/dyn/cl…
  • tar zxf spark-3.2.1-bin-hadoop3.2.tgz -C /usr/local

b) TDengine Database 环境筹备:
创立原始数据:

  • create database tt;
  • create table tt.meters (ts TIMESTAMP,vol INT) ;
  • insert into meters values(now,220);

创立指标数据库表:

  • create database test;
  • create table test.meters (ts TIMESTAMP,vol INT) ;

2) 打包编译:

源码地位:https://github.com/liuyq-617/…

mvn clean package

3) 程序启动:

spark-submit –master local –name TDenginetest –class com.taosdata.java.SparkTest /testSpark-1.0-SNAPSHOT-dist.jar

读取数据

  • 读取的数据间接打印在控制台

写入数据

  • select * from test.meters;
  • 能够查问到刚插入的数据

4、小结

Spark 自身反对 JDBC 的形式来进行读写,咱们无需做更多适配,数据接入能够做到无缝连接。


想理解更多 TDengine Database 的具体细节,欢送大家在 GitHub 上查看相干源代码。

正文完
 0