我正在尝试找到一种在 Google Cloud 项目中存储数据的方法,以便从那里快速获取数据并在节点 js Web 服务中处理它。现在数据存储在 Google 电子表格中。在 Google Cloud 中,我在节点 js 上的 AppEngine 中部署了一个 Web 服务。通过 Google Sheets API 连接到 Google 电子表格。它从 Google 电子表格中获取数据,但访问 Google SSheets API 需要花费大量时间。时间以毫秒为单位(例如,4100 是 4 秒和 100 毫秒)。
我允许的最长时间不超过 3 秒。此 Web 服务适用于 Alice。Alice 的等待时间不超过 3 秒。
我决定全能的 BigQuery 将解决这个问题,并在不到 1 秒的时间内获得我需要的数据。我通过在 BigQuery 中创建一个表来导出数据。结果,它变得更慢了!
加工地点由芬兰(欧洲北部1)选择。Web 服务处理位置是法兰克福 (europe-west3)。7.6秒的处理时间非常慢。创建了一个处理位置为法兰克福 (europe-west3) 的数据集。结果是一样的结果,7.4秒完成。
BigQuery 真的应该很慢吗?还是我做错了什么?你能告诉我如何加快数据库的工作吗?
数据信息:行数6k,列数24。
Google BigQuery是一种分析型分布式列式 DBMS,它们的目的是快速处理大量数据,而不是小数据。对于数千行或更多行的数据聚合,这种增益是显而易见的,其中字符串 DBMS 将开始冻结,而 BigQuery 将在几秒钟内继续运行。
BigQuery 在此任务中的另一个潜在缺点是正在写入的数据是缓冲的,即在写入后它实际上会在表中出现几秒、几分钟甚至一个小时。因为这个 DBMS 的目的不在于操作记录,而在于处理。
要存储和操作应用程序数据,最好使用字符串或 NoSQL 类型的 DBMS。例如,Google FireStore,它有许多平台和语言的库,包括 NodeJs。文档。