分布式数仓Hive
分布式数仓 Hive
hive
数仓
schema on read 底层HDFS
schema on read: 写入不检查(格式, 即不做校验), 读取检查
on read: 写入快
on write: 读取快
支持部分SQL
hive csv, 表, excel,txt ... -> 中间结构, 各种结构化的数据
中间结构: 面向列存的结构
RCFile, ORCFile
多元的数据如何融合处理?数据仓库:把很多来源的数据加载之后,把他们安装同一个方式存储。
比如交大的数据、复旦、同济的数据,可能分别有10、11、12个字段的数据,需要把这些数据”抽取、转换
存储“,通常来说把不同的文件转存储到Parquet/RC File的文件格式
RC File的文件:把原始的关系抽取某一列或者几列、甚至把整个表存储起来。同时文件最前面还有有一些元数据表达的行号是哪几行、或者是否有压缩,压缩后key长度。然后这些文件被建成HDFS的块。
Parquet:类似RC File。
存在的问题:需要ETL(抽取、转换、存储)然后写入到Parquet的中间文件格式,这个的代价是很大的。而这些文件在之后如果直接做SQL的时候效率很低。所以最终还是要转到SQL的数据库中(直接对数据库处理)那我们就想:如果数据来了,我们可不可以先把数据按照原始的格式存储,当我真正需要的时候,再把数据导入进来。所以这就是数据湖
ETL操作(清洗、转换和加载):
-
E: 重复, 缺失, 纠错, 监控报警
-
T: 数据格式统一, 数据类型转换, 数据聚合
-
L: 增量加载, 上下游推送
oneAPI
oneAPI 的核心思想是提供一个统一的、跨架构的编程模型,以简化在各种硬件平台(CPU、GPU、FPGA 等)上的开发和部署过程。它旨在解决开发者在面对异构计算环境时,需要针对不同硬件编写不同代码的难题,从而提高开发效率和代码的可移植性。3
以下是 oneAPI 的几个关键思想:
- 跨架构编程: oneAPI 的核心是 Data Parallel C++ (DPC++),它基于 SYCL 标准,并扩展了 C++ 功能,使开发者可以使用单一代码库在不同的硬件架构上运行代码。这消除了为不同硬件编写和维护多个代码库的需要。3 5
- 性能可移植性: oneAPI 不仅关注代码的可移植性,还致力于在不同架构上实现高性能。它提供了一套丰富的库和工具,可以帮助开发者优化代码,以充分利用不同硬件的特性。3
- 开放标准: oneAPI 基于开放的行业标准,例如 SYCL 和 OpenCL,这有助于促进不同硬件厂商之间的互操作性,并避免厂商锁定。3
- 异构计算: oneAPI 旨在充分利用异构计算环境的优势,将不同的计算任务分配到最合适的硬件上执行,例如将密集计算任务分配到 GPU,而将串行任务分配到 CPU。5
- 简化开发: 通过提供统一的编程模型和工具,oneAPI 可以简化开发流程,降低开发成本,并使开发者能够更快地将应用程序推向市场。4
oneAPI 的这些思想对于应对日益复杂的硬件环境至关重要。它为开发者提供了一种更有效、更灵活的方式来开发高性能、跨平台的应用程序。