且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

存储概览

更新时间:2022-09-14 18:36:09

为方便用户管理数据存储,通过提前注册数据存储,您能够享受到更多一站式流计算开发平台提供的便利性。阿里云实时计算 Flink提供包括RDS、ADS、OTS等各类数据存储系统的管理界面,让您无需跨越多种产品的管理页面。使用阿里云实时计算 Flink平台,即可让您一站式管理您的云上数据存储。

需要注意两条:

  • 实时计算数据存储功能当前仅支持同账号属主下的存储资源,即当前使用实时计算的A用户(包括A下所属的子账户)所注册的数据存储,必须是A购买的数据存储。当前不支持跨账号授权。对于不属于当前用户的资源使用,用户可以直接使用AccessId/AccessKey在DDL定义语句中直接写出。参看文章最下面的跨账号资源引用

  • 数据存储注册需要提前授权。详细步骤请您参看角色授权

存储类别

流式存储

流式存储为下游流计算提供数据驱动,同时也可以为流计算作业提供数据输出。

支持情况 输入 输出
DataHub 支持 支持
日志服务(LogHub) 支持 支持
消息队列源表 (MQ) 支持 支持

静态存储

静态存储为流计算提供了数据关联查询,同时也可以作为流计算作业数据输出。

支持情况 维表 输出
云数据库(RDS) 支持 支持
表格存储结果表(TableStore) 支持 支持

存储使用

注册的数据存储将为以下使用场景提供服务。通过提前注册数据存储,您能够享受到一站式流计算开发平台提供的便利性。需要注意的是,公共云在使用角色授权模式下,只能注册当前用户下的其他数据存储,跨属主的数据存储不能注册。例如,A用户拥有DataHub的ProjectA,但B用户希望在流计算使用ProjectA,目前流计算暂不支持这类使用情况。

注意,实际上,对于不属于当前用户的资源使用,用户可以直接用AccessId/AccessKey在DDL定义语句中直接写出,此时用户无法界面化操作数据存储,但是作业是可以直接运行的。

数据注册

您必须先注册流计算需要的的相关数据存储信息,才能够使用数据存储提供的各项功能。进入开发界面,在左侧边工具栏点击数据存储,点击(+)(添加功能的按钮),即可进入数据存储注册页面,如下图所示。

存储概览

再次提醒。流计算数据存储功能当前仅支持同账号属主下的存储资源,即当前使用流计算的A用户(包括A下所属的子账户),所注册的数据存储必须是A购买的数据存储。当前不支持跨账号授权。

数据预览

流计算为每个已经注册的数据存储提供了数据预览功能,点击数据存储,选择某个数据存储类型,即可预览数据。以DataHub为例。

选择数据存储-> DataHub存储-> 选择具体的Project -> 选择具体需要预览的Topic,双击即可进入查看数据存储

存储概览

自动生成DDL

流计算在引用外部存储时候,需要提前对于外部存储进行声明工作。对于一个流式输入引用的声明如下。


  1. CREATE TABLE in_stream(
  2. a varchar,
  3. b varchar,
  4. c timeStamp,
  5. ) with (
  6. type='datahub',
  7. endPoint='http://dh-cn-hangzhou.aliyuncs.com',
  8. project='blink_test',
  9. topic='ip_count02',
  10. accessId='LTAIYtafPsXXXX',
  11. accessKey='gUqyVwfkK2vfJI7jF90QXXXXX'
  12. );

流计算要求声明的表字段名称与源DataHub表保持一致,类型需要根据两边的类型进行一定的转换。这类转换工作琐碎,并且容易犯错。流计算提供了辅助生成DDL功能,帮助您一键生成建表DDL语句。

在数据开发页面,进入需要编辑的作业,点开侧边栏的数据存储工具箱。

存储概览这里选择作为输入表进行引用,点击”作为输入表引用”。此时流计算系统会在当前光标界面生成上述DDL信息。

附: 跨账号的资源引用

当前流计算界面不支持跨账号数据存储注册和使用,流计算数据存储功能当前仅支持同账号属主下的存储资源,即当前使用流计算的A用户(包括A下所属的子账户),所注册的数据存储必须是A购买的数据存储。当前不支持跨账号授权。如果您需要使用跨账号授权功能,可以考虑直接在DDL语句中手动添加外部数据引用。例如,如果用户A需要使用用户B的资源,则可以完成以下DDL定义。


  1. CREATE TABLE in_stream(
  2. a varchar,
  3. b varchar,
  4. c timeStamp,
  5. ) with (
  6. type='datahub',
  7. endPoint='http://dh-cn-hangzhou.aliyuncs.com',
  8. project='blink_test',
  9. topic='ip_count02',
  10. accessId='B用户授权的AccessId',
  11. accessKey='B用户授权的AccessKey'
  12. );
本文转自实时计算——存储概览