2016-12-23 79 views
3

即使我們使用標誌「useLegacySQL:False」發送JSON有效內容,BigQuery仍然使用Legacy SQL而不是標準SQL。標準SQL正在被拒絕 - 但系統將使用下面的JSON接受Legacy SQL。如何讓BigQuery的API使用標準SQL進行查詢?

據我們可以告訴我們下面BigQuery's documentation。我們需要什麼來讓BigQuery使用這個API調用的標準SQL?

這裏是我們的BigQuery JSON有效載荷:

{ 
    'jobReference': { 
     'jobId': '####', 
     'projectId': 'healthlabs-4' 
    }, 
    'configuration': { 
     'query': { 
      'destinationTable': { 
       'tableId': u 'our_table_name', 
       'datasetId': 'our_dataset_id', 
       'projectId': 'our_project_id' 
      }, 
      'useLegacySQL': False, 
      'priority': 'INTERACTIVE', 
      'query': u "SELECT ... FROM our_table WHERE ... GROUP BY ... ORDER BY ...", 
      'allowLargeResults': True 
     } 
    } 
} 

我們可以告訴查詢是從大量查詢返回的消息拒絕它接受我們的傳統的SQL,但拒絕我們的標準SQL與此錯誤:

{'create_table_error': [{u'location': u'query', u'message': u'Encountered " "FROM" "FROM "" at line 1, column 333.\nWas expecting:\n ")" ...\n ', u'reason': u'invalidQuery'}], 'bq_table_exists': 'no'} 

回答

3

我們只注意到JSON鍵區分大小寫。這是一個大寫問題。 SQL不應該大寫。正確的關鍵是:

'useLegacyS QL':假

相關問題