GCP/BigQuery on GCP

JAVA 프로젝트로 GCP BigQuery의 Dataset 가져오기

whistory 2022. 10. 28. 10:31
반응형

새로운 프로젝트가 생겼다.

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 돌리면서 다시 공부해야겟다.

반응형