- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Streaming SQL介绍
8月28日【Spark Streaming SQL流式处理简介】
主讲人:云魄,阿里云E-MapReduce 高级开发工程师,专注于流式计算,Spark Contributor,开源爱好者
简介:本次直播将简要介绍EMR Spark Streaming SQL,主要包含Streaming SQL的语法和使用,最后做demo演示
展开查看详情
1 .Spark Streaming SQL 介绍 阿⾥里里巴巴计算平台事业部EMR 云魄
2 . 内容概要 • Spark Streaming SQL简介 • Spark Streaming SQL操作 • Spark Streaming SQL典型案例例
3 . Part 1 Spark Streaming SQL简介
4 .Spark Streaming SQL概述 • SQL开发流式作业 • Spark Streaming 扩展 • 基于Spark Structured Streaming • runtime • Spark Structured Streaming调度引擎 • Spark SQL执⾏行行引擎
5 .Spark Streaming SQL特点 • SQL 数据源 读 写 • 开发和应⽤用成本 Kafka ✅ ✅ • 接近应⽤用 HDFS/OSS ✅ ✅ ✅ ✅ • 底层API变动透明 Aliyun Loghub Aliyun TableStore ✅ • 批流统⼀一 Hbase ✅ • 开发和迁移 JDBC ✅ • 多种数据源⽀支持 Druid ✅ aliyun-emapreduce-sdk Aliyun Datahub ✅ • Spark⽣生态⽀支持 Redis ✅
6 .Spark Streaming SQL纵向对⽐比 Streaming SQL Structured Streaming DStream 中间状态管理理 ⽀支持 ⽀支持 不不⽀支持 Exactly-Once ⽀支持 ⽀支持 部分⽀支持 API易易⽤用性 易易⽤用 较容易易 难 Java/Scala + SQL的嵌 批流统⼀一 ⽀支持 不不⽀支持 ⼊入式混搭 代码活跃度 维护中 维护中 停⽌止维护
7 .Spark Streaming SQL横向对⽐比 Spark Streaming SQL Flink SQL KSQL 批流统⼀一 ⽀支持 ⽀支持 只⽀支持流 中间状态管理理 ⽀支持 ⽀支持 ⽀支持 mini-batch: 秒级 实时性 continuous:亚秒级(⾮非⽣生产实 event-mode:亚秒级 亚秒级 现) UDF⽀支持 ⽀支持 ⽀支持 不不⽀支持 SQL ⽀支持 ⽀支持 ⽀支持 SQL标准 Industry-standard SQL Industry-standard SQL SQL-like 按数据源⽀支持端到端的 按数据源⽀支持端到端的 数据投递 ⽀支持Kafka的Exactly-Once Exactly-Once Exactly-Once 容错性 ⽀支持 ⽀支持 ⽀支持
8 .Spark社区 • SPIP: Support Streaming SQL interface in Spark • 流式SQL标准
9 . Part 2 Spark Streaming SQL操作
10 . 配置数据源 • CREATE TABLE with column CREATE TABLE tbName(columnName dataType [,columnName dataType]*) USING providerName OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*);
11 . 配置数据源 • CREATE TABLE without column CREATE TABLE tbName USING providerName OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*);
12 .配置流式作业
13 .配置流式作业 • streaming.query.name • spark.sql.streaming.checkpointLocation • spark.sql.streaming.query.trigger
14 .创建流式作业 • INSERT INSERT INTO tbName queryStatement;
15 .创建流式作业 • CTAS CREATE TABLE tbName[(columnName dataType [,columnName dataType]*)] USING providerName OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*) AS queryStatement;
16 .窗⼝口函数 • 滚动窗⼝口(TUMBLING) • 滑动窗⼝口(HOPPING) • slideDuration和windowDuration • window.start 和 window.end
17 .窗⼝口函数 • 滚动窗⼝口(TUMBLING) • 滑动窗⼝口(HOPPING)
18 .delay • watermark WHERE delay ( colName ) < ‘duration'
19 . Part 3 Spark Streaming SQL典型案例例
20 .ETL Spark Streaming SQL id data-id msg data-message date data-date select json_tuple(CAST(value AS STRING), date, msg, id) as (date, msg, id)
21 .实时⼤大屏 user0 5 Spark Streaming SQL user0 11 user1 8 user1 8 user0 6 select sum(cast(visit as int)) as click, userId from table where delay(__time__)<"10 second” group by TUMBLING(__time__, interval 10 second), userId;
22 .维表join level id value Spark Streaming SQL level id value level0 id0 value0 user1 id0 value0 level1 id1 value1 level note level0 note-info SELECT level, id, value from loghub_source_table join hdfs_source_table on loghub_source_table.level = hdfs_source_table.level
23 .更更多实践案例例 • EMR云栖号 • Spark开源中国社区
24 .Q&A