목록데이터 웨어하우스(Data Warehouse) (40)
터칭 데이터
https://touchingdata.tistory.com/91 Redshift Cluster 생성 & Colab에 연결 클러스터 생성 AWS의 신규회원으로 가입해 $300의 무료 크레딧을 받을 수 있는 사용자를 기준으로 설명합니다. 먼저 AWS에 회원가입을 진행합니다. 우측 상단에서 사용할 서버의 지역을 선택할 수 touchingdata.tistory.com
Redshift의 기본 데이터 타입 SMALLINT (INT2) INTEGER (INT, INT4) BIGINT (INT8) DECIMAL (NUMERIC) REAL (FLOAT4) DOUBLE PRECISION (FLOAT8) BOOLEAN (BOOL) CHAR (CHARACTER) VARCHAR (CHARACTER VARYING) TEXT (VARCHAR(256)) DATE TIMESTAMP Redshift의 데이터 타입은 위와 같이 PostgreSQL과 거의 동일하지만 볼드체로 표기한 타입들은 주의할 필요가 있습니다. PostgreSQL은 UTF-8 기준이므로 어떤 언어가 되었든 한 글자는 CHARACTER 하나입니다. 반면에 Redshift에서 CHAR, VARCHAR, TEXT는 기본적으로 by..

Redshift의 벌크 업데이트 방식 - COPY SQL INSERT INTO는 record by record 방식이기 때문에 너무 많은 데이터 적재에는 시간이 오래 걸립니다. 그래서 모든 데이터 웨어하우스에서는 COPY SQL 기능을 제공하며 이를 이용해 벌크 업데이트를 진행합니다. 1. 먼저 압축율이 좋은 Binary 파일로 만들어 이를 Cloud Storage에 로딩합니다. (Redshift는 S3) 2. 그리고 이를 Redshift의 S3와 같은 Cloud Storage에 로딩합니다. 3. COPY SQL로 S3에서 데이터 웨어하우스 테이블로 한번에 복사합니다. 데이터 웨어하우스에서 일반적으로 사용하는 벌크 업데이트 (레코드 적재) 방식입니다.

