本文介绍如何使用Loghub数据源进行数据分析或者交互式开发。

建表语法

CREATE TABLE tbName(columnName dataType [,columnName dataType]*)
USING loghub
OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*);

Table Schema

创建Loghub表时,必须显式地定义表的字段信息。自定义Schema字段名称要和SLS日志中key的名称相同。
spark-sql> CREATE TABLE loghub_table_test(content string)
         > USING loghub
         > OPTIONS(
         > endpoint="sls.aliyuncs.com",
         > access.key.id="yHiu*******BG2s",
         > access.key.secret="ABctuw0M***************iKKljZy",
         > sls.project="test",
         > sls.store="myInstance");

spark-sql> DESC loghub_table_test;
content  string  NULL
Time taken: 0.436 seconds, Fetched 1 row(s)
不带Schema时如下。
spark-sql> CREATE TABLE loghub_table_test
         > USING loghub
         > OPTIONS
         > (...)

spark-sql> DESC loghub_table_test;
__logProject__ string  NULL
__logStore__ string NULL
__shard__ string NULL
__time__ string NULL
__topic__ string NULL
__source__ string NULL
__value__ string NULL
__sequence_number__ string NULL
Time taken: 0.436 seconds, Fetched 1 row(s)

配置参数说明

参数名 说明 是否必选
endpoint LogService API Endpoint。
access.key.id 阿里云AccessKeyId。
access.key.secret 阿里云AccessKeySecret。
sls.store LogService项目名。
sls.project LogStore名。
对于EMR SDK 2.0.0以及以上版本,Loghub Schema为可选项,参数说明如下。
参数 类型 说明
__logProject__ String LogStore名。
__logStore__ String LogService项目名。
__shard__ String Logstore的Shard。
__time__ String 该记录日志时间。
__topic__ String 日志主题。
__source__ String 日志服务的来源IP。
__value__ String 日志服务的内容。JSON格式。
__sequence_number__ String 记录序列号(通过appendSequenceNumber='true'开启该字段,默认为NULL)。