전체 글
-
[Bigquery] Search IndexDB/Bigquery 2024. 7. 8. 01:33
개요BigQuery는 검색 색인을 사용하여 플랫폼 하나에서 강력한 열 저장과 텍스트 검색을 제공하므로 이를 통해 개별 데이터 행을 찾아야 할 때 효율적으로 행을 조회할 수 있습니다.검색 색인을 사용하면 쿼리 성능을 크게 높일 수 있습니다. 처리된 바이트 및 슬롯 밀리초의 절감 효과는 스캔되는 데이터가 적어서 검색 결과 수가 테이블의 총 행 수에서 상대적으로 적은 비율을 차지할 때 극대화됩니다.BigQuery는 색인을 저장하고 관리하고 현재(2024-07-07) 검색 색인은 문자열 뿐만 아니라 시간과 정수형 타입도 적용할 수 있고 SEARCH 함수나 =, in, like와 같은 연산자를 사용해 빠르고 효율적으로 검색할 수 있습니다.사용 사례BigQuery 검색 색인을 사용하면 다음 태스크를 수행할 수 있습..
-
[Python] isinstance() VS type()언어/파이썬 & 장고 2024. 3. 13. 01:56
파이썬에서 주어진 인스턴스가 어떤 클래스 또는 타입인지 비교하는 방법은 다음과 같습니다. 각 기능에 대해 설명 후 두 방법의 차이를 설명하도록 합니다. isinstance() 파이썬 내장함수인 isinstance()는 여러 기능이 있습니다. 1. isinstance(확인하고자 하는 값, 데이터 타입) print(isinstance("abc", str)) # True print(isinstance(1234, int)) # True 2. isinstance(확인하고자 하는 인스턴스, 클래스) class Parent: pass parent = Parent() print(isinstance(parent, Parent)) # True 주의사항 isinstance의 첫 번째 argument는 인스턴스여야 제대로 비..
-
[Airflow] 데이터베이스 로그 주기적으로 자동 삭제하기언어/파이썬 & 장고 2024. 3. 1. 18:16
시간이 지남에 따라 환경의 Airflow 데이터베이스에는 더 많은 데이터가 저장됩니다. 이 데이터에는 과거 DAG 실행, 태스크, 기타 Airflow 작업과 관련된 정보 및 로그가 포함됩니다. 💡 GCP Composer2에 해당하는 내용 Airflow 데이터베이스 크기가 16GB를 초과하면 환경을 이후 버전으로 업그레이드할 수 없음 Airflow 데이터베이스 크기가 20GB를 초과하면 스냅샷을 만들 수 없음 Dag를 사용하여 주기적인 DB 유지보수 다음 유지보수 DAG를 사용하여 데이터베이스 콘텐츠 속도를 빠르게 할 수 있습니다.(프루닝) 데이터베이스 크기를 작게 유지하려면 유지보수 DAG를 주기적으로 실행해야 합니다. 구글의 composer 문서에서는 아래에서 소개할 DAG를 매일 실행하는 것이 좋다고..
-
[Bigquery] 데이터 마스킹이란DB/Bigquery 2024. 2. 26. 23:40
데이터 마스킹을 사용해 컬럼 데이터를 선택적으로 가릴 수 있습니다. 정책 태그의 컬럼 수준 액세스 제어를 기반으로 동작하기 때문에 정책 태그 기능을 숙지해야 합니다. 장점 민감한 컬럼을 허용된 그룹에게만 전체 오픈할 수 있으므로 데이터 공유 프로세스가 간소화됨 컬럼 수준 액세스 제어와 달리 사용자가 액세스할 수 없는 컬럼을 제외하는 액션이 필요없음 즉, 기존 쿼리를 수정할 필요가 없음 정책 태그 기능과 연결된 기능으로 정책 태그의 장점을 그대로 취할 수 있음 데이터 마스킹 워크플로 분류 및 정책 태그 정의 데이터 마스킹 규칙 설정과 사용자 또는 그룹 구성원을 정책 태그에 매핑 빅쿼리 테이블의 컬럼에 정책 태그를 할당하여 데이터 정책을 적용 정책 태그에 대한 액세스 관리 마스킹된 데이터에 액세스해야 하는 ..
-
[Bigquery] 정책 태그(Policy Tags)란DB/Bigquery 2024. 2. 26. 00:24
Bigquery의 정책 태그는 데이터 유형에 대한 분류 체계를 제공합니다. 이를 통해 데이터 관리 및 보안 규칙을 쉽게 적용할 수 있습니다. Bigquery의 정책 태그는 데이터 카탈로그에 대한 메타데이터를 제공하며, 이를 통해 데이터 거버넌스를 강화하고 데이터 액세스를 제어하며 데이터 보안을 향상시킬 수 있습니다. 예를 들어 정책 태그를 통해 다음과 같은 액세스 검사를 시행할 수 있습니다. TYPE_SSN을 포함하는 컬럼을 보려면 group:high-access에 있어야함 celery 라는 컬럼은 team:hr 이 있는 사람만 조회 가능 컬럼 수준 액세스 제어 워크플로 정책 태그의 액세스 제어 워크플로는 다음과 같습니다. 분류 및 정책 태그 정의 데이터의 분류 및 정책 태그를 만들고 관리합니다. Big..
-
[Bigquery] 라벨이란DB/Bigquery 2024. 2. 21. 00:14
빅쿼리의 라벨을 사용하면 데이터셋, 테이블, 뷰에 라벨을 추가하여 리소스를 체계화 할 수 있습니다. 라벨은 key-value 쌍으로 구성합니다. 라벨을 지정하면 검색에 용이하며 용도, 환경, 부서 등을 기준으로 그룹화할 수 있습니다. 라벨 요구 사항 다음은 라벨을 구성하는데 필요한 사항입니다. 각 리소스에 라벨을 최대 64개까지 사용 가능 라벨은 키-값 쌍으로 이뤄짐 키는 필수값이며 1~63자까지 입력 가능 값은 선택 값이며 0~63자까지 입력 가능 키와 값은 한글, 소문자, 숫자, 밑줄, 대시만 사용 가능 키는 단일 리소스에서 고유해야함 여러 리소스에 같은 키를 사용할 수 있음 값이 없는 라벨 키의 값이 비어 있는 라벨을 태그라고도 부릅니다. 정책 태그와 형태가 유사해 보이지만 태그와는 기능이 완전히 ..
-
[Bigquery] 시간 이동(Time Travel)과 장애 안전(Fail-Safe)이란DB/Bigquery 2024. 2. 16. 00:51
시간 이동(Time Travel)이란 빅쿼리를 사용하면서 실수로 또는 오류로 인해 데이터가 삭제될 가능성이 있습니다. 데이터를 미리 복사해놨다면 다행이지만 복사본이 없다면 많이 당황을 할텐데 빅쿼리의 시간 이동(time travel) 기능으로 삭제 후 최대 7일까지의 데이터를 손쉽게 복구할 수 있습니다. 시간 이동은 최소 2일부터 7일까지 설정할 수 있고 기본값은 7일입니다. 이러한 기능은 데이터셋 단위로 지정할 수 있습니다. 시간 이동을 최소 단위(2일)로 설정한다면 physical storage 비용 절약을 할 수 있습니다. 시간 이동 설정하기 시간 이동 설정은 다음과 같이 빅쿼리 콘솔에서 간단하게 진행할 수 있습니다. 시간 이동을 사용해 특정 시점의 데이터 쿼리하기 FOR SYSTEM_TIME AS..
-
[Bigquery] Physical Storage란DB/Bigquery 2024. 2. 13. 22:40
개요 2023년 7월에 빅쿼리에서 physical storage라는 저장 방식을 추가하였습니다. physical storage를 사용하면 기존에 logical storage보다 저장 비용을 크게 절감시킬 수 있습니다. logical storage는 저장시키고자 하는 데이터의 크기를 거의 그대로 저장하는 반면 physical storage는 데이터를 압축해서 가지고 있는 방식으로 보입니다. physical storage와 logical storage 비용은 다음과 같습니다. physical storage가 활성/비활성 데이터 저장 비용이 기존 logical storage보다 비싸고 Time travel & fail-safe 스토리지 용량에 대한 비용이 청구가 되므로 사용을 하려면 다음과 같은 확인 사항이 ..
-
[Bigquery] 기본키와 외래키 (pk, fk)DB/Bigquery 2023. 11. 19. 23:18
2023년 7월 15일 GCP 블로그에서 빅쿼리의 기본키와 외래키와 관련된 글을 발행했습니다. 여기서는 기본키와 외래키를 추가해보고 어떤 이점이 있는지 확인해 봅니다. 제한사항 빅쿼리에서는 다음과 같은 제한사항이 있으므로 사용자가 이를 확인하고 조심해야 합니다. 기본키 및 외래키에는 값 제약조건이 적용되지 않음 (사용자는 값이 해당 제약조건과 일치하는지 확인해야 하고 그렇지 않으면 잘못된 결과가 발생할 수 있음) 확인 사항 기본키에는 고유한 값이 있어야함 기본키는 16개의 컬럼을 초과할 수 없음 외래키에는 기본키 테이블 열에 있는 값이 있어야함 (NULL허용) 기본키와 외래키 타입은 BIGNUMERIC, BOOLEAN, DATE, DATETIME, INT64, NUMERIC, STRING, TIMESTA..
-
[Bigquery] 샤드, 파티션 테이블, 클러스터링 파악하기DB/Bigquery 2023. 11. 19. 03:44
테이블 분할 많은 데이터가 존재하는 테이블을 쿼리하면 두 가지 문제 중 하나가 발생합니다. 데이터베이스에 스캔하고 집계할 데이터가 많기 때문에 매우 어려워지거나 비용이 매우 많이 듭니다. 따라서 빅쿼리는 파티션이라는 기능을 제공하고 있고 세그먼트로 나누어 데이터를 더 쉽게 관리하게끔 합니다. 샤드 테이블 샤드 테이블은 날짜를 기반해 테이블을 쪼개어 관리할 수 있고 다음과 같은 특성을 가지고 있습니다. 동일한 데이터셋에 존재 동일한 테이블 스키마 동일한 접두사 (= 동일한 테이블명) _YYYYMMDD 형식의 접미사 예) table_20231119 샤드 테이블은 드롭다운으로 적재되어 있는 일자를 조회할 수 있습니다. 하지만 전체 기간의 테이블 크기와 같은 정보는 세부 정보에서 알 수 없으며 전체 테이블을 삭..