Cloud Storage에 포함되어 있는 csv로 bigQuery-table을 생성합니다. 

 

transaction

Google-Cloud-Platform 에서 Pub/Sub 부분에 topic을 생성합니다.

topic 클릭 후 중간쯤에 내려가보면 BigQuery로 내보내기

BigQuery로 내보내기를 통해서 pub/sub에서 publisher 가 받은것을 Dataflow 를 통해서 bigQuery로 전달해 줄 것입니다. 

bigQuery로 내보내기 했을때 위와 같이 web 페이지가 로딩됩니다. 여기서 BigQuery output table 과 임시 위치를 각각 

[project-id]:[schema-name].[table-name], gs://[bucket-name]/[foder-name] 으로 지정해줍니다.

output table이 저장되는 위치이고 임시 위치(bucket)에서 publisher 로 메시징을 전달하여서 topic으로 각 subscriber에게 전달하게 됩니다.

 

Dataflow가 생성됩니다. 이제 다시 bigQuery로 돌아가서 

bigQuery에서 쿼리 설정하는 부분에 BigQuery엔진을 사용하는것이 아니라 Cloud Dataflow 엔진을 사용합니다. 

이후에 좌측에서 리소스에 데이터 추가 클릭 그리고 Cloud Dataflow 소스를 클릭합니다. 

여기서 Pub/sub를 찾게 됩니다. 위에서 만들어둔 transaction 을 추가합니다.

추가를 하게 되면 위와 같이 bigQuery 리소스에 Cloud Dataflow sources 에 nested 된 transaction이 뜨게 됩니다. 

쿼리 편집기에 테이블 쿼리 부분을 넣게 되면 현재 bigQuery의 dataflow 엔진이 적용된 상태에서 Cloud dataflow 작업을 직접 만들어서 테스트 해볼 수 있습니다.

Cloud Dataflow 작업 만들기를 클릭한 후에

작업을 만들게 되면 결과를 확인해 볼 수 있습니다.  작업이 대기열에 추가되어 Dataflow에서 실행하게 됩니다. 작업 ID를 눌러보면

대기열

대기열에 추가된것을 확인할 수 있습니다.

input. 

1. storage 에서 bigQuery 만들기

2. topic만들기

3. topic을 bigQuery로 내보내기, 이때 dataflow 실행

4. dataflow 설정

5. bigQuery에서 dataflow engine 사용 및 dataflow source 사용

6. cloud pub/sub topics 리소스가 생김 

7. create cloud dataflow job 클릭 설정 실행

output. JAMES MEDICI (Storage Object Log)