本项目使用Cloud Function + Cloud Firestore + Cloud SQL构建一个实时处理数据的流,主要是基于谷歌cloud的函数计算功能,实现一个无服务计算的小demo
系统功能
用户在Cloud Storage Bucket 上传文件,触发Cloud Function ,然后读取上传的文件数据,并存储到Firestorm database;
一旦文件上传完毕,另一个Cloud Function就会被触发,用于清理数据,然后将清理后的数据Firestore 的集合中。
系统组件
Cloud Firestore
irebase 提供了两种支持实时数据同步且可通过客户端访问的云数据库解决方案:
实时数据库是 Firebase 的原有数据库。对于需要在客户端之间实时同步状态的移动应用,这是一种高效、低延迟的解决方案。
Cloud Firestore 是 Firebase 用于移动应用开发的最新旗舰数据库。它具备更直观的新数据模型,在实时数据库的成功基础上更上一层楼。与实时数据库相比,Cloud Firestore 还提供了更丰富、更快速的查询以及更好的扩展功能。
Cloud Firestore 的数据模型是一种基于文档的 NoSQL 数据库。与 SQL 数据库不同的是,它没有表格或行的概念,而是将数据存储在文档中,并将文档组织为集合。
每个文档包含一组键值对。Cloud Firestore 经过优化,可用于存储小型文档的大型集合。
所有文档必须存储在集合中。文档可以包含子集合和嵌套对象,两者都可以包括原始字段(如字符串)或复杂对象(如列表)。
集合和文档是在 Cloud Firestore 中隐式创建的。只需将数据分配给集合中的文档即可。如果集合或文档不存在,Cloud Firestore 会创建一个。
Cloud Function & Cloud SQL
Google Cloud Functions 是用于构建和连接云端服务的一种无服务器执行环境。借助 Cloud Functions,您可以编写单一用途的简单函数,并将这些函数关联到您的云端基础架构和服务发出的事件。当所监控的事件发生时,就会触发您的函数。您的代码将在完全托管的环境中执行。您无需预配任何基础架构,也不必费心管理任何服务器。
Cloud Functions 提供了一个逻辑连接层,让您可以编写代码来连接和扩展云端服务。您可以侦听以下事件并对其做出响应:Cloud Storage 中上传了文件、日志更改或 Cloud Pub/Sub 主题中收到消息。Cloud Functions 函数可增强现有云服务,使您能够凭借任意编程逻辑应对数量越来越多的使用场景。Cloud Functions 可以访问 Google 服务帐号凭据,因此能够无缝地通过大多数 Google Cloud Platform 服务(包括 Cloud AutoML Vision)以及其他许多服务的身份验证。
核心实现
(待续。。。)