2017. 12. 20. 17:19ㆍ서버 프로그래밍
1. 장점
- 데이터의 양에 상관 없이 일정한 속도를 유지한다. (평균 1~2초대)
- AWS S3보다 상대적으로 저렴한 비용으로 저장할 수 있다(고 한다).
2. 단점
- 비정형 데이터를 정형 데이터 스키마 형식으로 관리를 해야하기 때문에, 오리지널 비정형 데이터를 수용하기 위해 스키마를 정의하는 것이 복잡하다.
- 한번 만들어진 테이블의 스키마 변경이 불가능하다. --> 데이터 구조의 유연성은 떨어지는 것으로 보인다.
- 한번 저장한 데이터의 삭제가 불가능하다. --> 로그성 데이터의 경우에는 문제가 없기는 한데, 수정 뿐만 아니라 삭제까지 막혀있는 것은 처음 본다.
- 쿼리문을 사용할 수 있다고 하지만 100% 호환은 아닌듯 하다. (Hive처럼 Query문으로 입력 받아서 별도의 로직으로 변환하여 처리하는 듯)
- Node.js용 빅쿼리 API 연동 라이브러리를 이용하여 한번에 insert 할 수 있는 데이터의 크기가 한번에 10메가 정도로 작은 편이다.
- 생각보다 참고할만한 레퍼런스가 아직은 부족하게 보인다.
* 배열 형식의 데이터가 저장된 컬럼에 대한 쿼리 방법
https://stackoverflow.com/questions/25939075/bigquery-not-a-leaf-field-error
https://cloud.google.com/bigquery/docs/reference/legacy-sql#flatten
* 빅쿼리 스트리밍 데이터 로딩하기
http://whitechoi.tistory.com/28
* Node.js용 빅쿼리 라이브러리 샘플 소스
https://github.com/googleapis/nodejs-bigquery/blob/master/samples/tables.js
* 구글 클라우드 연동을 위한 인증 방법
https://cloud.google.com/docs/authentication/getting-started#auth-cloud-implicit-nodejs
* 빅테이블 쿼리 문법, 테이블 관련 참고 자료
https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
https://cloud.google.com/bigquery/docs/tables
* 데이터플로우 프로그래밍 모델
https://cloud.google.com/dataflow/model/programming-model