Skip to content

Pandora Sender

Sun Jianbo edited this page Apr 8, 2018 · 32 revisions

Pandora 是七牛大数据团队开发的一站式大数据处理平台,Pandora Sender可以将结构化的数据发送到Pandora大数据平台。

典型配置

{
        "name":"req_io.pandora.sender",
        "sender_type":"pandora",
        "fault_tolerant":"false",
        "pandora_ak":"",  #可以直接填写ak,也可使用系统环境变量:"pandora_ak":"${YOUR_ENV_AK}"
        "pandora_sk":"", #可以直接填写sk,也可使用系统环境变量:"pandora_sk":"${YOUR_ENV_SK}"
        "pandora_host":"https://pipeline.qiniu.com",
        "pandora_repo_name":"repo_req_io",
        "pandora_region":"nb",
        "logkit_send_time": "true",
        "pandora_extra_info": "true",
        "request_rate_limit":"100",
        "flow_rate_limit":"1024",
        "pandora_schema":"field1 pandora_field1,field2,field3 pandora_field3,...",
        "pandora_auto_create":"pandora_field1 *s,field2 l,pandora_field3 d,field4 f",
        "pandora_gzip":"false",
        "pandora_uuid":"false",
        "pandora_schema_free":"true",
        "pandora_enable_logdb":"true",
        "force_microsecond":"false",
        "pandora_schema_update_interval":"300"
}
  1. pandora_ak 必填,qiniu账号的ak.可以直接填写ak,若不想把ak字符串直接写到配置文件,也可使用"${YOUR_ENV_AK_NAME}"从系统环境变量YOUR_ENV_AK_NAME中读取ak
  2. pandora_sk 必填,qiniu账号的sk.可以直接填写sk,若不想把sk字符串直接写到配置文件,也可使用"${YOUR_ENV_SK_NAME}"从系统环境变量YOUR_ENV_SK_NAME中读取sk
  3. pandora_host 必填,pandora 服务地址
  4. pandora_repo_name 必填, pandora 的repo名字
  5. pandora_region 必填,pandora 服务的地域
  6. logkit_send_time 可选字段,默认为"true",是否在发送时自动添加发送时间,时间格式为RFC3339Nano
  7. pandora_extra_info 可选字段,默认为"true",是否在发送时自动添加一些额外的信息,包括Core(内核版本)、Hostname(主机名)、OS(操作系统)、Kernel(内核)、Platform(平台)和LocalIp(本地IP)等,强烈建议在开启 logkit cluster 功能时开启此选项。
  8. pandora_schema 可选字段,提供了schema的选项和别名功能,如果不填,则认为所有parser出来的field只要符合pandora schema就发送;如果填,可以只选择填了的字段打向pandora,根据逗号分隔,如果要以别名的方式打向pandora,加上空格跟上别名即可。若最后以逗号省略号",..."结尾则表示其他字段也以pandora的schema为准发送。Pandora Sender会在runner启动时获取repo的schema,若用户缺少一些必填的schema,会帮助填上默认值。
  9. pandora_schema_update_interval 可选字段,自动更新pandora schema的周期时间,单位为秒,默认300s
  10. request_rate_limit 可选字段,每秒请求数限制,默认不限速,注意填写的为数字字符串,如"500",表示每秒限制最多500个请求。注意,限速并发准确值,会有数值上的偏差,偏差范围在每秒20个请求以内。
  11. flow_rate_limit 可选字段, 每秒的流量限制,单位为KB,默认不限速,注意填写的为数字字符串,如"1024",表示限速每秒1024KB,注意,限速并发准确值,会有数值上的偏差,偏差范围在1KB以内。若单个batch的大小超过了流量限制,Logkit会将batch一拆为二。警告:若单个点的大小超过了流量限速的最大限制,logkit将发送不出该点,请根据单条日志大小谨慎配置。
  12. pandora_gzip 可选字段, 是否使用gzip压缩传输数据,默认不压缩。注意,压缩会占用CPU资源,但是会节省带宽,有利有弊,请根据业务情况选择。
  13. pandora_uuid 可选字段,是否在数据结果中自动生成Pandora_UUID字段,默认不开启,Pandora_UUID的生成规则采用RFC4122中描述的V4版本Random规则生成。padnora_uuid功能在数据中自动生成一个Pandora_UUID字段,该字段保证了发送出去的每一条数据都拥有一个唯一的UUID,可以用于数据去重等需要。
  14. force_microsecond 可选字段,默认false,不启用,该参数用来将数据源中的时间类型强制转换成微秒精度,并且加上一个微妙级的时间扰动,使得秒级精度下面的数据,同一秒内的不同数据有不同的时间精度。主要应用的场景为数据导出到Pandora TSDB时可以有更好的精度显示,使用了该参数不会产生数据覆盖问题。
  15. pandora_schema_free 可选字段,默认为false,不启用,该字段表示在用户数据有新字段时就更新Pandora 数据源,添加字段,如果数据源不存在,创建数据源。即pandora_schema_free功能包含pandora_auto_create。启用该字段最大的好处是免除了数据更新导致Pandora数据源少收集或无法收集的困扰,使得用户可以从schema中解放出来,无需在意解析到的字段名称。特别适合logkit的入门用户,一开始可以使用pandora_schema_free功能,快速将数据发送到Pandora,然后调试parser,解析出新的字段。注意,目前自动推导支持所有Pandora的数据类型,但是仅符合RFC3339格式的string会推导成date类型,其他都是按照数据的原始类型推导
  16. pandora_enable_logdb 可选字段, 默认为false,不启用,该字段表示是否在用户pandora_schema_free状态下直接将数据导出到Pandora日志检索服务。所以若pandora_enable_logdb生效的前提是pandora_schema_free是生效的。该配置会自动创建日志检索服务的仓库,同时在pandora_schema_free字段增加的情况下更新日志检索服务的仓库,更新导出。 注意,2017年11月27日前创建的日志检索服务仓库数据默认保存3天,之后创建的数据仓库,数据默认保存30天,如需长时间保存,请到七牛官方日志检索服务页面修改数据仓库的数据保存时间;对于已经存在的数据源,并且已经创建过同名导出,自动创建导出将不生效;自动创建导出的repo名称需要统一为小写,logdb命名的repo名称不支持大写
  17. pandora_logdb_name 可选字段, 默认与pandora_repo_name相同,可指定pandora_enable_logdb创建的日志检索仓库名称。
  18. pandora_logdb_host 可选字段, 默认为https://logdb.qiniu.com,创建日志检索仓库的服务地址。
  19. pandora_enable_tsdb可选字段, 默认为false,不启用,该字段表示是否在用户pandora_schema_free状态下直接将数据导出到Pandora时序数据库服务。所以若pandora_enable_tsdb生效的前提是pandora_schema_free是生效的。该配置会自动创建时序数据库的仓库,同时在pandora_schema_free字段增加的情况下更新时序数据库的仓库,更新导出。 注意,2017年11月27日前创建的日志检索服务仓库数据默认保存3天,之后创建的数据仓库,数据默认保存30天,如需长时间保存,请到七牛官方时序数据库管理页面修改数据仓库的数据保存时间;对于已经存在的数据源,并且已经创建过同名导出,自动创建导出将不生效;自动创建导出的repo名称需要统一为小写 tsdb命名的repo名称不支持大写
  20. pandora_tsdb_name 可选字段, 默认与pandora_repo_name相同,可指定pandora_enable_tsdb创建的时序数据库仓库名称。
  21. pandora_tsdb_series_name 可选字段, 默认与pandora_repo_name相同,可指定创建的时序数据库的序列名称。
  22. pandora_tsdb_series_tags 可选字段, 在创建序列时,将该选项中填入的字段设置为索引字段(具体请参考Pandora时序数据库服务), 当有多个字段时,用空格隔开。
  23. pandora_tsdb_host 可选字段, 默认为https://tsdb.qiniu.com,创建时序数据库仓库的服务地址。
  24. pandora_tsdb_timestamp 可选字段, 序列的时间戳字段,当字段为空时,时序数据库将自动将导出时间作为时间戳。
  25. pandora_auto_create 可选字段,该字段表示字段创建,默认为空,不自动创建。若填写该字段,则表示自动创建。若repo不存在,则先创建repo,若repo存在,则在已存在的repo上添加字段。repo的DSL创建规则为<字段名称> <类型>,字段名称和类型用空格符隔开,不同字段用逗号隔开。若字段必填,则在类型前加*号表示。如果开启了 pandora_schema_free 这里只要声明部分想要指定的字段和类型即可,无需写完全
    • pandora date类型:date,DATE,d,D
    • pandora long类型:long,LONG,l,L
    • pandora float类型: float,FLOAT,F,f
    • pandora string类型: string,STRING,S,s
    • pandora jsonstring类型: jsonstring,JSONSTRING,JSON,json
    • pandora bool类型: bool,BOOL,B,b,boolean
    • pandora array类型: array,ARRAY,A,a;括号中跟具体array元素的类型,如a(l),表示array里面都是long。同时,也可以省略小括号前的array类型申明,直接写(l),表示 array类型,里面的元素是long
    • pandora map类型: map,MAP,M,m;使用花括号表示具体类型,表达map里面的元素,如map{a l,b map{c b,x s}}, 表示map结构体里包含a字段,类型是long,b字段又是一个map,里面包含c字段,类型是bool,还包含x字段,类型是string。同时,也可以省略花括号前面的map类型,直接写{s l},表示map类型,里面的元素s为long类型。
  26. pandora_force_convert 可选字段,默认为 false。开启后会强制类型转换,如定义的pandora schema为long,而实际的为string,则会尝试将string解析为long类型(int64),若无法解析,则忽略该字段内容。使用这个功能可以解决一整条数据中有些字段生成的类型不确定导致写入pandora失败的问题。
  27. pandora_auto_convert_date 可选字段,默认为 true开启。会自动将用户的自动尝试转换为Pandora 的时间类型(date),pandora的时间类型为符合RFC3339格式的字符串,若已经符合该类型,则无需开启,关闭可节省CPU开销。默认开启,会尝试将进行各种类型的格式转换,包括不同的时间格式字符串的变化,整型作为unix timestamp进行转换等等。
  28. ignore_invalid_field 可选字段,默认为 true开启,会进行数据格式校验,并忽略不符合格式的字段数据,默认开启,关闭可以节省CPU开销。如Pandora的类型选择了jsonstring,若字符串不是合法的json字符串,就会忽略改部分字段内容,其他字段正常上报。
  29. pandora_enable_kodo 可选字段, 默认为false,不启用,该字段表示是否在用户pandora_schema_free状态下直接将数据导出到七牛云存储。所以若pandora_enable_kodo生效的前提是pandora_schema_free是生效的。注意:该配置不会自动创建云存储的bucket,使用该功能注意提前创建bucket,同时在pandora_schema_free字段增加的情况下会更新导出。 注意,自动导出到云存储的数据默认保存30天,如需长时间保存,请到workflow页面修改导出的数据保存时间
  30. pandora_bucket_name 当pandora_enable_kodo生效是必填, 默认与pandora_repo_name相同,指定云存储的bucket名称。
  31. qiniu_email 当pandora_enable_kodo生效时必填, 填写您账户的邮箱。
  32. pandora_unescape 可选字段,在pandora服务端反转译\\n=>\n, \\t=>\t; 由于pandora数据上传的编码方式会占用\t\n这两个符号,所以在sdk中打点时会默认把\t转译为\\t,把\n转译为\\n,开启这个选项就是在服务端把这个反转译回来。开启该选项也会转译数据中原有的这些\\t\\n符号
  33. number_use_float 可选字段,默认为"false",当填为true时,会将数据中所有的数字作为float类型。该功能适用于数字又有可能是整型又有可能是浮点型的场景,统一作为float,可避免数据类型冲突。

