7分钟内完成24.2亿行、451GB数据的上载,借助 Vertica 你也可以
你知道吗?有一家的移动游戏公司,它能够在7分钟内,将24.2亿行数据加载到Vertica(451GB),在8节点企业Vertica群集(59 GB /分钟)上加载35秒。同样的实现,扩展到大约80个节点,可以达到 36 TB /小时!
这家游戏公司用了什么神器,竟然能在如此短的时间内实现如此大量数据的密集操作?
答案,还要从 Vertica 上找起。
Vertica 以其在大数据规模上的即席查询性能而闻名,但它也可以以非常高的速率加载数据。它甚至可以在查询时不间断地加载数据,从而实现数据的实时分析。
基本加载方法
将数据加载到Vertica有许多方法,它们都可以在同时查询数据库时运行。简单的方法,是使用Vertica的 COPY 命令从源文件加载数据。
并且,Vertica也支持各种输入文件类型。
Trickle Load - 在数据到达时将数据加载到内存
批量加载到内存 - 非常适合快速加载较小的数据量(几千兆字节)
批量加载到磁盘 - 适用于大数据量(许多千兆或太字节)
在每个Vertica加载流中每个节点都能够加载许多MB/秒。借助Vertica的无共享架构,可以并行执行加载,并在将服务器添加到Vertica群集时进行线性扩展。
Vertica客户加载体验
下面是我们Vertica客户有关加载速度的使用报告:
➯ Trickle加载 48MB /分钟
Comcast 有线网络中的设备生成的 SNMP 数据,在 5 台 HP ProLiant DL 380 服务器上,24×7 小时不间断加载,速率高达 135,000 行/秒。
➯ 批量加载到内存 300MB /分钟
➯ 批量加载到磁盘 5GB /分钟
1.5TB 的呼叫详细记录的加载和汇总,以前在行式数据仓库中需要5天时间,而Vertica只需要5个小时就能完成。
➯ 全球投资公司 Trickle加载 2.6GB /分钟
历史金融交易和报价(TaQ)数据以125GB /小时的速率批量加载到数据库中。新的TaQ数据以高达每秒90,000行(每行480b)的速率流入数据库。➯ 全球电子公司 4.6 TB /小时
近的POC,客户通过各种源文件实现微批量加载,包含使用各种Vertica加载方法(如涓流和直接加载)的物联网工作负载的质量控制测量。
来源支持
Vertica支持各种输入文件类型。这些文件也可以来自许多来源,包括数据库服务器本身,
存储在客户端计算机本地上的文件,Hadoop(HDFS),Spark,AWS S3云存储或SAN上的数据以及其他外部数据源。
Vertica同样支持流数据,以及大部分常见类型的文件,包括 ASCII / CSV /文本文件/BZIP / GZIP / LZO 压缩文件……
实际上使用 Vertica 的用户定义加载(UDL)功能的任何其他文件格式” 改为 “实际上任何其他文件格式的文件都可以通过使用 Vertica 的用户定义加载(UDL)功能来实现。
流数据
传统数据仓库通常采用复杂的 ETL 或 ELT 解决方案来加载数据,这些解决方案涉及批量加载或小批量增量突发中的微批量。
虽然这些方法通常足以满足大多数传统数据仓库的需求,但物联网,点击流分析或其他大型工作负载环境中真正的大数据分析环境需要更复杂的东西。
为此,通过 Vertica 企业版附带的原生Apache Kafka 调度器,Vertica 支持持续加载实时数据。
此外,这种支持是双向的,您可以轻松地将数据推送到 Apache Kafka 以便摄取到其他应用程序或系统中。
线性可伸缩性
Vertica具有线性可扩展性。Vertica 可以在各种平台上运行,包括内部部署的Linux硬件,以及所有主要的云提供商——AWS,Google 和 Microsoft Azure。
有许多因素会影响负载性能,包括但不限于硬件规格、并发性、文件大小和宽度以及网络延迟。只需向流程添加更多节点,即可线性增加加载性能。
通过 Vertica 的资源管理功能,Vertica 还可以将加载活动与查询活动隔离开来,确保加载操作的专用资源不会干扰查询,反之亦然。
利用多达360个节点和资源管理隔离技术,一家的硅谷社交媒体公司实现了高达72 TB /小时的峰值加载速率。在180个节点,他们实现了24到41 TB /小时的一致性能。
使用Eon模式,Vertica是一个利用云中所有弹性计算和可扩展存储功能的数据库。在Eon模式下,Vertica可以利用云经济性——可以根据不断变化的工作负载快速扩展和缩小,并将数据大小与您希望专用于运行查询的计算机分开。
Eon 模式还可以得体地处理故障,即使在易变的云环境中也是如此。目前,Eon 模式是适用于 AWS 的 ,在Eon模式下,源数据可在共享存储上使用。本地缓存充当辅助副本。
这意味着添加和删除节点不会重新分配主要数据源。此共享存储模型可实现弹性,这意味着调整群集资源以适应群集的使用模式既省时又省钱。使用此模型,您可以灵活使用。
取决于您和您的工作量需求,您可以以少的计算资源来搭配较大的存储资源,也可以反其道而行之。重要的是,您可以实时添加更多计算节点,以增加额外的处理能力,而无需重新分布数据。
在Eon模式下,让Vertica无与伦比的优化器和执行引擎并未变化。在幕后,Vertica 使用存储 API 与底层存储进行交互。
PSTL
在Vertica中进行数据摄取的快方法是使用PSTL,即 Parallel Streaming Transformation Loader。
PSTL 是多代流数据处理和加载方案演进的结果,再加上Vertica多年来与许多客户在开源和闭源软件方面的集体经验。它是一种高度可扩展、容错性强、可扩展的自助服务应用程序框架,可以通过动态流数据源编写数据。它为完整的端到端管道提供了所有必要的组件,否则需要大量的自定义代码。
PSTL是Vertica专业服务提供的定制实时ETL产品,可在Vertica GitHub页面上作为开源产品提供。它基于Vertica与Kafka和Apache Spark集成的结构化流数据处理。这个应用程序框架允许使用户写SQL来处理流数据源。
来源 https://mp.weixin.qq.com/s/hw5XHOjrM_cujrzMSIQCFQ
相关文章