-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCreateTableCmek.java
More file actions
43 lines (39 loc) · 1.91 KB
/
Copy pathCreateTableCmek.java
File metadata and controls
43 lines (39 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.EncryptionConfiguration;
import com.google.cloud.bigquery.Field;
import com.google.cloud.bigquery.Schema;
import com.google.cloud.bigquery.StandardSQLTypeName;
import com.google.cloud.bigquery.StandardTableDefinition;
import com.google.cloud.bigquery.TableDefinition;
import com.google.cloud.bigquery.TableId;
import com.google.cloud.bigquery.TableInfo;
public class CreateTableCmek {
public static void main(String[] args) {
String dataSetName = "MY_DATASET_NAME";
String tableName = "dataTable";
String kmsKeyName = "MyKeyName";
Schema schema = Schema.of(
Field.of("StringField",StandardSQLTypeName.STRING),
Field.of("booleanField",StandardSQLTypeName.BOOL)
);
EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build();
createTable(dataSetName,tableName,schema,encryption);
}
public static void createTable(String dataSetName,String tableName,Schema schema,EncryptionConfiguration encryption){
try {
//initialize client
BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService();
TableId tableId = TableId.of(dataSetName,tableName);
TableDefinition tableDefinition = StandardTableDefinition.of(schema);
TableInfo tableInfo = TableInfo.newBuilder(tableId,tableDefinition).
setEncryptionConfiguration(encryption).
build();
bigQuery.create(tableInfo);
System.out.println("Table cmek create Successfully !!");
}catch (BigQueryException e){
System.out.println("Table cmek was not created.\n" + e.toString());
}
}
}