刚刚下午面试了一家国内做分析型数据库的公司,在跟面试官交流的过程中,也沟通了一些我的疑惑;下来自己又查阅了一些资料,随手记录一下。
什么是数据库的宏观范畴
宏观讲,数据库的范畴很大,常见的关系型数据库,mySql,PostgreSql;非关系型数据库MongoDB;云上的关系型数据库RDS; 云上的分布式KV数据库:DynamoDB;内存KV数据库Redis,搜索数据库ES。。。等等,不一而足;
但是从功能角度讲可以分为OLAP型和OLTP型。
OLTP处理一些实时的商业请求,操作包括,删除插入更新查询等等操作;对写入查询性能非常重要,事务性的保证,一般不要求复杂的聚合查询性能;数据都是经过normalized规范化的,有预先定义的schema限制,会维护索引等结构来加速查询等等。
OLAP则侧重做数据的聚合分析,应用场景例如数据分析,挖掘,BI;难点是满足:数据量更大,而且要做多维度的复合数据查询的性能,通常在这个领域会比OLTP快很多。同样会有schema的限制;
后者我们常常称之为数据仓库。
数据仓库的特点
上面说了数据仓库的一些特点,总结就是:数据仓库的数据主要提供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作
主要的产品有Hive,Redshift,BigQuery, SnowFlake等,国内的有StarRocks。
但是按照其底层工作原理有可以分为两种:
基于Hadoop的数据仓库
严格意义讲,这种数据仓库并不符合数据库的通常架构,它是架设在Hadoop,spark等分布式计算的基础上,例如Hive,Athena。使用上,其实都是给定一个sql语句,提供数据,提供数据的schema,然后会通过规划分布式计算,算出一个结果。因为数据没有预处理,所以计算速度没有保证:
- Athena makes it is easier to get started and is more flexible in the types of data it can query, but performance is not guaranteed without significant data preparation
基于数据库架构的数据仓库
这种就是Redshift,BigQuery, SnowFlake这些架构特点,会对数据进行预处理,也会利用一些常用的数据库技术,例如Amazon Redshift is a cloud data warehouse optimized for analytics performance,on PostgreSQL。StarRocks跟面试官交流是基于Mysql的。
对比Athena和Redshift:Redshift requires DBA resources to manage and resize clusters; with Athena there is no infrastructure to manage.
一个更典型的例子:
Hive VS Redshift:
Hadoop Hive can roughly be understood as an attempt to get Hadoop’s distributed file system and MapReduce structure to behave more like a traditional data warehouse by allowing data analysts to run SQL-like queries on top of Hadoop. The queries, written in HiveQL, are translated into MapReduce jobs written in Java and are run on the Hadoop Distributed File System.
Tests have shown that Redshift can be 5x to 20x faster than Hadoop Hive on the same dataset.
Since Redshift is a columnar database, the data must be structured, and this will mean faster querying over any unstructured data source. Moreover, since Redshift uses a Massively Parallel Processing architecture, the leader node manages the distribution of data among the follower nodes to optimize performance.
Redshift使用的MPP技术,保障了它在查询性能上要优于常见的数据库,StarRocks也采用了类似的技术。
g7cc6n
can priligy cure pe Blunting by chronic phosphatidylserine administration of the stress induced activation of the hypothalamo pituitary adrenal axis in healthy men
There s no achievable lethal dose of cannabis, but that doesn t mean cannabis can t make you feel terrible if you overdose on it order cytotec without rx