2016-10-31 32 views
1
<?php 

    $instruction = "bq query --replace --allow_large_results 
--destination_table=ShowByNumbers.SBN \"SELECT 'Chicago Fire' as Show, 
'NBC' as Network,'2016-10-15' as Start_Date, '2016-10-10' as End_Date, 
COUNT(UNIQUE(TV_ID)) as Audience_Size FROM Partition_Analysis.BaseTable 
WHERE _PARTITIONTIME BETWEEN TIMESTAMP('2016-10-15') AND 
TIMESTAMP('2016-10-10') AND CAST(content_recognition_end_timestamp AS float) 
- CAST(content_recognition_start_timestamp AS float) > 15000000 AND 
network_callsign != 'INFOMERCIAL' AND Content_title='Chicago Fire' AND 
Network_CallSign IN (SELECT Network_CallSign FROM 
Partition_Analysis.network_mapping WHERE Network= 'NBC')\""; 

echo exec($instruction); 
?> 

當我運行這個PHP命令我沒有得到任何輸出。PHP執行命令沒有通過> 1500000谷歌大查詢

當我去到谷歌大查詢,我的查詢歷史,它表明這是正在執行的實際命令是:

SELECT 'Chicago Fire' as Show, 'NBC' as Network,'2016-10-15' as Start_Date, '2016-10-10' as End_Date, 
COUNT(UNIQUE(TV_ID)) as Audience_Size FROM Partition_Analysis.BaseTable 
WHERE _PARTITIONTIME BETWEEN TIMESTAMP('2016-10-15') AND TIMESTAMP('2016-10-10') 
AND CAST(content_recognition_end_timestamp AS float) - CAST(content_recognition_start_timestamp AS float) 
AND network_callsign != 'INFOMERCIAL' AND Content_title='Chicago Fire' 
AND Network_CallSign IN (SELECT Network_CallSign 
FROM Partition_Analysis.network_mapping WHERE Network= 'NBC') 

如果你注意到,在>15000000缺少那邊。

爲什麼執行命令不是在查詢中讀取>15000000

+0

完成。謝謝:) – shubhamKackar

回答

0

我想你是從Web UI而不是從api控制檯執行的。

列出最近的作業,並比較有使用:

bq ls -j -a --max_results=15 

然後你可以運行爲每個作業ID的bq show -j <job_id>,爲了有更多的細節,你會選擇使用JSON響應:

bq show --format=prettyjson -j job_joQEqPwOiOoBlOhDBEgKxQAlKJQ 

這將返回以下格式裏面有你的查詢,您的用戶和bytesprocessed等等

{ 
    "configuration": { 
    "dryRun": false, 
    "query": { 
     "createDisposition": "CREATE_IF_NEEDED", 
     "destinationTable": { 
     "datasetId": "", 
     "projectId": "", 
     "tableId": "" 
     }, 
     "query": "", 
     "writeDisposition": "WRITE_TRUNCATE" 
    } 
    }, 
    "etag": "", 
    "id": "", 
    "jobReference": { 
    "jobId": "", 
    "projectId": "" 
    }, 
    "kind": "bigquery#job", 
    "selfLink": "", 
    "statistics": { 
    "creationTime": "1435006022346", 
    "endTime": "1435006144730", 
    "query": { 
     "cacheHit": false, 
     "totalBytesProcessed": "105922683030" 
    }, 
    "startTime": "1435006023171", 
    "totalBytesProcessed": "105922683030" 
    }, 
    "status": { 
    "state": "DONE" 
    }, 
    "user_email": "" 
} 

使用API​​您需要通過allUsers屬性來列出所有用戶的作業https://cloud.google.com/bigquery/docs/reference/v2/jobs/list#allUsers

+0

不。這沒有幫助。 我手動在cmd中編寫了精確的命令,但仍然沒有執行。打開cmd無法讀取>標誌。 我嘗試使用GTR代替>,但是這給了我一個不同的錯誤.. 錯誤: 查詢:遇到「」 GTR‘’第1行,列367期待:‘)’。 – shubhamKackar

+0

明白了。我只需要使用轉義字符^ – shubhamKackar