前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >StreamingPro SQL Server 支持异步导出数据

StreamingPro SQL Server 支持异步导出数据

作者头像
用户2936994
发布于 2018-08-27 03:49:43
发布于 2018-08-27 03:49:43
48500
代码可运行
举报
文章被收录于专栏:祝威廉祝威廉
运行总次数:0
代码可运行

前言

StreamingPro可以很容易让你搭建一个Spark SQL Server 服务,并且提供Http 格式的接口进行交互。通常查询结果较小,但是如果用户的SQL可能会产生几G甚至几十G的结果,那么Driver 就直接挂了。StreamingPro提供了同步和异步机制,将SQL的查询结果放在HDFS上。如果是同步的话,执行完后返回下载地址(HTTP接口,StreamingPro提供),如果是异步,则会使用用户提供的回调函数告知任务完成,并且提供下载地址。

编译新版本

目前该功能只支持spark 2 以上的版本。 参考 如何自己打包

启动一个SQL Server

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHome=/Users/allwefantasy/streamingpro

./bin/spark-submit   --class streaming.core.StreamingApp \
--master local[2] \
--name sql-interactive \
$SHome/streamingpro-spark-2.0-0.4.15-SNAPSHOT.jar    \
-streaming.name sql-interactive    \
-streaming.job.file.path file://$SHome/query.json \
-streaming.platform spark   \
-streaming.rest true   \
-streaming.driver.port 9003   \
-streaming.spark.service true \
-streaming.thrift true \
-streaming.enableHiveSupport true 

query.json 的内容为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{}

准备数据

创建一张表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//CREATE TABLE IF NOT EXISTS zhl_table(id string, name string, city string, age Int) 
curl --request POST \
  --url http://127.0.0.1:9003/run/sql \
  --data 'sql=CREATE%20TABLE%20IF%20NOT%20EXISTS%20zhl_table(id%20string%2C%20name%20string%2C%20city%20string%2C%20age%20Int)%20'

导入数据: 你可以随便创建一个csv格式的数据,然后按如下方式导入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//LOAD DATA LOCAL INPATH  '/Users/allwefantasy/streamingpro/sample.csv'  INTO TABLE zhl_table
curl --request POST \
  --url http://127.0.0.1:9003/run/sql \
  --data 'sql=LOAD%20DATA%20LOCAL%20INPATH%20%20'\''%2FUsers%2Fallwefantasy%2Fstreamingpro%2Fsample.csv'\''%20%20INTO%20TABLE%20zhl_table'

异步导出数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl --request POST \
  --url http://127.0.0.1:9003/run/sql \
  --data 'sql=select%20*%20from%20zhl_table&async=true&resultType=file&path=%2Ftmp%2Fjack&callback=http%3A%2F%2F127.0.0.1%3A9003%2Fpull'

WX20170711-153834.png

接口会返回一个空数组。

  • async: true,异步返回。
  • sql : 查询SQL
  • path: hdfs 暂存路径
  • callback: StreamingPro会调用该参数提供的接口告知下载地址。

同步导出数据:

  • async: false
  • sql : 查询SQL
  • resultType: file
  • path: hdfs 暂存路径

接口会返回下载路径。将该路径黏贴到浏览器上即可下载文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.07.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 编译新版本
  • 启动一个SQL Server
  • 准备数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档