CloudCanal x Hive 构建高效的实时数仓(1)

UPDATE SET
WHEN MATCHED [AND ] THEN
DELETE
WHEN NOT MATCHED [AND ] THEN INSERT VALUES


#### 任务级的临时表


在大数据场景下,多表汇聚的情况十分普遍,CloudCanal 在构建临时表时,利用源端的订阅 Schema Table 信息,创建不同的临时表。


通过这种方式,无论是相同或不同的任务、相同或不同的 Schema(源端)、相同或不同的 Table(源端),都能将数据写入不同的临时表,最终合并到同一个实际表中,互相之间不会产生影响。


![image.png](https://img-blog.csdnimg.cn/img_convert/ae47d08e4c195a772790ddd776a2a90e.png)


#### 基于 HDFS 文件的写入方式


Hive 是建立在 Hadoop 体系上的数据仓库,而实际的数据存储在 HDFS 中。


如果直接通过 HQL 将增量数据写入 Hive,Hive 会将 HQL 转化为 MR Job,由于每一个 MR Job 处理速度相对较慢,这将导致增量性能极其差。


CloudCanal 在进行数据写入的时候,选择的是绕过 Hive 这层,直接写入 HDFS 文件系统。


目前支持 HDFS 文件格式:Text、Orc、Parquet。


#### 临时表统一 Schema


基于临时表构建的增量方式,如果临时表分散在不同的 Schema 中,将给 DBA 的管理带来不便。


为了简化管理,CloudCanal 将所有临时表构建在统一的 Schema 下,并允许用户自定义其临时表路径。


### 示例


#### 准备 CloudCanal


* 下载安装 [CloudCanal 私有部署版本]( )


#### 添加数据源


* **数据源管理** -> **添加数据源, 添加** **MySQL、Hive**

 ![image.png](https://img-blog.csdnimg.cn/img_convert/6f0a500385491488a4a799a1b57cdd77.png)  
 ![image.png](https://img-blog.csdnimg.cn/img_convert/82ae2540a3073f6213f4262028491d09.png)


#### 创建同步任务


* 选择源端 **MySQL** 和目标端 **Hive**,同步的 **Schema** 和 **Table**,高级参数含义参考 [MySQL -> Hive]( )

 ![image.png](https://img-blog.csdnimg.cn/img_convert/12c0f30d66d51d6b9a6c236f6f5251ee.png)
* 任务创建第四步,点击 **配置分区键**
* 选择 **分区键类型** 以及 **HDFS 文件类型**

 ![image.png](https://img-blog.csdnimg.cn/img_convert/f6986fdfc5957df7fe91e038c4c9a8aa.png)  
 ![image.png](https://img-blog.csdnimg.cn/img_convert/2411efa3a2899c89cec8c9f1c523f847.png)
* 点击下一步,创建任务即可

 ![image.png](https://img-blog.csdnimg.cn/img_convert/bd155039a33ef58e647a17d60e05b0b0.png)


### 未来方向


#### 文件 Append 写入方式


目前 HDFS 文件写入处理,是每批数据写到一个文件中,并不会处理历史数据文件,更加合理的方式是基于历史文件进行 Append  
 追加,写满之后再切换为下一个文件。


#### 提供参数优化 MR 处理速度


目前 CloudCanal 并没有提供参数入口用于优化 MR 处理速度,而是自动使用用户所配置的,未来 CloudCanal 将提供一个参数入口用于用户自定义每一个  
 MR Job 的处理并行度等优化参数。


#### 支持 MERGE INTO 合并方式


目前 CloudCanal 仅支持 INSERT OVERWRITE 的合并方式,这种方式更为通用,而 MERGE INTO 此种合并方式速度更快,但限制较多,未来  
 CloudCanal 也会支持此种合并方式。


#### 支持自定义分区键


目前 CloudCanal 仅支持按照日期选择分区键,目前暂时不支持更多分区键的选择,未来 CloudCanal 会提供更多分区键的选择。


### 总结


本篇文章简单介绍 [CloudCanal]( ) 对于全生命周期的数据流动的初步探索,并通过 MySQL -> Hive 示例介绍其使用。




![img](https://img-blog.csdnimg.cn/img_convert/6ea512835a955d3be2dcafd4cdd108f0.png)
![img](https://img-blog.csdnimg.cn/img_convert/4ea233d4d7862d0d86ca3d19b9d1eec8.png)
![img](https://img-blog.csdnimg.cn/img_convert/9905778c417fb479019f0616af53d3f1.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

1880)]
[外链图片转存中...(img-lOGYeTeu-4702037071881)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值