常见功能

  1. 自动创建Pandora数据源,通过pandora_auto_create字段创建。
  2. 自动添加Pandora数据字段,通过pandora_schema_free字段,可以自动更新Pandora的数据源,添加字段。
  3. 流量控制,通过request_rate_limit以及flow_rate_limit可以控制每秒的请求数以及每秒的请求数据量,若设置的batchsize过大导致流量限制,Logkit会自动将batch拆分。
  4. 压缩传输, 通过pandora_gzip配置,可以选择使用gzip压缩的方式传输数据,大大节约带宽。
  5. 字段选择与别名,通过pandora_schema可以选择要发送到Pandora的字段,同时可以将Parser出的字段名通过别名的方式与Pandora的名字进行一一对应。
  6. 类型转换,对于解析到的如stringlong等类型,会根据Pandora实际创建的数据源字段类型,进行一定的类型转换,可以进行类型转换的Pandora字段包括string(转换为字符串), long(转换为int64整型), float(转换为float64浮点型), date(转换为rfc3339格式的字符串时间表示),支持的转换为时间类型的数据包括:
    • 精确到微秒的整型(可以从数字、字符串中提取)
    • 2006/01/02 15:04:05,
    • 2006-01-02 15:04:05 -0700 MST,
    • 2006-01-02 15:04:05 -0700,
    • 2006-01-02 15:04:05,
    • 2006/01/02 15:04:05 -0700 MST,
    • 2006/01/02 15:04:05 -0700,
    • 2006-01-02 -0700 MST,
    • 2006-01-02 -0700,
    • 2006-01-02,
    • 2006/01/02 -0700 MST,
    • 2006/01/02 -0700,
    • 2006/01/02,
    • Mon Jan _2 15:04:05 2006 ANSIC,
    • Mon Jan _2 15:04:05 MST 2006 UnixDate,
    • Mon Jan 02 15:04:05 -0700 2006 RubyDate,
    • 02 Jan 06 15:04 MST RFC822,
    • 02 Jan 06 15:04 -0700 RFC822Z,
    • Monday, 02-Jan-06 15:04:05 MST RFC850,
    • Mon, 02 Jan 2006 15:04:05 MST RFC1123,
    • Mon, 02 Jan 2006 15:04:05 -0700 RFC1123Z,
    • 2006-01-02T15:04:05Z07:00 RFC3339,
    • 2006-01-02T15:04:05.999999999Z07:00 RFC3339Nano,
    • 3:04PM Kitchen,
    • Jan _2 15:04:05 Stamp,
    • Jan _2 15:04:05.000 StampMilli,
    • Jan _2 15:04:05.000000 StampMicro,
    • Jan _2 15:04:05.000000000 StampNano,
Clone this wiki locally