TDBank数据接入指引
概述
TDBank数据接入需要以下步骤:
新建项目(可选)
新建Hippo topic(可选)
新建接入
部署agent
工作流任务配置(可选)
1. 新建项目
由于数据接入必须与项目关联,因此如果还没有创建项目则需要新建项目。
操作示例(以下示例操作都是以admin用户登陆):
序号
操作步骤
预期结果
备注
1.
点击 平台管理-项目管理-创建项目
2.
输入 项目名称:POC测试项目 项目标识:project_poc 项目管理员:admin 点击 下一步
3.
输入 资源池名称:resources_poc 权重:1 点击 下一步
4.
点击 创建
项目管理页面中可以看到 POC测试项目
2. 新建Hippo topic
由于数据是通过消息中间件Hippo来接入,因此如果还没有创建Hippo topic则需要新建。新建topic分为两步,申请与审批。
2.1 topic申请
操作示例:
序号
操作步骤
预期结果
备注
1.
点击 数据接入-hippo管理-接入申请
2.
输入 Topic名称:topic_poc IP列表:* 队列模型:并发 数据量:10000 峰值速率:100 负责人:admin
3.
点击 确认提交
2.2 topic审批
操作示例:
序号
操作步骤
预期结果
备注
1.
点击admin - 个人中心 - 审批单 - hippo - 审批
2.
输入 勾选 集群选择 新增队列数:2 点击 通过
在 数据接入-hippo管理-数据接入-接入列表 中可以看到 topic_poc
3. 新建接入
点击 数据接入-数据接入-新建接入 开始填写数据接入信息,需要填写3部分信息:基本信息,接口信息,资源信息。
3.1 基本信息
与数据流向无关的信息,
接入名称
项目名称
责任人
消息格式:agent端发送的Hippo消息格式,目前只支持文本
数据编码:agent端发送的消息编码,目前只支持UTF-8
源文件分隔符:agent端发送的消息字段分隔符
数据流向信息,分为流向HDFS与流向DB,
hadoopJobUgi:此配置暂时没有使用,可以填写user:pswd,group
fsdefaultname:要流向的HDFS集群。如果是TBDS的HDFS集群,则默认为hdfs://hdfsCluster
isHadoopJobUgi:此配置暂时没有使用,可选择true
流向DB则填写DB连接的相关信息,这里就不赘述了。
3.2 接口信息
数据接入中,一个接口对应了一张数据源表。一个接入配置中可以配置多个接口。下面对各个字段给出说明:
接口名:此字段用来唯一标识此接入中的数据源表,不可随意填写,填写规则为
大写库名_大写表名
。例如要接入的源表为db_poc库的tbl_poc表,则接口名应填写为DB_POC_TBL_POC。agent端发送的消息,会在消息头带上接口名。若使用OGG采集,接口名规则有所差异,参考OGG部署文档。接口描述:填写描述信息
业务的并发度:此字段为源表接入数据被消费的并发度控制,如果是大表可设置较高的并发度。
文件大小限制:当流向HDFS时,此字段为数据写入HDFS文件大小阈值,即当数据达到此大小就立刻写入HDFS。默认为120M。若业务需要尽快在HDFS看到数据则可将此阈值调小,但随之而来的就是会产生较多的小文件。
创建hive表:若勾选是,则系统将自动创建对应的hive表,以便后续将HDFS的数据导入hive表中。目前自动创建的库名为
tbds_topic名称
,表名为接口名,均为小写,表字段与接口字段一致。注意,创建hive表可能会失败,若创建失败将会给用户发送告警信息,可在个人中心查看,此时需要用户手动在库表管理页面创建hive库表。获取字段:接口字段有三种方式来输入:1. 纯手动输入。此时不需要勾选获取字段;2. 服务端获取。通过获取工作流配置的表信息,自动导入表结构;3. 导入表结构文件。通过我们提供的表结构导出工具,将源表结构导出成文件,并在此处导入。另外,全量与增量的不同在于,增量字段会比全量字段多出来4个字段:操作类型(增删改),源表标识符,操作时间,当前时间。
接口字段:agent端发送的消息字段。如上述三种方式输入。
备注:
当落地DB时,落地数据库对应数据流向的连接信息;落地数据表名为:接口名(大小写敏感);
落地数据表的表名为
大写源库名_大写源表名
,表需要已创建;
示例:从DB接入数据落地到目的DB中 接入源表信息:db_poc库 下的tbl_poc表 目的数据库配置:db_desc库 下的DB_POC_TBL_POC 表,落地表名不能随意填写,规则
大写源库名_大写源表名
,即为:DB_POC_TBL_POC,落地表名与接口名保持一致。
3.3 资源信息
这里只需要选择要使用的topic跟topology。目前topic跟接入是一一对应的,也就是一个topic只能被一个接入使用。而topology则是可以被多个接入复用的。这里我们还没有创建topology,需要先新建。
这里要配置的是TStorm运行该topology的参数,需要根据TStorm集群的情况来配置,这里就不赘述了。
接入配置(流向HDFS)操作示例:
序号
操作步骤
预期结果
备注
1.
点击 数据接入-数据接入-新建接入
2.
输入 接入名称:datahub_poc 项目名称:POC测试项目 责任人:admin 消息格式:文本 数据编码:utf-8 源文件分隔符:^A(\u0001) 数据流向:HDFS hadoopJobUgi:user:pswd,group fsdefaultname:hdfs://hdfsCluster isHadoopJobUgi:true 点击 下一步
3.
输入 接口名:DB_POC_TBL_POC 接口描述:db_poc库tbl_poc表的全量数据 业务的并发度:2 文件大小限制: 10 创建hive表: 是 接口字段: id int content string 点击 下一步
4.
点击 新建Topology 输入 Topology名称:topo_poc Topology.workers:3 Spout.parallel:3 Bolt.parallel:3 Checker.paralle:1 Topology.ackers:1 点击 确定
5.
输入 Topic名称:topic_poc Topology名称:topo_poc 点击 资源验证 点击 提交申请
资源验证通过提交成功
提交申请后,需在 个人中心-审批单-接入申请 中进行审批,类似topic审批操作。
4. agent部署
数据接入采用了开源的Flume来作为采集数据的agent。agent部署需要区分全量数据采集与增量数据采集。以下为安装步骤,详细配置请参考TDBank采集接口详解。
4.1 全量数据采集
所需软件包:
apache-flume-1.7.0-bin.tar.gz
data-hub-1.0.0-SNAPSHOT.tar.gz
metric-2.0-bin.tar.gz
安装步骤:
安装Flume agent
安装TMetric agent
4.1.1 安装Flume agent
解压apache-flume-1.7.0-bin.tar.gz到flume目录
解压data-hub-1.0.0-SNAPSHOT.tar.gz到data-hub目录
修改data-hub/conf/common.properties配置
拷贝data-hub/conf/flume.conf到flume/conf目录
修改flume/conf/flume.conf配置
修改flume/conf/log4j.properties配置
启动Flume agent:
4.1.2 安装TMetric agent
解压metric-2.0-bin.tar.gz到tmetric目录
修改tmetric/conf/agent.ini配置
启动TMetric agent:bin/agent.sh start
4.2 增量数据采集
增量数据采集有两种方式:使用Oracle GoldenGate(以下简称OGG)采集,或者使用Flume的SQLSource采集。
使用OGG可以采集到所有的增量数据,但是配置较为繁琐;
使用SQLSource可以用程序生成配置文件,但是无法采集到所有的增量数据,限制如下:
无法采集到delete的数据;
增量insert/update的数据必须具有自增的主键或者时间戳字段;
4.2.1 使用OGG
所需软件包:
apache-flume-1.7.0-bin.tar.gz
data-hub-1.0.0-SNAPSHOT.tar.gz
metric-2.0-bin.tar.gz
OGG相关软件包
安装步骤:
安装Flume agent。同全量。需修改source配置;
安装TMetric agent。同全量;
安装OGG Flume Adapter,参考TDBank采集接口详解;
安装OGG for MySQL/SQLServer/Oracle等,参考TDBank采集接口详解;
4.2.2 使用SQLSource
所需软件包:
apache-flume-1.7.0-bin.tar.gz
data-hub-1.0.0-SNAPSHOT.tar.gz
metric-2.0-bin.tar.gz
安装步骤:
安装Flume agent。同全量;
安装TMetric agent。同全量;
5. 工作流任务配置
若需要将HDFS的数据自动导入到Hive表中,则需要在创建接入时勾选创建hive表,并且配置工作流任务。选择如下工作流任务类型,创建任务并运行,任务参数可以不用修改。
注意,需要保证该任务全局(整个集群)只有一个,否则会重复导入数据。
Last updated
Was this helpful?