본문 바로가기
반응형

Cloud8

[BigQuery] Streaming Buffer 란 무엇이고 왜 사용하는지 | LIM 빅쿼리는 Columnar Storage이다. 따라서 컬럼별로 메모리 블록이 나뉘어 있는 경우가 많은데 여러 개의 메모리 블락을 업데이트하기엔 부담이 있다. 그래서 Bulk Update 를 해야 하는데 Bulk Update의 경우 Columnar Storage 가 빠르다. 아래는 BigQuery Streaming Ingestion 에 대한 구조이다. 쿼리 엔진이 streaming buffer 와 본테이블(columnar storage)에 모두 붙어있기 때문에 양쪽에서 데이터를 조회할 수 있다. Streaming Ingestion Workers - Streaming Insert 트래픽을 처리하는 API 부분. 주요 역할은 스트리밍 레코드의 JSON 표현을 가져와 스트리밍 버퍼에 삽입하고 작업의 성공/실패를 .. 2023. 6. 11.
[BigQuery] STRUCT, ARRAY 구조에 대해 알아보기 | LIM 빅쿼리에는 Array와 Struct로 데이터를 관리하고 조회할 수 있다. ARRAY 데이터 유형이 동일한 값으로 구성된 목록을 ARRAY 라 부른다. 하나의 행에 데이터 타입이 동일한 여러 값이 저장된다. 아래에서 details.unique_key 는 배열로 구성된 부분이다. 빅쿼리에서 ARRAY를 보여줄 때 세로로 나열된다. STRUCT STRUCT 는 STRUCTURE의 줄임 표현이다. 처음에 이해할 때는 Python의 Dict와 유사한 느낌이라고 이해하면 편하다. Python에서 Dict in List, List in Dict 가 가능한 것처럼 빅쿼리에서도 Struct in Array, Array in Struct 가 가능하다. 빅쿼리에서 STRUCT를 보여줄 때 가로로 나열된다. 실제로 적용해보기.. 2023. 6. 10.
[BigQuery] Surrogate key를 활용하여 JOIN 성능 높이기 | LIM Surrogate Key(대체키) 란 테이블의 입력 데이터의 어떤 열을 기본키(Primary Key)로 하지 않고 시스템쪽에 독립적으로 할당된 키를 의미한다. Natural Key(자연키) 란 입력 데이터 자체의 열을 기본키로 하는 경우 Surrogate Key는 언제 사용해야 하는가 1. Natural Key의 부적합성 자연키는 비즈니스 도메인에서 사용되는 실제 속성(ex. 주민등록번호, 이메일주소) 을 기본키로 사용한다. 하지만 자연키가 유일성, 불변성, 간결성 등의 요구 사항을 충족시키지 못하는 경우가 있을 수 있다. 예를 들어, 이름과 생년월일로 구성된 자연키는 중복되는 경우가 발생할 수 있기 때문이다. 이런 경우 surrogate key 를 활용해 각 레코드를 고유하게 식별할 수 있다. 2. 성.. 2023. 6. 9.
[GCP] BigQuery 란 무엇이며 생겨나게 된 배경 알아보기 | LIM Intro 요즘은 대규모 데이터로부터 효율적이고 확장 가능한 솔루션을 필요로 한다. 그중 하나인 BigQuery는 Google Cloud에서 제공하는 Full Managed Data WareHouse 및 분석 플랫폼이다. BigQuery의 역사 Google은 2010년에 자체적으로 대용량 데이터 처리 요구사항을 처리하기 위한 도구로 BigQuery를 도입했다. Google은 여기서 습득한 대규모 데이터셋의 관리와 분석에 대한 노하우를 활용하여 BigQuery를 자사 상품으로 내놓게 되었다. 2011년에 Google 은 BigQuery를 공개 베타로 출시하여 모든 규모의 조직이 자체 데이터 분석 요구에 BigQuery의 기능을 활용할 수 있게 했다. BigQuery 가 유용한 이유 BigQuery 자체가 .. 2023. 5. 21.
[BigQuery] Partition 과 Cluster 에 대해 알아보고 적용하기 | LIM ✔️ 빅쿼리 Partition 이란? 빅쿼리 파티션이란 하나의 큰 테이블을 사용자가 지정한 column 에 맞추어 여러 스토리지 블록으로 쪼개놓은 것이다. 파티션을 추가하는 경우 장점과 단점은 다음과 같다. 장점) Query 탐색범위를 줄인다. 빅쿼리는 쿼리가 데이터를 탐색하는 양만큼 비용을 부과한다. 파티션이 걸린 경우 해당 파티션 범위만 탐색하기 때문에 비용이 덜 부과된다. Query 속도가 빨라진다. 빅쿼리에서 데이터의 양에 따라 쿼리 소요 시간이 달라짐 미리 조건에 맞추어 작은 테이블로 분할시켜놓았기 때문에 더 빠르게 결과가 나타난다. 단점) 테이블 간 join 비용이 증가한다. 🧐 Sharding(샤딩) 과의 차이는 무엇인가? 샤딩과 파티션 모두 데이터베이스를 여러개로 나누어 분산시키기 위한 .. 2023. 3. 12.
[GCP] VM Instance SSH 접속 (feat. Pycharm) | LIM GCP에서 VM Instance를 하나 띄워놓고 작업해야 할 일이 생겼다. 내가 시도한 방법은 두가지가 있다. 사실 한 가지로 했어도 다 됐는데 설정을 잘못해서 User에 권한 문제가 있는 줄 알고 삽질을 좀 했었다.. ✔️ User 생성을 통해 SSH 설정을 통해 아이디, 패스워드로 접속 ✔️ 접속 시 기본 이메일 아이디로 생성되는 계정으로 접속 ( + 방화벽 설정) 🖥 User 생성을 통한 아이디, 패스워드 접속 User 생성 group 을 생성한 경우 g 옵션으로 group 명을 넣어줌 sudo useradd -d /home/{user} -m -g {group} -s /bin/bash {user} Password 설정 sudo passwd {user} ssh 설정 변경(Password 접속 설정) .. 2023. 1. 20.
반응형