2016-10-31 8 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をgoogle big queryに渡しません

私は私のクエリ履歴に、大きなクエリをGoogleにオーバー行くとき、それが実行されていた実際のコマンドがあったことを示しています

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はあそこに欠けています。

なぜexecコマンドでクエリに>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

関連する問題