标签: google-bigquery

如何将服务帐户与gsutil一起使用,以便上传到CS + BigQuery

如何使用我在Google API控制台中创建的服务帐户,使用gsutil将数据上传到Google BigQuery?

首先,我正在尝试使用gsutil将数据上传到云存储,因为这似乎是推荐的型号.使用gmail用户批准一切正常,但它不允许我使用服务帐户.

我似乎可以使用Python API来使用签名的JWT凭证来获取访问令牌,但我更喜欢使用像gsutil这样的命令行工具来支持可恢复的上传等.

编辑:我想在cron中使用gsutil每晚将文件上传到云存储,然后将它们导入BigQuery.

任何帮助或指示将不胜感激.

google-api google-cloud-storage google-bigquery

13
推荐指数
2
解决办法
8046
查看次数

如何在app引擎和python上使用Bigquery流媒体插件

我想开发一个直接将数据流传输到BigQuery表的应用程序引擎应用程序.

根据谷歌的文档,有一种简单的方法可以将数据流式传输到bigquery:

以下是有关如何编码流式插入的示例代码段:

body = {"rows":[
{"json": {"column_name":7.7,}}
]}

response = bigquery.tabledata().insertAll(
   projectId=PROJECT_ID,
   datasetId=DATASET_ID,
   tableId=TABLE_ID,
   body=body).execute()
Run Code Online (Sandbox Code Playgroud)

虽然我已经下载了客户端api,但我没有找到任何对上述Google示例中引用的"bigquery"模块/对象的引用.

应该找到bigquery对象(来自代码段)的位置?

任何人都可以展示更完整的方式来使用这个片段(使用正确的导入)?

我一直在寻找那么多,发现文档令人困惑和偏袒.

python google-app-engine google-bigquery

13
推荐指数
1
解决办法
4959
查看次数

在不使用Google云端存储的情况下将BigQuery数据导出为CSV

我目前正在编写一个软件,用于导出大量BigQuery数据并将查询结果作为CSV文件存储在本地.我使用Python 3和谷​​歌提供的客户端.我做了配置和验证,但问题是,我无法在本地存储数据.每次执行时,我都会收到以下错误消息:

googleapiclient.errors.HttpError:https://www.googleapis.com/bigquery/v2/projects/round-office-769/jobs ?alt = json返回"无效的提取目标URI"响应/文件名 - *.csv' .必须是有效的Google存储路径.">

这是我的工作配置:

def export_table(service, cloud_storage_path,
             projectId, datasetId, tableId, sqlQuery,
             export_format="CSV",
             num_retries=5):

# Generate a unique job_id so retries
# don't accidentally duplicate export
job_data = {
    'jobReference': {
        'projectId': projectId,
        'jobId': str(uuid.uuid4())
    },
    'configuration': {
        'extract': {
            'sourceTable': {
                'projectId': projectId,
                'datasetId': datasetId,
                'tableId': tableId,
            },
            'destinationUris': ['response/file-name-*.csv'],
            'destinationFormat': export_format
        },
        'query': {
            'query': sqlQuery,
        }
    }
}
return service.jobs().insert(
    projectId=projectId,
    body=job_data).execute(num_retries=num_retries)
Run Code Online (Sandbox Code Playgroud)

我希望我可以使用本地路径而不是云存储来存储数据,但我错了.

所以我的问题是:

我可以在本地(或本地数据库)下载查询数据,还是必须使用Google云端存储?

python google-bigquery

13
推荐指数
3
解决办法
1万
查看次数

java.net.UnknownHostException无法解析主机"accounts.google.com":在bigquery中插入行时没有与主机名关联的地址

嗨,我正在研究我已集成BigQuery的Android应用程序.我看到有时在BigQuery表中插入记录时会遇到很多异常.我们不是这方面的专长,而是开始学习这项新技术.如果你们可以帮助我,那将是很棒的.

   java.net.UnknownHostException: Unable to resolve host "accounts.google.com": No address associated with hostname
          at java.net.InetAddress.lookupHostByName(InetAddress.java:424)
          at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
          at java.net.InetAddress.getAllByName(InetAddress.java:214)
          at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
          at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
          at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
          at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
          at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
          at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
          at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
          at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
          at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)
          at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:254)
          at com.google.a.a.c.a.c.a(NetHttpRequest.java:77)
          at com.google.a.a.c.r.p(HttpRequest.java:972)
          at com.google.a.a.a.a.h.a(TokenRequest.java:307)
          at com.google.a.a.b.a.a.b.f(GoogleCredential.java:384)
          at com.google.a.a.a.a.c.h(Credential.java:489)
          at com.google.a.a.a.a.c.a(Credential.java:217)
          at com.google.a.a.c.r.p(HttpRequest.java:859)
          at com.google.a.a.b.d.c.c(AbstractGoogleClientRequest.java:469)
          at com.test.utils.c.c(CommonUtility.java:2730)
          at com.test.services.AppInstallIntentService.onHandleIntent(AppInstallIntentService.java:71)
          at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
          at android.os.Handler.dispatchMessage(Handler.java:102)
          at android.os.Looper.loop(Looper.java:136)
          at android.os.HandlerThread.run(HandlerThread.java:61)
   Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
          at libcore.io.Posix.getaddrinfo(Posix.java)
          at …
Run Code Online (Sandbox Code Playgroud)

java android google-api-java-client google-api-client google-bigquery

13
推荐指数
1
解决办法
1万
查看次数

在BigQuery中使用

BigQuery是否支持该WITH条款?我不喜欢格式化太多的子查询.

例如:

