To pytanie wydaje się być tak proste, aby odpowiedzieć, ale po dniach badań i kilku ślepych uliczkach, nie mogę wydawać wyników zapytania z BigQuery
bez nalegań na OAuth użytkownika. Czy ktoś miał na to szczęście? Nie używam aplikacji Google AppEngine
, jest ona hostowana pod numerem EC2
. Oto dokładna sytuacja:Jak programowo zapytać program BigQuery z poziomu Pythona bez interakcji użytkownika końcowego?
User wants reporting data -->
Web server makes queries to BigQuery -->
Data is transformed for use in WebApp and returned to User.
Ilekroć wykonaj przykłady Google, ja skończyć się coraz przeglądarki internetowej pojawiały się z prośbą o mnie, aby wybrać konto Google, aby użyć do uwierzytelniania.
Ryan, dziękuję za odpowiedź. To mnie pogłębia. Przepuściłem wcześniej konta usług i było jasne, że tego właśnie szukałem, po prostu nie mogłem się dowiedzieć, gdzie to ustawić. Zrobiłem to i uruchomiłem powyższy kod z poprawnym ProjectId, e-mailem do konta usługi i plikiem klucza, ale kiedy pobieram odpowiedź na zestawienie zestawów danych, w dykcie nie ma klucza "datasets". Zamiast tego jest to coś takiego: {u'kind ': u'bigquery # datasetList', u'etag ': u' "viowSXH0JIvMREGVicRUeTw4PZo/L-a0Zjajejhksaj6mKpTzCQGsr4" '} – JawsTheGame
Aby kontynuować, upewnij się, że dzwonisz do usługi Metoda .datasets(). list(). W powyższym przykładzie obiekt odpowiedzi ['datasets'] będzie zawierał listę obiektów opisu zbioru danych w postaci {u'kind ': u'bigquery # dataset', u'id ': u'projectXXXXXXX: TestDataset' , u'datasetReference ': {u'projectId': u'projectXXXXXXX ', u'datasetId': u'TestDataset '}} –
Inna sprawa: jeśli nie masz żadnych zestawów danych w odpowiedzi API, prawdopodobnie nie utworzyłeś jeszcze. Czy możesz potwierdzić, że zrobiłeś to w projekcie, którego używasz? –