选择哪个数据库来存储来自平面文件 CSV 的数据,html

Which database to choose in order to store data coming from flat files CSV, html

我需要设计一个可扩展的数据库架构,以便存储来自平面文件的所有数据 - CSV、html 等。这些文件来自弹性搜索。大多数脚本都是在 python 中创建的。这种数据架构应该能够自动执行使用 excel、csv、html 执行的大部分日常手动处理,并且所有数据都将从该数据库中检索,而不是依赖于在 csv 中填充,html.

数据库要求:

  1. 数据库必须具有更好的性能才能每天检索数据,并且会被多个团队查询。
  2. ER模型,针对有逻辑关系的数据开发schema。
  3. 数据库可以在云存储中。
  4. 数据库必须具有高可用性并且应该能够更快地检索数据。
  5. 此数据库将用于创建多个仪表板。
  6. ETL 作业将负责在数据库中存储数据。
  7. 每天都会有大量的数据库读取和写入,大量数据来自 Elastic Search 和一些云工具。

我正在考虑 RDS、Azure SQL、DynamoDB、Postgres 或 Google Cloud。考虑到这些要求,我想知道哪个数据库引擎是更好的解决方案。我也想知道ETL过程应该如何设计-lambda或kappa架构。

要存储 CSV 和 excel 文件等关系数据,您可以使用关系数据库。对于像HTML这样不需要查询的平面文件,你可以直接使用任何云服务提供商的存储帐户,例如Azure。

Azure SQL Database 是一个完全托管的平台即服务 (PaaS) 数据库引擎,可处理大部分数据库管理功能,例如升级、修补、备份和无需用户参与的监控。 Azure SQL 数据库始终 运行 在 SQL 服务器数据库引擎的最新稳定版本上,并以 99.99% 的可用性修补 OS。您可以随时恢复数据库。这应该是存储关系数据和执行SQL查询的最佳选择。

Azure Blob Storage是微软针对云的对象存储解决方案。 Blob 存储针对存储大量非结构化数据进行了优化。您的 HTML 文件可以存储在这里。

可以使用 Azure 数据工厂 (ADF) 执行 ETL 作业。它允许您连接几乎任何数据源(包括 Azure 外部)以转换存储的数据集并将其存储到所需的目的地。 Data flow transformation 在 ADF 中能够执行所有 ETL 相关任务。