草庐IT

python - 将数据从 Google App Engine 导出到 csv

coder 2023-08-18 原文

old answer指向 Google App Engine documentation 上的链接,但该链接现在是关于备份您的 GAE 数据,而不是下载它。

那么如何将所有数据下载到一个csv中呢?数据很小,即 < 1="" gb="">

最佳答案

我尝试了几种不同的方法来使用概述的步骤导出到 csv herehere .但我无法工作。所以,这就是我所做的(我最大的表大约是 2GB)。尽管它看起来像很多步骤,但它的工作速度相对较快......比对抗谷歌可能已经连续数小时更改的随机代码要好:

  1. 进入 Cloud Storage 并创建 2 个新存储桶“data_backup”和“data_export”。如果您已经有一个存储桶来存储东西,则可以跳过此步骤。
  2. 进入“我的控制台”> Google Datastore > Admin > 为您尝试转换的数据存储打开 Datastore Admin。
  3. 勾选您要备份的一个或多个实体,然后点击“备份实体”。我一次做一个,因为我只有大约 5 个表要导出,而不是一次检查所有 5 个。
  4. 指明您要将它们存储在的 Google Storage (gs) 存储桶
  5. 现在转到 Google Big Query(我以前从未使用过它,但开始使用它很简单)
  6. 点击向下的小箭头并选择“创建新数据集”并为其命名。
  7. 然后点击您刚刚创建的新数据集旁边的向下箭头并选择“创建新表”。完成导入步骤,在“选择数据”步骤下选择“云数据存储备份”。然后选择要导入到 Big Query 的任何备份,以便在下一步中将其导出到 csv。
  8. 表格导入后(这对我来说非常快),点击表格名称旁边的向下箭头并选择“导出”。您可以直接导出为 csv,也可以保存到您为导出创建的 Google 存储桶,然后从那里下载。

这里有一些提示:

  • 如果您的数据具有嵌套关系,则必须导出为 JSON 而不是 CSV(他们也提供 avro 格式,不管是什么)
  • 我使用 json2csv 转换无法保存为 csv 的导出的 JSON 文件。它在大 table 上运行有点慢,但可以完成。
  • 由于 json2csv 中的 python 内存错误,我不得不将 2GB 的文件拆分为 2 个文件。我使用 gsplit 拆分文件并选中其他属性 > 标签和 header > 不添加 Gsplit 标签下的选项...(这确保 Gsplit 没有向拆分文件添加任何数据)

就像我说的,这实际上非常快,尽管它有很多步骤。希望它能帮助人们避免花费大量时间尝试转换奇怪的备份文件格式或运行可能不再工作的代码。

关于python - 将数据从 Google App Engine 导出到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360370/

有关python - 将数据从 Google App Engine 导出到 csv的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - 用逗号、双引号和编码解析 csv - 2

    我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

  4. ruby - 我可以使用 Ruby 从 CSV 中删除列吗? - 2

    查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html

  5. ruby CSV : How can I read a tab-delimited file? - 2

    CSV.open(name,"r").eachdo|row|putsrowend我得到以下错误:CSV::MalformedCSVErrorUnquotedfieldsdonotallow\ror\n文件名是一个.txt制表符分隔文件。我是专门做的。我有一个.csv文件,我转到excel,并将文件保存为.txt制表符分隔的文件。所以它是制表符分隔的。CSV.open不应该能够读取制表符分隔的文件吗? 最佳答案 尝试像这样指定字段分隔符:CSV.open("name","r",{:col_sep=>"\t"}).eachdo|row|

  6. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  7. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  8. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  9. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  10. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

随机推荐