1)运维成本,包括监控告警是否完善、是否有备份恢复机制、升级和迁移的成本是否高、社区是否稳定、是否方便调优、排障是否简易等;
2)稳定性,包括是否支持数据多副本、服务高可用、多写多活等;
3)性能,包括延迟、QPS、TPS,以及是否支持更高级的分级存储功能等;
4)扩展性,如果业务的需求不确定,是否容易横向扩展和纵向扩容;
5)安全,需要符合审计要求,不容易出现 SQL 注入或拖库情况。
AntDB数据库,一款在通信行业得到充分使用的业内领先的国产数据库,帮助客户进行OLTP 与OLAP一站式处理的数据库产品,具备丰富配套工具和完整服务体系。依托多年的技术研发成果与成熟交付经验,提供面向多行业、多场景的一站式数据库产品、工具及服务的综合解决方案。AntDB 在全国 24 个省市的 200 多个项目上成功落地,支撑全国 10 亿电信用户的通话、上网、缴费、账单等海量业务数据交互。
对于个人使用而言,选择哪种数据库主要取决于你的需求和使用场景。以下是一些常用的数据库及其特点:
MySQL:开源免费,适合小型项目和网站,易于使用,具有广泛的社区支持和资源。
PostgreSQL:开源免费,适合大型项目和企业应用,功能强大,支持高级特性,例如完整的事务处理和高级查询语言。
SQLite:轻量级的嵌入式数据库,不需要独立的服务器,适合小型应用和移动设备应用。
Microsoft SQL Server:商业数据库,适合在Windows环境下使用,具有强大的功能和高性能。
Oracle:商业数据库,适合大型企业应用,功能非常强大,但价格昂贵。
在选择数据库时,可以考虑以下因素:
数据库的类型和功能是否满足你的需求。
数据库的性能是否满足你的要求。
数据库的可靠性和安全性是否得到保障。
数据库的易用性和可维护性如何。
数据库的成本是否合理。
综合考虑以上因素,你可以选择适合自己使用的数据库。
如何选择数据库
一般来讲,数据分析的查询不会直接从生产环境的数据库来读取数据,一方面是影响线上性能,另一方面是OLTP的表结构设计更多的是面向插入,而不是读取。如何来选择合适的数据库做数据分析呢?本文给出了四方面的考量,抛砖引玉。
1. 客户要分析什么样的数据
2. 客户分析的数据量是多少
3. 客户工程师团队技术背景,运维能力
4. 预期的数据分析的响应时间
客户要分析什么样的数据
上文已简单介绍了关系型数据库和非关系型数据库的区别,这里就不再赘述。下图是一个简单的分类。
客户分析的数据量是多少
用户需要分析的数据量越大,就越应该考虑非关系型数据库。
上图给出了选择合适数据库的思路。不同的数据库处理数据的能力不同。如果你打算处理1T以下的数据,那么可以使用Postgres或者MySQL,但如果数据量增大到5T以上,需要在扩展性方面下些功夫。当然,各个数据库厂商也在不断的优化性能,像微策略这样的BI平台也在紧跟各个厂商的步伐,对各个数据库的特性进行深入的研究,把数据库新特性运用到BI产品中,给客户深入分析各个数据库的优势劣势, 确保为客户提供最大的投入产出比。
客户工程师团队技术背景,运维能力
客户需要了解自己技术团队的人员结构、技术偏好。如果有强大的技术团队,关系型和非关系型数据库都可选择。一般来讲,非关系型数据库需要更多管理维护的时间。如果没有足够的运维人员,可以选择像Postgres, Google SQL (a hosted MySQL option) 或者 Segment Warehouses (a hosted Redshift) 这样的数据库,要优于Redshift, Aurora or BigQuery等。如果运维人员充足,可以选择Redshift等,为以后强大的扩展性做好准备。从另一个角度来说,分析半结构化数据是也是比较普遍的需求。这样就对数据科学家的技能提出了更大的挑战。面向对象的编程背景,精通Python/R 等语言也是对客户工程师团队的重要考量。
预期的数据分析的响应时间
比如像欺诈检测、系统监控等实时数据分析需要的数据分析相应时间有严格的要求。其他的数据分析比如像电子商务网站的用户留存分析等,并没有实时响应的严格要求。客户需要结合自己的用户场景,来选择合适的数据仓库。如果绝大部分的分析是基于已有的数据,对数据的实时性没有特别高的要求,建议用户选择像Redshift or BigQuery这样的数据库,对数据的读取和合并做了大量的优化。如果客户对实时性要求非常高,可以考虑非结构化的数据库方向和内存数据库方向。
当然,选择用什么样的数据库做数据仓储,只是第一步。以实时分析为例,需要从数据仓库,数据湖,计算引擎等架构方面做出通盘的考虑。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)