Redshift의 스케일링 방식 (1) 용량이 부족해질 때마다 새로운 노드를 추가하는 방식으로 스케일링합니다. Scale Out 방식과 Scale Up 방식이 있습니다. 예를 들어 0.16TB 용량의 dc2.large를 사용중 공간이 부족해질 때 dc2.large 한대를 더 추가하면 Scale out입니다. 그게 아니라 더 성능이 좋고 용량이 큰 dc2.8xlarge로 교체하며 사양을 더 좋은 것으로 업그레이드하면 scale up입니다. 이를 Resizing이라고 부르며 Auto Scaling 옵션을 설정하면 자동으로 이루어집니다. Redshift의 스케일링 방식 (2) 이는 Snowflake나 BigQuery의 방식과는 굉장히 다릅니다. 이 둘은 특별히 용량이 정해져있지 않고 사용한만큼 지불하는 온 디..
Redshift: Scalable SQL 엔진 Amazon Redshift는 Amazon Web Services(AWS)에서 제공하는 완전 관리형, 페타바이트 규모의 데이터 웨어하우스 서비스입니다. Redshift 역시 SQL입니다. Redshift의 특징 (1) 2 PB까지 지원 문제는 2페타바이트에 가까워질수록 성능상에 문제가 발생합니다. 이론상 최대 용량이라고 생각하시는게 좋습니다. Still OLAP 데이터 웨어하우스가 그렇듯 응답속도가 아닌 데이터 크기에 집중했으므로 프로덕션 데이터베이스로는 사용 X Columnar storate 기존의 프로덕션 데이터베이스는 행별로 데이터가 추가되었습니다. 반면에 Redshift는 컬럼별 압축이 가능합니다. 덕분에 컬럼을 추가, 삭제와 쿼리 실행이 아주 빠르며..
데이터 플랫폼의 발전단계 초기 단계: 데이터 웨어하우스 + ETL 발전 단계: 데이터 양 증가 Spark과 같은 빅데이터 처리시스템 도입 데이터 레이크 도입 성숙 단계: 데이터 활용 증대 현업단의 데이터 활용이 가속화 ETL단이 더 중요해지면서 dbt 등의 analytics engineering 도입 MLOps 등 머신러닝 관련 효율성 증대 노력 증대 ◆ 발전 단계: 데이터 양 증가 ❖ Spark과 같은 빅데이터 처리시스템 도입 ❖ 데이터 레이크 도입: 보통 로그 데이터와 같은 대용량 비구조화 데이터 대상 데이터 소스 -> 데이터 파이프라인 -> 데이터 웨어하우스 데이터 소스 -> 데이터 파이프라인 -> 데이터 레이크 데이터 레이크 -> 데이터 파이프라인 -> 데이터 웨어하우스 ▪ 이때 Spark/Had..
◆ 살펴볼 옵션들 AWS Redshift Snowflake Google Cloud BigQuery Apache Hive Apache Presto Apache Iceberg Apache Spark 이 옵션들의 공통점은? Iceberg를 제외하고는 모두 SQL을 지원하는 빅데이터 기반 데이터베이스 ◆ AWS Redshift ❖ 2012년에 시작된 AWS 기반의 데이터웨어하우스로 PB 스케일 데이터 분산 처리 가능 Postgresql과 호환되는 SQL로 처리 가능하게 해줌 Python UDF (User Defined Function)의 작성을 통해 기능 확장 가능 처음에는 고정비용 모델로 시작했으나 이제는 가변비용 모델도 지원 (Redshift Serverless) 온디맨드 가격 이외에도 예약 가격 옵션도 지..
Data Lake Data Warehouse와 Data Lake는 둘 다 대량의 데이터를 저장하고 분석하는 데 사용되는 시스템이지만, 그들의 목적과 구조는 매우 다릅니다. Data Warehouse: Data Warehouse는 구조화된 데이터를 저장하고 관리하는 시스템입니다. 이 시스템은 일반적으로 OLAP (Online Analytical Processing) 작업을 지원하며, 복잡한 쿼리와 데이터 분석을 처리하는 데 사용됩니다. Data Warehouse는 데이터를 주제별로 구성하고, 데이터의 일관성과 품질을 유지하는 데 중점을 둡니다. 이 시스템은 일반적으로 비즈니스 인텔리전스, 보고, 데이터 마이닝 등에 사용됩니다. Data Lake: Data Lake는 구조화되지 않은 데이터를 포함한 모든 유..
데이터 엔지니어의 역할 기본적으로는 소프트웨어 엔지니어 파이썬 다만 자바 혹은 스칼라와 같은 언어를 아는 것도 좋음 데이터 웨어하우스 구축 데이터 웨어하우스를 만들고 이를 관리. 클라우드로 가는 것이 추세 AWS의 Redshift, 구글클라우드의 BigQuery, 스노우플레이크 관련해서 중요한 작업중의 하나는 ETL 코드를 작성하고 주기적으로 실행해주는 것 ETL 스케줄러 혹은 프레임웍이 필요 (Airflow라는 오픈소스가 대세) 데이터 분석가와 과학자 지원 데이터 분석가, 데이터 과학자들과의 협업을 통해 필요한 툴이나 데이터를 제공해주는 것이 데이터 엔지니어의 중요한 역할 중의 하나 주니어 데이터 엔지니어에게 필요한 기술 스택 SQL: 기본 SQL, Hive, Presto, SparkSQL, … 프로그..
데이터 웨어하우스 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스 (SQL 데이터베이스) 여전히 SQL 기반의 관계형 데이터베이스 프로덕션 데이터베이스와는 별도이어야 함 그래서 회사에 존재하는 모든 데이터를 데이터 웨어하우스에 복사해두고 사용합니다. 서비스 개발자들이 사용하는 프로덕션 데이터베이스와 분리되어있기 때문에 서비스에 지장이 없습니다. OLAP (OnLine Analytical Processing) vs. OLTP (OnLine Transaction Processing) 크기가 커진다면 다음 중 하나를 선택 AWS Redshift, 구글 클라우드의 BigQuery 스노우플레이크(Snowflake) 오픈소스 기반의 하둡(Hive/Presto)/Spark 이 모두 SQL을 지원 AWS의 Re..