写点什么

【技术干货】代码示例:使用 Apache Spark 连接 TDengine

作者:TDengine
  • 2022 年 5 月 30 日
  • 本文字数:1632 字

    阅读完需:约 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 安装 &启动:

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/TD-Spark

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上查看相关源代码。


发布于: 刚刚阅读数: 4
用户头像

TDengine

关注

高性能、分布式、支持SQL的时序数据库 2021.11.04 加入

官网:http://www.taosdata.com GitHub:https://github.com/taosdata/TDengine

评论

发布
暂无评论
【技术干货】代码示例:使用 Apache Spark 连接 TDengine_数据库_TDengine_InfoQ写作社区