50亿海量数据如何高效存储和分析? GaussDB (for Cassandra) 3个秘诀搞定
摘要:信息社会正在从互联网时代走向物联网时代,企业不可避免的要面对数据量剧增带来的一系列问题:如何高效存储和扩容,如何在对原有业务改动最小的情况下做到智能化和实时分析。
本文分享自华为云社区《50亿海量数据如何高效存储和分析? GaussDB (for Cassandra) 3个秘诀搞定》,作者: Cassandra官方 。
当下,信息社会正在从互联网时代走向物联网时代,信息交互变得更加庞杂、高效和智能。对于互联网公司和IOT企业来说,既是机遇,也是挑战。因为,企业不可避免的要面对数据量剧增带来的一系列问题:如何高效存储和扩容,如何在对原有业务改动最小的情况下做到智能化和实时分析。
针对挑战,华为云GaussDB (for Cassandra) 为客户提供了强扩展、高存储、高效导入/导出和实时分析等一系列能力,并成功服务了众多互联网公司和IOT企业,获得了客户的高度认可和支持。本文将以其中一个客户业务的痛点问题举例,聊聊高效存储和实时分析的3个秘诀。
海量存储,PB级无感扩展
该用户在线下本地化部署使用数据库或者使用其他的存储为云盘的数据库时,常常需要在容量达到阈值时,提前规划和申购存储资源,可能还需要连带扩容不必要的计算资源。而使用GaussDB (for Cassandra)之后,便再无此烦恼。GaussDB (for Cassandra)采用存算分离架构,可单独扩展存储,高效扩容,业务无感,最高可扩展到PB级。
此外,客户为了做大数据分析,将数据库中的数据再写入一份到HDFS中,供MapReduce和Spark分析,同时需要维护两套资源,维护和资源成本成为了痛点。而客户使用GaussDB (for Cassandra)之后,可以仅采用GaussDB (for Cassandra)即可完成数据库存储和对接大数据分析的功能,同时GaussDB (for Cassandra)提供了更为易用的CQL接口,让用户更加专注功能开发,而不是资源管理。
数据变更捕获和实时分析
客户的一个使用场景需要将爬虫或用户输入的数据,进行在线分析和实时推荐业务,该业务中全量数据达到了50亿条,但增量数据不足5亿,分析对象主要是每日新增数据。在这个场景中,GaussDB (for Cassandra)为客户提供了streaming服务+实时分析解决方案,在损失小部分读写性能的前提下,客户端无需改造即可做到数据读写和实时分析并行,解决方案如下图,该解决方案主要有以下几个阶段:
- 客户业务用过开源驱动写入数据到GaussDB (for Cassandra)
- GaussDB (for Cassandra)对外提供streaming接口,该接口可获取数据变更捕获
- 客户构建的流服务组件读取streaming接口数据写入到指定的Kafka队列
- Kafka 队列将streaming数据写入到Spark或者Flink中
- 客户在Spark中可对增量数据做分析,也可合并之后做全量分析
全量数据导出分析
客户的另一个业务需要周期性对全量数据进行分析和处理,但不想影响在线业务,希望在闲时处理。GaussDB (for Cassandra)提供了全量数据导出和分析解决方案,可在业务低峰期触发任务进行数据导出和冷数据分析,数据导出速率是开源的10+倍,同时做到对业务读写基本无影响。如下为互联网客户每周定期导出数据分析用户画像的解决方案,该方案有以下几个阶段:
- 客户根据需求配置ECS规格,并挂载obsfs并行文件系统
- 客户在DLF上配置导出作业,包括ECS信息,导出参数和定时任务
- CDM下发作业任务
- ECS上的导出任务将GaussDB (for Cassandra)中的指定表指定条件的数据导出到obsfs
- Spark从obsfs中读取全量数据进行数据分析
通过这3个秘诀,华为云GaussDB (for Cassandra)完美解决了难扩展、高成本、变更不及时等问题,实现了海量数据的高效存储和实时分析,为互联网公司和IOT企业的数字化发展提供了更多可能。欲了解更多GaussDB (for Cassandra)详情信息,欢迎移步华为云官网。
本文作者:华为云高斯Cassandra团队
杭州西安深圳简历投递:zhaojuan.zhao@huawei.com
原文地址:https://www.cnblogs.com/huaweiyun/p/15232662.html
- Django CSRF Bypass (CVE-2016-7401) 漏洞分析
- 如何使用Cloudera Manager禁用YARN的HA
- Web Worker 中的 importScripts 和 baseHref 同源策略绕过问题
- 如何使用Java代码访问CDH的Solr服务
- Safari UXSS漏洞分析(CVE-2016-4758)
- Sqoop抽取Hive Parquet表数据到MySQL异常分析
- Hue中使用Oozie创建Ssh工作流时sudo命令执行失败问题分析
- [译]Safari URL重定向漏洞(CVE-2016-4585)利用分析
- Hive中的Timestamp类型日期与Impala中显示不一致分析(补充)
- 百篇(5):FeignClient 在不同场景中的应用
- 如何使用Hue上创建一个完整Oozie工作流
- MySQL远程代码执行/权限提升漏洞的分析与实践(CVE-2016-6662)
- 如何在CDH集群上部署Python3运行环境及运行Python作业
- Hacking Aria2 RPC Daemon
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 字符串处理算法题 -> 替换空格
- 简单二分法查找
- 链表之Python与C
- Python MQTT
- 从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。 例如,输入3,屏幕上将显示“333”。
- ESP32 OTA详解-中文翻译版
- 汇编语言从键盘输入一个字符串(串长不大于80)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z)
- 求100以内所有奇数的和,存于字变量X中。
- pyinstaller打包出错numpy.core.multiarray failed to import
- 从包含10个无符号数的字节数组array中选出最小的一个数存于变量MIN中,并将该数以十进制形式显示出来。
- 可修改内容的优先级队列
- STM32定时器与中断整理
- 计算CNN卷积神经网络中各层的参数数量「附代码」
- C++ 万字长文第一篇---拿下字节面试
- 家国梦自动收取金币、货物、升级建筑、拆相册等脚本