С полной документацией по , как обновить элементы управления доступом к набору данных BigQuery , можно ознакомиться на связанной странице документации.Учитывая, что вы уже создаете представления в своем наборе данных программно, я бы посоветовал вам использовать клиентскую библиотеку BigQuery , которая может быть более удобной, чем выполнение вызова API для метода datasets.patch
.В любом случае, если вы все еще заинтересованы в непосредственном вызове API, вы должны предоставить соответствующие части ресурса набора данных в теле запроса.
Первая ссылка, которой я поделился, предоставляетхороший пример обновления доступа к набору данных с использованием клиентских библиотек Java , но вкратце вот что вы должны сделать:
public List<Acl> updateDatasetAccess(DatasetInfo dataset) {
// Make a copy of the ACLs in order to modify them (adding the required group)
List<Acl> previousACLs = dataset.getAcl();
ArrayList<Acl> ACLs = new ArrayList<>(previousACLs);
ACLs.add(Acl.of(new Acl.User("your_group@gmail.com"), Acl.Role.READER));
DatasetInfo.Builder builder = dataset.toBuilder();
builder.setAcl(ACLs);
bigquery.update(builder.build());
}
РЕДАКТИРОВАТЬ:
Способ определения объекта dataset
следующий:
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
Dataset dataset = bigquery.getDataset(DatasetId.of("YOUR_DATASET_NAME"));
Примите во внимание, что если вы не указали учетные данные при создании объекта клиентаbigquery
, клиентская библиотека будет искать учетные данные в переменной среды GOOGLE_APPLICATION_CREDENTIALS
.