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

创建日志服务源表

更新时间:2017-12-29 15:19:52

日志服务本身是流数据存储,流计算只能将其作为流式数据输入或者流式数据输出。对于创建流式数据输入,示例如下:

  1. CREATE STREAM TABLE source_test_galaxy (
  2. name STRING,
  3. age STRING,
  4. id STRING
  5. ) WITH (
  6. type='loghub',
  7. endpoint='http://cn-hangzhou-corp.sls.aliyuncs.com',
  8. roleArn='acs:ram::xxxxxxxxxx:role/aliyunstreamdefaultrole',
  9. projectName='',
  10. logstore=''
  11. );

LogService实际上是一个半结构化存储,其中对于数据的Schema不提供强制定义,LogStore数据存放的是JSON MAP格式的数据,上述字段填写的是用户填写的业务字段信息。举例说明,用户记录的格式为:

  1. {
  2. "ip": 10.1.168.193”,
  3. "method": "GET",
  4. "status": "200",
  5. "length": "5",
  6. "ref_url": "-",
  7. "browser": "chrome"
  8. }

那么用户在流计算必须定义该LogStore的DDL是:

  1. CREATE STREAM TABLE source_test_galaxy (
  2. ip STRING,
  3. method STRING,
  4. status STRING,
  5. length STRING,
  6. ref_url STRING,
  7. browser STRING
  8. ) WITH (
  9. type='loghub',
  10. endpoint='http://cn-hangzhou-corp.sls.aliyuncs.com',
  11. roleArn='acs:ram::xxxxxxxxxx:role/aliyunstreamdefaultrole',
  12. projectName='',
  13. logstore=''
  14. );

实际上,由于LogStore不对数据做限制,因此可能存在不同行(记录)有不同的Key,例如:

  1. {
  2. "ip": 10.1.168.193”,
  3. "method": "GET",
  4. "status": "200",
  5. "length": "5",
  6. "ref_url": "-",
  7. "browser": "chrome"
  8. }
  9. {
  10. "ip": 10.1.168.193”,
  11. "method": "GET",
  12. "status": "200",
  13. "length": "5",
  14. "ref_url": "-",
  15. "browser": "chrome",
  16. "agent": "",
  17. "version": ""
  18. }

流计算会根据用户在DDL声明字段去LogStore获取数据,但是如果出现DDL中声明的字段在LogStore不存在,流计算将视为一种数据错误。如果需要容忍这类错误,请添加”allowKeyNotExists”参数。

WITH参数

字段名称 说明
type 数据存储类型,填写’loghub’(全小写)
accessId 能够读写该LogStore的accessId
accessKey 能够读写该LogStore的accessKey
arnRole STS的role信息
endpoint loghub的Endpoint,例如http://cn-hangzhou-corp.sls.aliyuncs.com
projectName LogHub的Project名称
logstore LogHub的LogStore名称
allowKeyNotExists 填写true或者false。true情况下,如果指定key不存在,返回null填充该字段;false情况下,如果指定key不存在,流计算会报错,强制要求用户介入处理。默认为true。

类型映射

LogHub中的数据都是String类型,建议用户均使用流计算的String类型对接LogHub

LogHub字段类型 建议流计算字段类型
String String

获取消息属性

流计算在读取LogHub数据时候,可以获取指定消息属性。请参看获取《消息属性》一章节。

本文导读目录