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



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

数据库要求:

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

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

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

SQL数据库是一个完全托管的平台即服务(PaaS)数据库引擎,它处理大多数数据库管理功能,如升级、修补、备份和监视,而无需用户参与。Azure SQL数据库始终运行在最新稳定版本的SQL Server数据库引擎和打过补丁的操作系统上,可用性为99.99%。您可以在任何时间点恢复数据库。这应该是存储关系数据和执行SQL查询的最佳选择。

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

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

最新更新