전체 글 53

Bigquery - Exists , Not exists

exists 나, not exists는 서브쿼리로서 결과가 있는지 없는지 등을 파악하기 위해 사용 됩니다. 아래의 코드처럼, 급여가 55000불 이상인 사람들을 알기 위해서 exists를 사용하여, 선택하고 테이블에서 Join해서 가져오는 경우를 보실 수 있습니다. 그래서 조인 필터링과 같이 특정 조건을 만족하는 행을 확인할 수 있습니다. WITH employee_salaries AS ( SELECT employee_id, employee_name, salary FROM UNNEST([ STRUCT(1 AS employee_id, 'John' AS employee_name, 50000 AS salary), STRUCT(2, 'Jane', 60000), STRUCT(3, 'Alice', 55000), ST..

SQL 2024.04.11

1정규화, 2정규화, 3정규화, 4정규화, 5정규화

정규화(Normalization)는 데이터베이스 설계에서 중복을 제거하고 데이터 일관성을 유지하기 위해 데이터를 표준화하는 프로세스입니다. 1NF부터 5NF까지의 다섯 가지 정규화 형태를 설명하겠습니다. 제1정규화(1NF): 설명: 각 열에는 하나의 값만 있어야 합니다. 즉, 모든 도메인이 원자값(Atomic value)이어야 합니다. 예시: 학생 테이블에서 한 열에 여러 개의 전화번호를 가지고 있는 경우, 이를 별도의 테이블로 분리하여 각 행당 하나의 전화번호를 가지도록 만듭니다. 제2정규화(2NF): 설명: 부분적 함수 종속을 제거하여 모든 비주요 속성이 기본 키에 대해 완전 함수적 종속을 가져야 합니다. 예시: 주문 테이블에서 주문 번호와 제품 정보를 함께 가지고 있는 경우, 이를 주문 정보와 제품..

데이터베이스 2024.04.07

Biguqery - Array, Struct, Unnest 사용방법 - 1

Array Array(배열)은 같은 데이터 타입을 가진 값이 모여있는 형태입니다. 아래 그림처럼 int컬럼은 Array의 유형이고, str컬럼은 Array의 유형입니다. WITH data AS ( SELECT [1, 2, 3, 4, 5] AS int ,['가', '나', '다', '라', '마'] AS str ) SELECT int, str FROM data, UNNEST(int) AS int with OFFSET int_offset, UNNEST(str) AS str with OFFSEt str_offset where true and int_offset = str_offset ; Array(배열)을 사용하는 이유 데이터의 같은 유형을 그룹화 할 수 있어, 접근성이 높습니다. 메모리를 보다 효율적으로 관..

빅쿼리(Bigquery) 2024.04.06

Window 함수 정리(UNBOUNDED PRECEDING?) 누적합

window 함수 SUM, AVG, FIRST_VALUE, LAST_VALUE… OVER (PARTITION BY ORDER BY [Rows / Range] between [CURRENT ROW / UNBOUNDED PRECEDING / UNBOUNDED FOLLOWING] : 시작 AND [CURRENT ROW / UNBOUNDED PRECEDING / UNBOUNDED FOLLOWING] : 마지막 rows_range : A clause that defineds a window frame with physical rows or a logical range [Rows / Range] 차이 rows : 물리적인 위치(Physical offsets) 를 사용하는 것을 정의한다. Range : row들의 논..

빅쿼리(Bigquery) 2024.04.02

[Linux] 리눅스 alias(자주쓰는 명령어 간단하게 지정) 사용법

간단하지만, 기억하기 위해 작성합니다. alias 명칭='자주 쓰는 명령어' 이렇게 설정할 수 있습니다. 다만 이렇게 설정하면 부팅하면 초기화될 수 있습니다. 그래서 영구적으로 사용하기 위해서는 아래처럼 수행하면 됩니다. vi ~/.bashrc #수행 후, INSERT로 내부에서 기존에 작성했던 명령어를 기입합니다. alias AA= '지정하고 싶은 명령문' 그 후, source ~/.bashrc 수행합니다.

리눅스 2023.04.23

빅쿼리(Bigquery) 소개

안녕하세요. 글을 오랜만에 작성하는 것같습니다. 작년 한 스타트업 데이터 엔지니어팀에 입사하여 바쁘게 지내다 보니 정신없이 지냈습니다. 현재 회사에서는 Bigquery 및 Python을 하면서 지내고 있습니다. 특히 Bigquery를 통해 프로시져를 작성하는 업무를 주로 하고 있습니다. 그래서 입사 한 후 많이 다루고 있는 Bigquery에 대한 정리를 조금씩 하고자 합니다. Bigquery 정의 빅쿼리(BigQuery)는 페타바이트급 이상의 데이터에 대해 스케일링 분석(필요시 실시간으로 컴퓨팅 자원을 동적으로 확장)을 가능케 하는 완전 관리형(fully-managed) 서버리스 컴퓨팅 데이터 웨어하우스이다. 빅쿼리는 2010년 5월 발표되었으며 2011년 11월 일반에 공개되었다. 빅쿼리의 UI를 살펴..

빅쿼리(Bigquery) 2022.08.06