본문 바로가기

Biusiness Insight/Data Science

[구글 클라우드] Dataflow 템플릿 활용 스트리밍 파이프라인 만들기

반응형

source : GCP qwiklabs

 

Google Cloud Shell 활성화하기

 

1. GCP Console의 오른쪽 상단 툴바에서 Cloud Shell 열기 버튼을 클릭합니다.

 

2. 계속(Continue) 클릭

 

실행 화면 : 

 

사용 중인 계정 이름 목록 표시

gcloud auth list

 

출력:

Credentialed accounts: - <myaccount>@<mydomain>.com (active)

 

프로젝트 ID 목록 조회

gcloud config list project

 

출력:

[core] project = <project_ID>

 

- 참고 : gcloud 관련 전체 설명서 Google Cloud gcloud 개요

 

 

Cloud Shell을 사용하여 Cloud BigQuery 데이터세트 및 테이블 만들기

먼저 BigQuery 데이터세트 및 테이블 생성

- 참고: 이 섹션에서는 bq 명령줄 도구 사용

 

데이터 세트 'taxirides' 생성

bq mk taxirides

 

출력 : 

Dataset '<myprojectid:taxirides>' successfully created

 

 

BigQuery 테이블 인스턴스화

bq mk \ 
--time_partitioning_field timestamp \ 
--schema 
ride_id:string,point_idx:integer,latitude:float,longitude:float,\ 
timestamp:timestamp,meter_reading:float,meter_increment:float,ride_status:string,\ 
passenger_count:integer -t taxirides.realtime

 

출력 결과는 다음과 유사합니다.

Table 'myprojectid:taxirides.realtime' successfully created

 

 

- 참고 - BigQuery 명령줄 설명서를 참고

  • 예: 스키마 - "로컬 JSON 스키마 파일의 경로 또는 [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] 형식의 쉼표로 구분된 컬럼 정의 목록

 

 

저장소 버킷 만들기

export BUCKET_NAME=<your-unique-name> 

gsutil mb gs://$BUCKET_NAME/

 

 

GCP Console을 사용하여 클라우드 BigQuery 데이터세트 및 테이블 만들기

※ 참고: 명령줄 설정을 완료한 경우에는 이 섹션 스킵

 

1. 왼쪽 메뉴의 빅데이터 섹션에서 BigQuery를 클릭

2. 왼쪽 탐색 창에서 프로젝트 이름을 클릭한 다음, 콘솔의 오른쪽에 있는 CREATE DATASET(데이터세트 만들기)를 클릭

3. 데이터세트 ID로 taxirides 입력

4. 다른 기본 설정은 모두 그대로 두고 데이터세트 만들기 클릭

5. 이제 콘솔 왼쪽의 프로젝트 ID 아래에서 taxiides 데이터세트를 확인하여 클릭

6. 콘솔 오른쪽에 있는 CREATE TABLE(테이블 만들기) 선택

7. 대상 테이블 입력 realtime을 입력

8. 스키마 아래에서 텍스트로 편집 슬라이더를 전환하고 다음을 입력

ride_id:string,point_idx:integer,latitude:float,longitude:float,timestamp:timestamp, meter_reading:float,
meter_increment:float,ride_status:string,passenger_count:integer

 

출력 화면 : 

9. 테이블 만들기 클릭

 

10. 저장소 버킷 만들기

GCP Console로 돌아가서 저장소 > 브라우저 > 버킷 만들기로 이동

11. 버킷에 고유한 이름 지정하고, 다른 모든 기본 설정은 그대로 두고 만들기 클릭

 

 

파이프라인 실행

- 탐색 메뉴에서 빅데이터 섹션을 찾아 Dataflow를 클릭

- 화면 상단의 + 템플릿에서 작업 만들기 클릭

- Cloud Dataflow 작업의 작업 이름 입력

- Cloud Dataflow 템플릿에서 Cloud Pub/Sub Topic to BigQuery( BigQuery에 대한 Cloud Pub/Sub 주제) 템플릿 선택

