一、同步环境
1.mongodb版本:3.6.3。(有点老了,后来发现flinkcdc都只能监控一张表,多张表无法监控)
2.datax版本:自己编译的DataX-datax_v202210
3.hdfs版本:3.1.3
4.hive版本:3.1.2
二、同步思路
1.增量数据:需要每隔1小时将mongodb中17个集合的数据同步至hive,因为有数据生成时间,才用datax查询方式,将上一个小时的数据依次循环调用datax同步至hdfs,利用shell脚本和调度器定时装载至hive中形成ods层,并和其他表关联处理形成dwd层,提供给需求方。
2.全量数据:历史数据才用datax编写脚本循环读取+调度+hive动态分区方式同步至hive。因为hive动态分区默认只支持100个分区,我是按小时进行分区的,因此我每次只拉取4天数据,拉取太多报错,编写脚本,需要多少天,拉取多少天。(比较笨的方法,有更好的方式欢迎评论区讨论)
三、datax配置
{
"job": {
"content": [
{
"reader": {
"name": "mongodbreader",
"parameter": {
"address": ["xxxxxxxx:27017"],
"authDb": "admin",
"userName": "xxxxx",
"userPassword": "xxxx",
"dbName": "xxxx",
"collectionName": "xxxx",
"column": [
{
"name": "_id",
"type": "string"
},
{
"name": "data",
"type": "string"
},
{
"name": "gid",
"type": "string"
},
{
"name": "text",
"type": "string"
},
{
"name": "time",
"type": "bigint"
},
{
"name": "uid",
"type": "string"
}
],
"query":"{
\"time\":{ \"$gte\": ${start_time}, \"$lt\": ${end_time}}}"
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"column": [

最低0.47元/天 解锁文章
1537

被折叠的 条评论
为什么被折叠?



