본문 바로가기
반응형

분류 전체보기136

Ubuntu 20.04 xrdp 설치 및 접속 💻 환경 접속: mac m1 pro linux: ubuntu 20.04 1. Microsoft Remote Desktop 설치 https://apps.apple.com/kr/app/microsoft-remote-desktop/id1295203466?mt=12 ‎Microsoft Remote Desktop ‎Use Microsoft Remote Desktop for Mac to connect to Azure Virtual Desktop, Windows 365, admin-provided virtual apps and desktops, or remote PCs. With Microsoft Remote Desktop, you can be productive no matter where you are. GET .. 2023. 7. 14.
[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.
[Airflow] LocalExecutor 사용 시 PostgreSQL 설치 (Mac M1) | LIM Airflow 를 설치하면 가장 기본적으로 설정되어 있는 executor 는 Sequential Executor 이다. 하지만 이 Executor는 병렬처리를 진행할 수 없기 때문에 잘 사용하지 않고 보통 LocalExecutor나 CeleryExecutor 를 많이 사용한다. 이 때 LocalExecutor 를 사용하기 위해 기존 sqlite 로 되어있던 것에서 postgresql 로 변경해야 한다. 설치 환경은 Mac M1 기준이다. Postgresql 설치 brew install postgresql psql 을 입력하여 접속 >> psql 여기서 잘 접속된다면 해피하지만 보통은 그런 일이 잘 없다. 다음과 같은 에러 발생! 에러 핸들링 psql: error: connection to server o.. 2023. 6. 4.
[Airflow] Dynamic Task Mapping 사용해보기(w/UseCase) | LIM Dynamic Task Mapping 은 DAG 작성자가 필요한 작업 수를 사전에 알 필요 없이 현재 데이터에 기반하여 실행 시점에 Task 를 생성하도록 한다. 이는 기존에 for loop 을 이용하여 Task 를 정의하는 것과 유사하지만 다른 점이 있다면 기존엔 for loop 을 Task 바깥에 정의하여 돌리는 방식이었다면 Dynamic Task Mapping 의 경우에는 스케줄러가 실행하기 때문에 미리 정의해둘 필요가 없다. 매핑된 작업의 출력을 기반으로 작업을 수행하고 이는 일반적으로 MapReduce 방식으로 알려져 있다. 기존 For Loop 을 이용하여 DAG 를 생성한 결과 from datetime import datetime from airflow import DAG from airfl.. 2023. 6. 3.
반응형