创建数据总线DataHub源表

适用于Blink 1.4.5及以上版本。

什么是数据总线

阿里云流数据处理平台DataHub是流式数据(Streaming Data)的处理平台,提供对流式数据的发布(Publish)、订阅(Subscribe)和分发功能,让您可以轻松构建基于流式数据的分析和应用。实时计算Flink版使用DataHub作为流式数据存储源头或输出目的端。

语法示例

DataHub可以作为实时计算Flink版的数据输入,示例如下。

CREATE TABLE datahub_stream(name VARCHAR,age BIGINT,birthday BIGINT
) WITH (type='datahub',endPoint='http://dh-cn-hangzhou.aliyun-inc.com',project='<yourProjectName>',topic='<yourTopic>',accessId='<yourAccessID>',accessKey='<yourAccessSecret>',startTime='2017-07-21 00:00:00'
);

WITH参数

参数 说明 是否必填 备注
type 源表类型 固定值为datahub
endPoint 消费端点信息 详情请参见DataHub域名列表。
accessId AccessKey ID
accessKey AccessKey Secret
project 读取的项目
topic Project下的具体的Topic名称 无(注意 目前只支持Tuple模式的Topic。)
startTime 启动位点的时间 批处理时必填,格式为yyyy-MM-dd hh:mm:ss
endTime DataHub日志结束时间 批处理时必填,格式为yyyy-MM-dd hh:mm:ss
maxRetryTimes 读取最大重试次数 不同版本中,该参数的默认值如下:
- Blink 2.2.7以下版本:3
- Blink 2.2.7及以上版本:20
retryIntervalMs 重试间隔 不同版本中,该参数的默认值如下(单位为毫秒):
- Blink 2.2.7以下版本:1000
- Blink 2.2.7及以上版本:50
batchReadSize 单次读取条数 默认值为10,可设置的最大值为1000。
lengthCheck 单行字段条数检查策略 - NONE(默认值):
1. 解析出的字段数大于定义字段数时,按从左到右的顺序,取定义字段数量的数据。
2. 解析出的字段数小于定义字段数时,跳过这行数据。
- SKIP:解析出的字段数和定义字段数不同时跳过这行数据。
- EXCEPTION:解析出的字段数和定义字段数不同时提示异常。
- PAD:按从左到右顺序填充。
1. 解析出的字段数大于定义字段数时,按从左到右的顺序,取定义字段数量的数据。
2. 解析出的字段数小于定义字段数时,按从左到右的顺序,在行尾用Null填充缺少的字段。
columnErrorDebug 是否开启调试功能 - false(默认值):关闭调试功能。
- true:开启调试功能,将打印解析异常的日志。
isBlob DataHub是否为BLOB类型 默认值为false。
- 仅Blink 3.4.x 及以上版本支持该参数。
- 使用BLOB类型时,字段需要声明为VARBINARY类型,与METAQ类似。

类型映射

DataHub和实时计算Flink版字段类型对应关系如下,建议使用该对应关系时进行DDL声明。

属性字段

Flink SQL支持获取DataHub的属性字段。通过读取属性字段可以获得每条信息输入DataHub的系统时间(System Time)。

字段名 说明
timestamp 每条记录写入DataHub的系统时间(System Time)

示例代码

包含DataHub源表的实时计算Flink版作业代码示例如下。

create table datahub_input(name VARCHAR
) with (type='datahub',endPoint='http://dh-cn-hangzhou.aliyun-inc.com',project='test1',topic='topic1',accessId='<yourAccessID>',accessKey='<yourAccessSecret>',startTime='2018-06-01 00:00:00'
);create table test_out(name  VARCHAR
) with (type='print'
);INSERT INTO test_out
SELECT LOWER(name)
from datahub_input;

常见问题

  • Q:DataHub和实时计算Flink版中的TIMESTAMP的精确级别不同,如何进行转换?

    A:DataHub的TIMESTAMP是精确到微秒,在Unix时间戳里是16位,但实时计算Flink版定义的TIMESTAMP是精确到毫秒,在Unix时间戳里是13位,所以建议您使用BIGINT映射。如果您需要使用TIMESTAMP,建议使用计算列进行转换,代码示例如下。

    CREATE TABLE datahub_test (id                 VARCHAR,`type`             VARCHAR,`value`            DOUBLE,`time`             BIGINT,ts as TO_TIMESTAMP(`time`/1000),WATERMARK wk for ts as withoffset(ts,2000)
    ) WITH (type = 'datahub'
    );
    
  • Q:分裂或者缩容DataHub Topic后导致实时计算Flink版作业失败,如何恢复?

    A:Blink 2.2.0以下版本不支持DataHub Shard扩容和缩容功能,如果分裂或者缩容了某个实时计算正在读取的Topic,会导致任务持续出错,无法自行恢复。该情况下需要重新启动(停止->启动)来使任务恢复正常。

  • Q:可以删除正在使用的DataHub Topic吗?

    A:所有版本均不支持删除或重建正在引用的DataHub Topic。

