반응형
새로운 프로젝트가 생겼다.
JAVA 프로젝트에서 BigQuery 의 데이터를 저장하는 프로젝트다.
JAVA... 몇년만인지
프로젝트를 세팅하고, 테스트를 진해한다.
일단 GCP의 Service Account json 파일을 이용해, 인증을 진행한다.
/**
* 구글 Service Account json파일을 통한 BigQuery 생성
* @param projectId
* @return {BigQuery}
*/
public static BigQuery getBigQuery(String projectId) throws Exception, IOException {
try {
File credentialsPath;
// 운영
if (projectId == "operation") {
credentialsPath = new File("src/main/resources/key.json");
// 개발
} else {
credentialsPath = new File("src/main/resources/key_dev.json");
}
GoogleCredentials credentials;
try (FileInputStream fileInputStream = new FileInputStream(credentialsPath)) {
credentials = ServiceAccountCredentials.fromStream(fileInputStream);
}
BigQuery bigQuery = BigQueryOptions.newBuilder()
.setCredentials(credentials)
.setProjectId(projectId)
.setLocation("asia-northeast3")
.build()
.getService();
return bigQuery;
} catch (Exception e) {
return null;
}
}
인증된 정보를 가지고 BigQuery Dataset 을 뿌려주는 기능을 만들어 테스트한다
/**
* Bigquery의 Dataset 정보 가져오기
* @param projectId
* @throws IOException
*/
public static void getDatatset(String projectId) throws Exception, IOException {
BigQuery bigQuery = getBigQuery(projectId);
// Use the client.
System.out.println("Datasets:");
for (Dataset dataset : bigQuery.listDatasets().iterateAll()) {
System.out.printf("\\t%s%n", dataset.getDatasetId().getDataset());
}
}
@Test
void contextLoads() throws Exception {
System.out.println("############### start ###############");
String projectId = "project_id";
getDatatset(projectId);
System.out.println("############### end ###############");
}
############### start ###############
Datasets:
datasetname1
datasetname2
datasetname3
############### end ###############
JAVA...
오랜만이다
기억이 나질않는다
에러파티다.
DML 돌리면서 다시 공부해야겟다.
반응형
'GCP > BigQuery on GCP' 카테고리의 다른 글
JAVA 프로젝트로 GCP BigQuery의 INSERT/UPDATE 쿼리 실행 해보기 (0) | 2023.01.16 |
---|---|
JAVA 프로젝트로 GCP BigQuery의 Select 쿼리 실행 해보기 (0) | 2023.01.10 |
BigQuery Data Transfer Service 샘플 코드 (1) | 2022.09.07 |
BigQuery Data Transfer 계획 (0) | 2022.09.06 |
BigQuery Region 이관(변경) 프로젝트 (0) | 2022.09.06 |