希望了解更多有关Fivetran的信息?加入我们的现场周刊演示。保存您的位置 -我们emea.

跳过主要内容

数据库DemyStified第2章 - 分析与事务数据库

以下博客文章是底漆系列中的第二章迈克尔Kaminsky关于数据库。阅读第一章这里.你也可以看这个系列这里

了解这一点很重要两个主要范式为了与数据库一起使用 - 分析和交易 - 为了了解权衡,可以在选择不同的数据库技术时进行。在这篇文章中,我们将介绍对这两个范式的用例和经常使用的技术。

分析vs.软件工程

当我们考虑分析数据库和事务数据库之间的区别时,我们应该考虑使用这些数据库的两种不同类型的人。数据科学家和分析师花大部分时间与数据打交道,但与软件工程师的方式截然不同。

数据科学家和分析师在分析上工作,对数据库执行查询并使用数据构建报告,仪表板和预测模型。他们关心如何存储数据以及如何有效访问它。

这与软件工程师所经历的非常不同。软件工程师考虑应用程序的稳定性、应用程序的可维护性、关于吞吐量的问题,以及应用程序对某些查询的响应速度。

这两类用户之间的区别将会告诉我们如何看待这些不同的范例。

分析工作负载

关于分析工作负载要记住的第一件事是,分析师和数据科学家对处理大量信息以计算汇总统计数据感兴趣。这些被称为总计的函数并涉及将计算和执行从许多行的值进行分组。例如,分析师可能有兴趣计算加利福尼亚州上次下季度的所有订单的平均值。

为了产生更复杂的见解,分析工作负载可能需要涉及连接,过滤和其他数据处理步骤的多个步骤的复杂查询。有时,这些分析是根据临时基础进行的,从未重复过。

由于分析师和数据科学家只分析来自业务操作的数据,而不构建系统来执行操作本身,分析工作负载只需要只读查询和批写数据加载。

事务性工作负载

相比之下,交易工作负载通常不涉及多个对象的聚合。相反,软件工程师通常最关心一次管理一个对象的状态。对象包括由表中的行表示的任何实体,例如“用户”或“订单”。在交易工作负载中,我们一次管理一个用户,订单,患者或类似对象。这些通常被称为CRUD(创建,读取,更新,删除)操作。

执行事务工作负载的系统必须能够容纳大量的CRUD操作,即每秒交易。此外,系统必须能够确保每笔交易的完整性。

比较分析和事务数据库

我们可以用以下方式总结分析工作负载和事务性工作负载之间的区别。

分析工作包括:

  • 计算复杂聚合函数

  • 只读查询和批写负载

  • 复杂的查询

  • 特别的,非常规分析

交易工作负载涉及:

  • 一次在一个“对象”上

  • CRUD操作

  • 精确管理数据库的状态

  • 通过高吞吐量支持每秒许多操作

一些非常常见的事务数据库包括开源系统,例如PostgreSQL和MySQL,以及Microsoft SQL Server和Oracle数据库等专有系统。这绝不是这些范式内的数据库的详尽清单,但他们在业界的主要球员,您可能在之前遇到过,希望现在更好地了解。

在该系列的下一部分,我们将深入了解这些不同类型的数据库功能,如何归属于架构,为什么他们以自己的方式工作,这意味着权衡在这些不同类型的数据库之间。

本系列继续到第三章这里