通常是有三种打法
1.从计算引擎去做,从上往下做。
就是flink的store table方案,在计算引擎层面统一底层的存储。
- 优势:实时计算的风口,实时或者近线计算的事实标准,天然的优势。
- 劣势:跟上游的计算引擎绑定的太紧,将来有变更风险。而且稳定性还不足。
2.从存储去做,从下往上做。
也就是湖框架三杰,iceberg、hudi、Delta Lake。
这里又有两种做法。
其一是湖上建仓,例如Delta Lake的方案。完全摒弃原本的hive体系。通过Delta Lake来解决结构化、非结构化等数据的读写。在湖格式层上面再构建一个统一元数据层。
其二是仓上建湖,在原本的hdfs的块存储介质上,加上hudi、iceberg等框架,解决湖场景下的数据实时写入能力,当然也保障了湖的能力,典型的代表就是snowflake。
当然两种方案现在在趋同,差异化在缩小。因为大家都是殊途同归。
整体架构层面上
业务层:场景化构建
阅读全文…