Blink SQL之创建数据总线DataHub源表相关推荐

  1. Blink SQL之创建数据结果表

    Blink创建数据结果表 概述 Blink使用CREATE TABLE作为输出结果数据的格式定义,同时定义数据如何写入到目的数据结果表. 结果表有两种类型: Append类型:输出存储是日志系统.消息 ...

  2. 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表

    SQL语句创建和删除基本表 1. 编写6个基本表 2. 修改基本表结构,完整性约束条件 3. 用Drop table 语句删除基本表 1. 编写6个基本表 设有简单教学管理的6个关系模式如下: 系(系 ...

  3. 使用SQL语句创建并管理数据表

    数据库创建以后,我们需要创建数据表存储数据,表是一种重要的数据库对象.简单的叙述一下表的概念. 表的概念: 数据表是数据库中一个重要的对象,也是其他对象的基础.一个数据库中可以包含多张表,表是数据的集 ...

  4. 使用SQL语句创建数据库和数据库表

    使用SQL语句创建数据库和数据库表 内容如下: 创建数据库 创建数据库表 1.创建数据库的语句 创建数据库,需要创建数据库的数据文件和日志文件 其中一些语句含义如下: 语句 代表含义 name 逻辑文 ...

  5. 在MySQL中如何用SQL命令创建数据库及数据表

    HRELLO 大家好! 上期给大家讲解了,MySQL数据库常用的管理命令.现在,给大家讲解,如何用SQL命令在MySQL中创建一个数据库及数据表. 在学习前,我们首先要了解,SQL命令是什么? SQL ...

  6. Blink SQL之创建日志服务SLS源表

    创建日志服务SLS源表 仅适用于Blink 1.4.5及以上版本. 什么是日志服务 日志服务SLS是针对日志类数据的一站式服务,对于日志服务而言,数据格式类似JSON,示例如下. {"a&q ...

  7. Blink SQL之创建数据维表

    Blink创建数据维表 概述 在维表DDL语法中增加1行PERIOD FOR SYSTEM_TIME的声明,定义维表的变化周期,即可使用标准的CREATE TABLE语法定义实时计算维表. 示例 CR ...

  8. sql server2008中怎样用sql语句创建数据库和数据表

    这是简单用代码实现创建数据库和数据表的sql语句,如下: --调用系统数据库-- use master go /***防止你要创建的数据库同名,先把它删除掉****/ if Exists(select ...

  9. 实验二 通过SQL语句创建与管理数据表

    实验目的 (1)掌握查询分析器的使用. (2)掌握通过SQL语句创建表的方法. (3)掌握通过SQL语句修改表结构的方法. (4)掌握通过SQL语句添加.修改.删除表数据的方法. 实验内容 1.通过S ...

最新文章

  1. [iOS]过渡动画之高级模仿 airbnb
  2. redis主从复制下哨兵模式---选举原理
  3. cve-2018-7600 drupal核心远程代码执行漏洞分析
  4. Mac下安装MySQL 5.7.28并且修改root密码
  5. IOS开发 ios7适配
  6. OSGi运行环境下java反序列化问题的解决方式
  7. *学生管理系统java面向对象版本
  8. WIN提权总结【本地存档-转载】
  9. DISALLOW_COPY_AND_ASSIGN DISALLOW_IMPLICIT_CONSTRUCTORS.
  10. Kali [CobaltStrike]CS神器
  11. 将来的你,将会感谢现在努力拼搏奋斗的自己------学习计划。
  12. 分糖果(candy)
  13. 判断浏览器是否为ie8调样式
  14. registrar计算机词汇,HR常用短语英语词汇表(转载)
  15. 如何查询中国农业银行卡开户行
  16. HTML5超酷新特性WebSockets初体验
  17. 2026. 低质量的问题
  18. 算法系列之九:计算几何与图形学有关的几种常用算法(二)
  19. Android Linux指令集
  20. 国外python在线教学_国外最顶级的Python学习视频送给你!(带中文字幕)

热门文章

  1. 开关标识一个是0一个是-那个是开哪个是关
  2. ShareTechnote系列LTE(8):小区搜索
  3. Android - 自定义Dialog内部透明,外部有遮罩
  4. 关于axure的安装和使用
  5. 如何在本地编译器进行油猴脚本的开发
  6. 恶搞php代码,恶搞源码。 - 各类源码 - 中国红客联盟 - Powered by HUC
  7. 【逆向】PE结构分析和关于PE的一些问题及解决
  8. 富士智能借的镜头测试
  9. 通过CRC32爆破修改图片的宽高 ctf-misc图片隐写
  10. 苹果当前系统时间与服务器不一致,MacOS与Windows双系统时间不一致补丁