У меня есть следующий фрагмент (kotlin, но в основном java)
val credential = GoogleCredential.Builder()
.setServiceAccountId("test@myproject.iam.gserviceaccount.com")
.setJsonFactory(JacksonFactory())
.setTransport(NetHttpTransport())
.setServiceAccountScopes(BigqueryScopes.all())
.setServiceAccountPrivateKeyId("xyz")
.setServiceAccountPrivateKey(
privateKey(
"-----BEGIN PRIVATE KEY-----\n...-----END PRIVATE KEY-----\n")
)
.build()
val api = Bigquery.Builder(NetHttpTransport(), JacksonFactory(), credential)
.setApplicationName("test")
.setHttpRequestInitializer(credential)
.build()
val projects = api.projects().list().execute()
println(projects)
val datasets = api.datasets().list("myproject").execute()
println(datasets)
Однако в нем перечислены пустые проекты / пустые наборы данных:
{"etag":"1B2M2Y8AsgTpgAmY7PhCfg==","kind":"bigquery#projectList","totalItems":0}
{"etag":"1B2M2Y8AsgTpgAmY7PhCfg==","kind":"bigquery#datasetList"}
Однако я знаю, что у меня есть проекты / наборы данныхсоздан потому, что я тестировал его с помощью клиента командной строки bq
.
Что-то мне не хватает в отношении ServiceAccounts? ServiceAccount имеет: BigQueryAdmin
+ Owner