Câu hỏi này có vẻ rất đơn giản để trả lời, nhưng sau nhiều ngày nghiên cứu và một số kết thúc chết, tôi dường như không nhận được kết quả truy vấn từ BigQuery
mà không cần nhấn mạnh vào OAuth dựa trên người dùng. Có ai có bất kỳ may mắn với điều này? Tôi không sử dụng Google AppEngine
cho ứng dụng của mình, nó được lưu trữ trong EC2
. Đây là tình huống chính xác:Cách truy vấn BigQuery theo lập trình từ Python mà không có tương tác của người dùng cuối?
User wants reporting data -->
Web server makes queries to BigQuery -->
Data is transformed for use in WebApp and returned to User.
Bất cứ khi nào tôi làm theo các ví dụ của Google, tôi sẽ nhận được một trình duyệt web yêu cầu tôi chọn tài khoản Google để sử dụng để xác thực.
Ryan, cảm ơn phản hồi của bạn. Điều này giúp tôi tiếp tục hơn. Tôi đã chạy qua các tài khoản dịch vụ trước đó và rõ ràng rằng đây là những gì tôi đang tìm kiếm, tôi chỉ không thể tìm ra nơi để thiết lập này. Tôi đã làm như vậy, và đã chạy mã ở trên với ProjectId chính xác, Email tài khoản dịch vụ và tệp khóa của tôi, nhưng khi tôi lấy phản hồi để liệt kê các tập dữ liệu, không có khóa 'datasets' trong dict. Thay vào đó nó là một cái gì đó như thế này: {u'kind ': u'bigquery # datasetList', u'etag ': u' 'viowSXH0JIvMREGVicRUeTw4PZo/L-a0Zjajejhksaj6mKpTzCQGsr4 "'} – JawsTheGame
Vì vậy, để theo dõi, hãy chắc chắn rằng bạn đang gọi dịch vụ .datasets(). list() phương thức. Trong ví dụ trên, đối tượng ['datasets'] phản hồi sẽ chứa danh sách các đối tượng mô tả tập dữ liệu, dưới dạng {u'kind ': u'bigquery # dataset', u'id ': u'projectXXXXXXX: TestDataset' , u'datasetReference ': {u'projectId': u'projectXXXXXXX ', u'datasetId': u'TestDataset '}} –
Một điều nữa: Nếu bạn không có bộ dữ liệu trong phản hồi API của mình, có thể bạn chưa tạo chưa cái nào hết. Bạn có thể xác nhận rằng bạn đã làm như vậy trong dự án mà bạn đang sử dụng không? –