doris通过catalog读取maxcomput和同步数据存在数据丢失问题分享

1.直接读取maxcompute数据演示


可以看到maxcompute里面是有数据的

2.doris创建mc的catalog并读取数据

创建mc的catalog按官网介绍操作即可

使用mccatalog读取maxcompute,发现数据丢失

3.清空mc表里的null值重新查询


然后重新使用catalog查询,可以看到有数据了

4.总结

1.doris对null不是很友好,在使用doris的时候需要尽量避免null值
2.为什么要使用catalog呢,一是方便,二catalog同步数据比datax效率会高很多,因为datax同步数据的时候需要将数据落盘再load进doris。catalog同步数据直接内存对接就可以了(注意使用catalog同步数据到doris的时候,原始表里面不能有null值,否则也可能存在丢数据的情况)

Doris是一个分布式列式查询引擎,而Elasticsearch(ES)是一个分布式搜索分析引擎,它们通常配合使用,例如通过ELK堆栈(Elasticsearch、LogstashKibana)。要在Doris读取ES中的数据,你需要通过一些中间步骤进行集成: 1. **数据同步**:首先,你可以选择将ES的数据定期同步到Hadoop Distributed File System (HDFS)或者其他适合Doris数据存储系统,如OSS(阿里云对象存储),这通常通过工具如Fluentd、Beats(Elastic Stack的一部分)或者Presto/ElasticIO这类跨系统数据提取工具。 2. **ETL处理**:同步完成后,可能需要对数据进行清洗转换,比如结构化数据,以便于Doris能直接查询。这个过程可以使用开源库如Apache Beam、Spark Streaming等。 3. **创建表**:在Doris中,你可以使用`CREATE TABLE`命令定义从HDFS或其他源加载数据的表,并指定ES的数据作为数据源。例如,如果你使用的是`druid`作为数据连接器,可能会创建类似这样的表: ```sql CREATE EXTERNAL TABLE es_data ( ... // 表的字段列表 ) PARTITIONED BY (dt STRING) LOCATION 'hdfs://path/to/your/data'; ``` 4. **编写SQL查询**:然后,你可以像查询HDFS上的其他表一样,使用Doris SQL查询ES数据。比如,查询特定日期范围内的数据: ```sql SELECT * FROM es_data WHERE dt BETWEEN '2022-01-01' AND '2022-12-31'; ``` 5. **优化性能**:由于ES的数据通常是实时变化的,你可能需要考虑使用流处理或者定时任务定期更新Doris中的数据视图,以保持数据一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值