我尝试将实体备份到存储桶中,并将备份数据文件下载到本地,但该文件也包含垃圾数据。
我要做的是将数据存储实体移动到云sql数据库。现在的计划是将数据存储实体下载到本地并从中生成一个.sql文件,然后使用它在云sql实例中创建数据库。

最佳答案

google app engine的数据存储import/export不使用标准格式。您可以使用[1][2]中描述的方法阅读它。您还可以从这些文件导入到BigQuery中,从中导出要容易得多。
另一种方法是使用数据存储api以编程方式从数据存储中检索实体以写入sql实例。您甚至可以在Cloud Dataflow中完成这项工作,它有从数据存储读取和写入sql的工具(通过apache beam中的jdbc)。
不管您实际实现了提取,还是有一些额外的“问题”需要考虑:
数据存储实体可以有“祖先”。这在SQL中不存在。您可能希望每个实体类型都有一个单独的表。子实体的表应该有一个列,指示作为父实体的另一个表中的实体。
数据存储支持数组属性,而sql不支持。如果使用数组,则需要在目标架构中找到某种方式来表示它。通常这是通过一个单独的表和一个关系来实现的。例如,如果您在person实体中有一个“电话号码”属性,其中有一个号码列表,那么您可能需要一个“电话”表,该表有两列-“个人id”和“电话号码”。
数据存储允许同一实体类型的不同实体具有不同的属性或同一属性具有不同的类型。这在sql中是不允许的,您需要确保同一个表中的每个记录都有一个统一的模式。

关于sql - 如何将数据从Google数据存储区实体下载到本地?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46346619/

10-12 03:15
查看更多