我想在Firebase应用上记录以下用户操作:
现在,我使用自己的函数将操作记录到数据库位置" root>用户日志> [用户ID]"。
每个操作都记录为
[以毫秒为单位]:[动作]
这些日志会在我的数据库中放入大量数据 但是,我不会访问存储在用户日志位置的数据,因此我认为这不会降低数据库中其他位置的读取操作速度。
我首先考虑在云存储中创建一个csv文件并将用户操作附加到该文件,但后来意识到为了写入csv文件,我首先要下载它,所以我决定写入数据库会更快(更容易)。
感谢。
答案 0 :(得分:0)
如果将数据写入未读取任何数据的位置,则该写入操作不会影响从数据库中其他位置读取数据的操作。
但是存储您永远不会阅读的数据是不可能的。否则可能没有理由存储它。更有可能的是,您希望在某个时刻读取/查询此数据。
鉴于日志数据的仅追加,日益增长的性质,Firebase不太可能提供您当时所需的查询功能。因此,我建议将数据存储在一个更适合用例的系统中:存储大量数据并查询。这种系统的一个完美例子是Google的BigQuery。
将数据导入BigQuery的一种常用方法是继续从客户端执行您现在所做的操作:将其写入数据库。然后创建一个Cloud Function,它触发来自数据库的传入日志数据,将该数据写入BigQuery,然后从数据库中删除它。
使用这种方法,您只使用Firebase数据库进行临时存储,并在BigQuery中完成繁重工作。