- Cloud Pub/Sub 입력 주제 아래에 다음을 입력

projects/pubsub-public-data/topics/taxirides-realtime

 

- BigQuery 출력 테이블에서 만들어진 테이블의 이름을 다음과 같이 입력

<myprojectid>:taxirides.realtime

 

- 임시 위치로 버킷 추가

gs://Your_Bucket_Name/temp

 

- 작업 실행(Run job) 버튼 클릭

- 리소스가 빌드되어 사용 가능 상태를 확인할 수 있음

- 탐색 메뉴에 있는 BigQuery를 클릭하여 BigQuery에 기록된 데이터 확인

- BigQuery UI가 열리면 프로젝트 이름 아래에 taxirides 테이블이 추가되고 그 아래에 realtime 테이블이 표시됨

 

쿼리 제출

- 표준 SQL을 사용하여 쿼리 제출 가능

- '쿼리 편집기' 필드에 다음 추가. (myprojectid는 Qwiklabs 페이지의 GCP 프로젝트 ID로 변경)

SELECT * FROM `myprojectid.taxirides.realtime` LIMIT 1000

 

- 쿼리 실행 클릭

- '쿼리 결과' 패널에 쿼리 실행 결과 출력

 

 

반응형
  • 불의남자 2021.05.18 22:11

    제2의 비트코인 꼭보세요!! (이제 올라갈듯 ㅋ)

    2008년에 비트코인을 매일 50코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 가치가 없다고 느꼈습니다. 지금 비트코인(Bitcoin)은 1코인당 6000만원 상당의 가치가 있습니다.

    2011년에 라이트코인이 선보였고, 매일 100코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 이것이 여전히 가치가 없다고 생각했습니다. 라이트코인(Lite coin)은 현재 1코인에 30만원입니다.

    이더리움이 2015년에 나왔습니다. 매일 30코인을 무료로 채굴할 수 있었습니다. 대부분의 사람들은 여전히 그것을 믿지 않았습니다. 이제 이더이움(Ethereum)은 1코인당 300만원 상당의 가치가 있습니다.

    현재 전 세계적으로 돌풍을 일으키고 있는 상장을 준비중인 최고의 가치를 내재하고 있는 코인을 알려드립니다.

    **파이코인**

    파이코인은 2019년에 태어났고 몇 번의 반감기를 거쳐 지금 하루에 6코인정도를 무료로 채굴할 수 있습니다.

    다음 반감기 오기전 혹은 무료채굴 종료 전에 서두르셔야 합니다.

    비트코인의 단점을 보완하여 스마트폰으로 채굴 할수 있는 파이코인.

    스마트폰의 성능에 전혀 지장이 없으며, 하루 1번의 스위칭으로 24시간(1세션)동안 무료 채굴 합니다.

    이 황금같은 기회를 놓치지 마세요..!!

    파이(PI)는 스탠퍼드 박사들이 개발한 새로운 디지털 화폐이며 전 세계적으로 1700만 명 이상의 사용자가 존재합니다.
    파이를 받으시려면 앱스토어에 파이네트워크(pi network) 검색 설치 후 가입 시 저의 사용자 이름 firenews 누르시면 가입됩니다.

    http://minepi.com/firenews

    파이코인 이외에 관심있는 코인인 현재 1200만명이 넘는
    비(Bee)코인도 앱스토어에서 bee network 치시고 다운하셔서 추천인 firenews1004 입니다.

    카카오그룹에서 나온 유망한 코인인 카우카우코인은 5월
    20일 HOTBIT코리아에 COW코인으로 상장합니다. 카우카우코인 다운 받으셔서 추천인 ZBKJNQ 입니다.

    BIZA코인은 쇼핑몰 가입시 사용 가능한 20코인을 드리며 6월 9일 IDCM거래소에 상장합니다.
    https://distribution.platform.bizauto.io/android 이곳으로가입하시고 추천인 firenews1004@naver.com 입니다.