WITH alias_1 AS (SELECT foo1 c FROM bar)
, alias_2 AS (SELECT foo2 c FROM bar a, alias_1 b WHERE b.c = a.c)
SELECT * FROM alias_2 a;
Run Code Online (Sandbox Code Playgroud)

sql common-table-expression google-bigquery

13
推荐指数
2
解决办法
2万
查看次数

Google BigQuery <EOF>中的错误

我是Google BigQuery的新手.我需要有关查询错误的帮助:

"遇到""与""与""在第1行,第1列.期待:EOF"

with
  t1 as 
  (
    select
    date(USEC_TO_TIMESTAMP(event_dim.timestamp_micros)) date, event_dim.name
    from
    [myfoody-1313:it_rawfish_myfoody_ANDROID.app_events_20160727]
    where
    event_dim.name='pv_detail' and event_dim.params.key='item_id' and
    event_dim.params.value.string_value='31'
  )
  select
  date(d) as day, count(event_dim.name)
from
  generate_series(current_date - interval '6 day', current_date, '1 day') d
  left join t1 on t1.date = d
group by day
order by day;
Run Code Online (Sandbox Code Playgroud)

sql data-visualization google-bigquery

13
推荐指数
1
解决办法
2万
查看次数

如何在BigQuery中保存视图 - 标准SQL方言

我试图使用BigQuery的WebUI保存视图,这是在标准SQL方言中创建的,但我收到此错误:

保存视图失败.坏表引用"myDataset.myTable"; 标准SQL视图中的表引用需要显式项目ID

为什么会出现此错误?我该如何解决?"保存视图"对话框的"表ID"字段是否应包含项目ID?或者由于查询本身而出现此错误?以防万一,查询运行没有任何问题.

BigQuery的保存视图

谢谢你的帮助.

google-bigquery

13
推荐指数
1
解决办法
5496
查看次数

如何将CSV文件导入BigQuery表而不使用任何列名或模式?

我目前正在编写一个Java实用程序,用于将几个CSV文件从GCS导入BigQuery.我可以很容易地实现这一点bq load,但我想使用Dataflow作业来实现.所以我使用Dataflow的Pipeline和ParDo转换器(返回TableRow将它应用于BigQueryIO),我已经为转换创建了StringToRowConverter().这里实际问题开始了 - 我被迫为目标表指定模式,虽然我不想创建一个新表,如果它不存在 - 只是尝试加载数据.所以我不想手动设置TableRow的列名,因为我有大约600列.

public class StringToRowConverter extends DoFn<String, TableRow> {

private static Logger logger = LoggerFactory.getLogger(StringToRowConverter.class);

public void processElement(ProcessContext c) {
    TableRow row = new TableRow();          
    row.set("DO NOT KNOW THE COLUMN NAME", c.element());
    c.output(row);
}
}
Run Code Online (Sandbox Code Playgroud)

此外,假设该表已存在于BigQuery数据集中,我不需要创建它,并且CSV文件也包含正确顺序的列.

如果此方案没有解决方法,并且数据加载需要列名,那么我可以将其放在CSV文件的第一行中.

任何帮助将不胜感激.

java csv google-bigquery google-cloud-dataflow

13
推荐指数
1
解决办法
793
查看次数

SQL数组展平:为什么CROSS JOIN UNNEST不将每个嵌套值与每一行联接在一起?

这个问题不是要解决特定的问题,而是要了解用于平整数组的通用SQL习语中幕后实际发生的情况。幕后有一些魔术,我想在语法糖的幕后窥视一下,看看发生了什么。

让我们考虑下表t1

11

现在假设我们有一个函数调用FLATTEN了一个类型为array的列,并对该列中的每个数组进行解包,以便为每个数组中的每个值留一行-如果运行SELECT FLATTEN(numbers_array) AS flattened_numbers FROM t1,我们期望以下,我们称之为t2

t2

在SQL中,CROSS JOIN通过将第一个表中的每一行与第二个表中的每一行进行组合来组合两个表中的行。所以如果我们跑步SELECT id, flattened.flattened_numbers from t1 CROSS JOIN flattened,我们得到

在此处输入图片说明

现在,flatten只是一个虚构的函数,您可以看到将其与CROSS JOIN结合起来并不是很有用,因为该id列的每个原始值都与flattened_numbers每个原始行混合在一起。因为我们没有一个WHERE子句只选择CROSS JOIN想要的行,所以一切都变得混乱了。

该模式中,人们实际上使用扁平化阵列看起来像这样: SELECT id, flattened_numbers FROM t1 CROSS JOIN UNNEST(sequences.some_numbers) AS flattened_numbers,产生

在此处输入图片说明

但我不明白该CROSS JOIN UNNEST模式为何有效。因为CROSS JOIN不包含WHERE子句,所以我希望它的行为就像FLATTEN我上面概述的函数一样,其中每个未嵌套的值都与的每一行合并t1

有人可以“解包” CROSS JOIN UNNEST模式中实际发生的情况吗,该模式可确保每行仅与其自身的嵌套值(而不与其他行的嵌套值)结合在一起?

sql google-bigquery

13
推荐指数
1
解决办法
5544
查看次数

BigQuery中的知识图API

是否在BigQuery上转储知识图谱API,还是可以通过BigQuery SQL语言查询知识图谱API?

Felipe在通过SQL 查询Freebase方面进行了精彩的讨论,但Freebase不再更新.

我是否有机会使用知识图谱API来完成Felippe对Freebase和Wikidata的处理?

freebase google-api google-bigquery google-knowledge-graph

13
推荐指数
1
解决办法
334
查看次数