这篇博客文章概述了OpDB的NoSQL、组件集成和对象存储支持功能。这些详细信息将帮助应用程序架构师了解Cloudera的运营数据库的灵活NoSQL(No Schema)功能,以及它们是否满足正在构建的应用程序的要求。
文件存储
Cloudera的运营数据库(OpDB)是一个多模型的系统,因为它原生支持系统内的许多不同类型的对象模型。
用户可以选择键-值、宽列和关系、或提供自己的对象模型。
JSON,XML和其他模型也可以通过例如Nifi、Hive进行转换和存储,或者以键-值对形式原生存储,并使用例如Hive进行查询。还可以通过JSONRest使用自定义实现来支持JSON和XML。
对象库
Cloudera的OpDB为一致的对象存储提供直接支持,例如Azure Data Lake Store和S3(AWS本机和Ceph等实现)。
对象存储可用于存储大量数据所在的HBase存储文件或作为备份目标。
支持的功能
1.3.1. 核心价值
Cloudera的OpDB默认情况下存储未类型化的数据,这意味着任何对象都可以原生存储在键值中,而对存储值的数量和类型几乎没有限制。对象的最大大小是服务器的内存大小。
1.3.2. 表样式
Cloudera的OpDB是一个宽列的数据存储,并且原生提供表样式的功能,例如行查找以及将数百万列分组为列族。
必须在创建表时定义列簇。但不必在创建表时定义列,而是根据需要创建列,从而可以进行灵活的schema演变。
列中的数据类型是灵活的并且是用户自定义的。用户可以决定是要利用这种灵活性还是要利用关系DBMS功能来换取降低数据类型的灵活性。
Column Family | Column Family | |||
---|---|---|---|---|
Column | Column | Column | Column | |
RowKey | Cell | Cell | Cell | Cell |
RowKey | Cell | Cell | Cell | Cell |
1.3.3. 无冲突的复制数据类型
Cloudera的OpDB支持无冲突的复制数据类型(CRDT)。默认情况下提供它,并且复制子系统提供强大的最终一致性或强大的时间轴一致性。
组件集成
HDFS集成
由于Cloudera在该领域的强大实力,它提供了包括HDFS在内的整个Hadoop生态系统的紧密集成。
可以使用快照导出数据,也可以从正在运行的系统导出数据,也可以通过离线直接复制基础文件(HDFS上的HFiles)来导出数据。
Spark集成
Cloudera的OpDB支持Spark。存在与Spark的多种集成,使Spark可以将表作为外部数据源或接收器进行访问。用户可以在DataFrame或DataSet上使用Spark-SQL进行操作。
有了DataFrame和DataSet支持,就可以使用催化剂中的所有优化技术。通过这种方式,可以实现数据局部性、分区修剪、谓词下推、扫描和BulkGate。可以将Spark Worker节点共置于群集中,以实现数据局部性。还支持对OpDB的读写。
对于每个表,必须提供目录。该目录包括行键,具有数据类型和预定义列系列的列,并且它定义了列与表模式之间的映射。目录是用户定义的json格式。
HBase数据帧是标准的Spark数据帧,并且能够与任何其他数据源(例如Hive,ORC,Parquet,JSON等)进行交互。Java基本类型被支持为三个内部Serdes:Avro,Phoenix和PrimitiveType。
流媒体集成
Cloudera提供了几种流数据处理框架和工具,这些框架和工具与其OpDB产品集成在一起。
Cloudera DataFlow(CDF)
Cloudera DataFlow是一个可扩展的实时流数据平台,可收集、整理和分析数据,从而使客户获得关键洞察,以立即采取行动。
流管理
Cloudera Flow Management(CFM)是由Apache NiFi支持的无代码数据摄取和管理解决方案。它为企业提供了高度可扩展的数据移动、转换和管理功能。简而言之,Nifi旨在自动执行系统之间的数据流。有关更多信息,请参阅Cloudera Flow Management 。
流分析
由Apache Flink支持的Cloudera Streaming Analytics提供了用于实时流处理和流分析的框架。CSA提供了低延迟的灵活流解决方案,可以扩展到大吞吐量和状态。它根据所选的源和接收器提供所需的连接器,例如HBase Streaming连接器。有关更多信息,请参阅Cloudera流分析
流处理
Cloudera流处理(CSP)提供了高级消息传递,流处理和分析功能,这些功能由Apache Kafka作为核心流处理引擎提供支持。它还提供了流管理功能。有关更多信息,请参阅Cloudera流处理 。
Spark Streaming
Spark Streaming是在Spark之上构建的微批处理流处理框架。HBase和Spark Streaming成为了很好的伴侣,因为HBase可以与Spark Streaming一起提供以下好处:
• 即时获取参考数据或配置文件数据的地方
• 以支持Spark Streaming 仅处理一次的方式存储计数或聚合的地方。
结论
在此博客文章中,我们介绍了OpDB的NoSQL功能。我们还看到了OpDB如何与CDP中的其他组件集成。
这是有关CDP中Cloudera的运营数据库(OpDB)系列的最后一篇博客文章。您可以从CDP中的Operational Database 从该系列的开头开始。