全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
流计算

存储概览

更新时间:2017-06-07 13:26:11

数据存储


为方便用户管理数据存储,阿里云流计算提供包括RDS、ADS、OTS等各类数据存储系统的管理界面。让用户无需跨越多种产品的管理页面,使用阿里云流计算平台,即可让你一站式管理你的云上数据存储。

特别注意有两点:

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

  • 数据存储注册需要提前授权,请参看《角色授权

存储类别

流式存储

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

支持情况 输入 输出
DataHub 支持 支持
日志服务(LogHub) 支持 支持
数据传输(DTS) [1] 无法支持
物联网套件(IOT) [2] 暂不支持
消息服务(Message Service) 暂不支持 支持,[3]
消息队列(Message Queue) 暂不支持 暂不支持

备注:

  1. DTS本身无法和流计算直接打通,需要将DTS数据导入Dat aHub后,下游流计算和MaxCompute均可以无缝集成DataHub。DTS本身作为RDS的BinLog采集工具,是不支持数据写入。
  2. 物联网套件本身无法和流计算直接打通,需要将IOT数据导入DataHub后,下游流计算和MaxCompute均可以无缝集成DataHub。IOT不支持数据写入。
  3. 目前仅支持以JSON格式写出到消息服务。
  4. 数据写入MaxCompute的路径可以先写入DataHub,DataHub使用Connector功能实现分钟级别归档到MaxCompute。

静态存储

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

支持情况 维表 输出
分析型数据库(AnalyticDB) 不支持 支持
表格存储(TableStore) 支持 支持
RDS(Mysql/SqlServer/PostgreSQL/Oracle) 支持 支持
DRDS 暂不支持 支持
OSS 暂不支持 暂不支持
MaxCompute 暂不支持 [1]

备注:

  1. 数据写入MaxCompute的路径可以先写入DataHub,DataHub使用Connector功能实现分钟级别归档到MaxCompute。

存储使用

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

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

数据注册

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

注册存储

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

数据预览

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

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

    选择Topic

  • 选择高级查看,可以针对数据存储进行指定的抽样预览,例如针对DataHub可以设置时间查询预览具体的数据。

    数据抽样

注,部分二进制存储系统不提供数据存储预览功能,例如消息服务底层实际上是无结构化存储,当前流计算不提供数据预览功能。

自动生成DDL

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

  1. CREATE STREAM TABLE tmall_trade_detail (
  2. tid BIGINT,
  3. buyer_uid BIGINT,
  4. seller_uid BIGINT,
  5. gmtdate BIGINT,
  6. payment DOUBLE
  7. ) WITH (
  8. type='datahub',
  9. endpoint='http://dh-cn-hangzhou.aliyun-inc.com',
  10. accessId='',
  11. accessKey='',
  12. projectName='smoketest_beta_ay62b_3',
  13. topic='tmall_trade_detail'
  14. );

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

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

开发

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

附: 跨账号的资源引用

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

  1. create stream table stream_source (
  2. name STRING,
  3. value STRING
  4. ) WITH (
  5. type='datahub',
  6. endpoint='http://dh-cn-hangzhou.aliyun-inc.com',
  7. accessId='B用户授权的AccessId',
  8. accessKey='B用户授权的AccessKey',
  9. projectName='project',
  10. topic='topic'
  11. );
本文导读目录