我应该将 Mysql 或 Firebase 用于大数据吗?

Posted

技术标签:

【中文标题】我应该将 Mysql 或 Firebase 用于大数据吗?【英文标题】:Should i use Mysql or Firebase with big data? 【发布时间】:2021-03-02 07:08:51 【问题描述】:

我将第一次用大数据做一个项目。在该项目中,我想每 10 秒从不同客户的电能分析仪中获取数据。因此,对于 10.000 台设备,10 年将有 3150 亿行。如果经营理念比我预期的要好,我可能不得不扩大规模。

我可以使用 mysql 或 firebase db 来处理这种大数据吗?托管服务怎么样?我需要考虑托管服务的一些参数吗?

【问题讨论】:

让我们看看您将应用的主要查询。它们可能是微不足道的,以至于引擎无关紧要。或者它们可能太乱了,以至于没有引擎可以工作。另外,请提供一个暂定的CREATE TABLE 【参考方案1】:

一般来说,作为大数据解决方案的数据库,谷歌建议Cloud Bigtable。该数据库是为此类项目设计的。如果您需要 SQL,它可以很容易地连接到BigQuery 引擎。您可以轻松地将其连接到 Apache 生态系统。

如果您想或必须使用 SQL 数据库,Google 有 Spanner,它可以无限扩展。

这两种解决方案都不便宜,但只有那些能够提供足够的扩展可能性并能够处理大型工作负载。

您可以尝试其他解决方案,例如 SQL 实例或 Firestore,甚至是实时数据库(不确定您所说的 Firebase db 是什么意思),但如果您似乎需要扩大规模,您还有很多工作要做。

首先应考虑查看简短的用例描述 Bigtable。

【讨论】:

【参考方案2】:

您需要每 10 秒获取 10 年前的数据吗?我怀疑。

您需要上个月的数据图表吗?也许。但是没有足够的像素来显示该粒度的所有数据点。

我会认真考虑及时汇总数据,然后考虑扔掉原始数据。

315B 行所占用的 TB 数据量将超过当今现成系统的容量。想想扫描所有数据需要多少小时。 “大数据”通常意味着“扫描数据”。 RDBMS 通常意味着“结构化数据”以提高效率。

更多关于 MySQL 中的汇总表:http://mysql.rjweb.org/doc.php/summarytables

(看看这个网站;我已经就这样的“科学”数据向几个人提供过建议。或者给我们更多细节,我会为你量身定制我的建议。)

【讨论】:

感谢您的回答。对于网络的瞬态响应,我可以使用不同类型的能量分析仪,所以我认为 10 秒真的没有必要。即使是 1 小时的样本量也足够了。无论如何谢谢你。 @CagdasAkdemir - 另一种方法是每 10 秒收集一次,但不存储详细信息;而是汇总并仅存储每小时的平均值、最小值、最大值等。这有助于克服不稳定或尖峰数据。 (不知道你的数据是不是这样) 十亿行可能会占用 100GB 的磁盘——这几天非常实用。

以上是关于我应该将 Mysql 或 Firebase 用于大数据吗?的主要内容,如果未能解决你的问题,请参考以下文章

我应该将 Firebase 凭据存储在 iCloud 中吗?

用于 Firebase 实时数据库/Firebase 身份验证的 Android 唯一密钥

我应该将哪个库用于大数据项目[关闭]

我应该在哪里从 UIViewController 中的 firebase 加载数据

在 React 中,将获取的 Firebase 数据存储在本地还是全局状态?

在 iOS 终止任务之前,如何让非常大的文件有时间上传到 firebase?