在这里,我们将给大家分享关于高效地将Pandas数据框写入GoogleBigQuery的知识,让您更了解pandas写入数据库的本质,同时也会涉及到如何更有效地BigQuery和与Google表格的连
在这里,我们将给大家分享关于高效地将Pandas数据框写入Google BigQuery的知识,让您更了解pandas写入数据库的本质,同时也会涉及到如何更有效地BigQuery 和与 Google 表格的连接失败、Google Bigquery 时间戳自动插入、Google BigQuery 流与执行 SQL 查询 - 定价差异、Google BigQuery——企业级大数据分析工具的内容。
本文目录一览:- 高效地将Pandas数据框写入Google BigQuery(pandas写入数据库)
- BigQuery 和与 Google 表格的连接失败
- Google Bigquery 时间戳自动插入
- Google BigQuery 流与执行 SQL 查询 - 定价差异
- Google BigQuery——企业级大数据分析工具
高效地将Pandas数据框写入Google BigQuery(pandas写入数据库)
我正在尝试pandas.DataFrame
使用此处pandas.DataFrame.to_gbq()
记录的功能将一个上传到Google大查询。问题是需要2.3分钟,而直接上传到Google
Cloud Storage
GUI需要不到一分钟。我打算上传一堆大小相似的数据帧(〜32个),所以我想知道它是更快的替代方法。to_gbq()
这是我正在使用的脚本:
dataframe.to_gbq(''my_dataset.my_table'', ''my_project_id'', chunksize=None, # i''ve tryed with several chunksizes, it runs faster when is one big chunk (at least for me) if_exists=''append'', verbose=False )dataframe.to_csv(str(month) + ''_file.csv'') # the file size its 37.3 MB, this takes almost 2 seconds # manually upload the file into GCS GUIprint(dataframe.shape)(363364, 21)
我的问题是,什么更快?
Dataframe
使用pandas.DataFrame.to_gbq()
功能上传- 另存
Dataframe
为csv,然后使用Python API作为文件上传到BigQuery - 另存
Dataframe
为csv,然后使用此过程将文件上传到Google Cloud Storage ,然后从BigQuery读取文件
更新:
替代如图2所示,使用pd.DataFrame.to_csv()
和load_data_from_file()
似乎比替代1至需要更长的时间(17.9秒更平均以3个循环):
def load_data_from_file(dataset_id, table_id, source_file_name): bigquery_client = bigquery.Client() dataset_ref = bigquery_client.dataset(dataset_id) table_ref = dataset_ref.table(table_id) with open(source_file_name, ''rb'') as source_file: # This example uses CSV, but you can use other formats. # See https://cloud.google.com/bigquery/loading-data job_config = bigquery.LoadJobConfig() job_config.source_format = ''text/csv'' job_config.autodetect=True job = bigquery_client.load_table_from_file( source_file, table_ref, job_config=job_config) job.result() # Waits for job to complete print(''Loaded {} rows into {}:{}.''.format( job.output_rows, dataset_id, table_id))
谢谢!
答案1
小编典典我Datalab
使用以下代码对备选方案1和3进行了比较:
from datalab.context import Contextimport datalab.storage as storageimport datalab.bigquery as bqimport pandas as pdfrom pandas import DataFrameimport time# Dataframe to writemy_data = [{1,2,3}]for i in range(0,100000): my_data.append({1,2,3})not_so_simple_dataframe = pd.DataFrame(data=my_data,columns=[''a'',''b'',''c''])#Alternative 1start = time.time()not_so_simple_dataframe.to_gbq(''TestDataSet.TestTable'', Context.default().project_id, chunksize=10000, if_exists=''append'', verbose=False )end = time.time()print("time alternative 1 " + str(end - start))#Alternative 3start = time.time()sample_bucket_name = Context.default().project_id + ''-datalab-example''sample_bucket_path = ''gs://'' + sample_bucket_namesample_bucket_object = sample_bucket_path + ''/Hello.txt''bigquery_dataset_name = ''TestDataSet''bigquery_table_name = ''TestTable''# Define storage bucketsample_bucket = storage.Bucket(sample_bucket_name)# Create or overwrite the existing table if it existstable_schema = bq.Schema.from_dataframe(not_so_simple_dataframe)# Write the DataFrame to GCS (Google Cloud Storage)%storage write --variable not_so_simple_dataframe --object $sample_bucket_object# Write the DataFrame to a BigQuery tabletable.insert_data(not_so_simple_dataframe)end = time.time()print("time alternative 3 " + str(end - start))
这是n = {10000,100000,1000000}的结果:
n alternative_1 alternative_310000 30.72s 8.14s100000 162.43s 70.64s1000000 1473.57s 688.59s
从结果来看,备选方案3比备选方案1更快。
BigQuery 和与 Google 表格的连接失败
如何解决BigQuery 和与 Google 表格的连接失败?
当我尝试将 BQ 查询连接到 Google 表格时,我目前收到此错误。 “结果超出存储限制。更新查询并再次运行。”当我在 BQ 中运行查询时,我有大约 24,200 行,谷歌表中的限制是 25K。谁能告诉我怎么了?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Google Bigquery 时间戳自动插入
如何解决Google Bigquery 时间戳自动插入?
我正在从发布/订阅获取数据到 Bigquery。我需要在另一列中每一行的 Bigquery 表中插入插入时间戳。请给我建议。
谢谢, 拉贾
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Google BigQuery 流与执行 SQL 查询 - 定价差异
如何解决Google BigQuery 流与执行 SQL 查询 - 定价差异?
想验证我对 Google BigQuery On Demand 定价结构的理解是否正确:
如果我像下面这样查询 BigQuery(来自 official docs 的代码片段):
QueryJobConfiguration queryConfig =
QueryJobConfiguration.newBuilder(
"SELECT commit,author,repo_name "
+ "FROM `bigquery-public-data.github_repos.commits` "
+ "WHERE subject like ''%bigquery%'' "
+ "ORDER BY subject DESC LIMIT 10")
.setUseLegacysql(false)
.build();
JobId jobId = JobId.of(UUID.randomUUID().toString());
Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build());
queryJob = queryJob.waitFor();
TableResult result = queryJob.getQueryResults();
A) 是每月每 TB 5.00 美元以上的价格吗?
B) 同样,如果我为 Storage API 执行类似于 documentation 中给出的示例的代码(代码片段太长,无法在此处粘贴),所产生的成本是否为每 TB 6.10 美元?我使用以下逻辑得出了这个数字:
按需分析,每 TB:5.00 美元
流式读取(存储 API),每 TB:1.10 美元
总和:6.10 美元
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Google BigQuery——企业级大数据分析工具
Google 本月初发布了企业级大数据分析的云服务——BigQuery 为正式付费产品,这是 Google 迈向企业级云计算领域的关键一步。BigQuery 本质上是一个云平台基础服务 PaaS,旨在实时处理 TB 级别的大数据,并提供 UI 界面和 Rest API 两种访问方式。
BigQuery 的产品经理 Ju-kay Kwek,在博客和采访中是这样评价自己的产品:
BigQuery 可以使得企业用户,在不需要投资任何软硬件的情况下,获得实时处理海量数据的能力,5个 TB 的数据可以在 15 秒返回结果。
BigQuery 团队的工程师 haberman,在 Hack News 社区发表评论:
从技术的角度,BigQuery 是一个在云端的 SQL 服务,可以提供海量数据的实时分析,客户端不需要做任何事情。甚至有 Github 社区的朋友,通过 BigQuery 来分析 Github 的数据。
在售价方面分两块,对于数据存储,BigQuery 每月每 1GB 的数据存储收费 12 美分,如果超过 2TB 数据,则另联系销售商议价格;而实时分析服务则是每月每处理 1GB 的数据收费3.5美分,每月前 100GB 的实时数据分析处理是免费的。详情读者可以参照 BigQuery Pricing。
对比下业内企业级云计算服务领跑者,Amazon AWS,收费标准为每月每 1GB 的数据存储为 12.5 美分。而其他公司,像微软、IBM、Rackspace 也一直活跃于企业级云计算领域。对于 BigQuery 的定位,Ju-kay Kwek 如是说:
现在谈企业级云计算还有些早,我们对 Amazon AWS 有着非常高的尊敬,两种产品体现不同的哲学,Amazon AWS 服务技术能力较强的企业,而 BigQuery 则是去吸引技术实力不是那么强的行政人员。
目前 BigQuery 被诟病较多的是安全性,有人针对 BigQuery 的安全性在技术社区表达了担心:
我非常喜欢使用 BigQuery,但我的公司会因为安全性不强而否定使用 BigQuery。我的建议是,BigQuery 至少要提供 VPN 连接,并可以限制 Web 的访问接口。
Google 推出商业产品一直是谨慎的,期待 BigQuery 能够方便更多的企业用户。
关于高效地将Pandas数据框写入Google BigQuery和pandas写入数据库的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于BigQuery 和与 Google 表格的连接失败、Google Bigquery 时间戳自动插入、Google BigQuery 流与执行 SQL 查询 - 定价差异、Google BigQuery——企业级大数据分析工具的相关信息,请在本站寻找。
本文标签: