본문 바로가기

server

(65)
2. airflow + dbt 이 예제는 개발(로컬/경량)–운영(클라우드/규모) 분리를 전제로 한다.개발/속도: DuckDB 어댑터로 빠르게 모델을 검증하고, seed·단위테스트 중심으로 피드백 루프를 짧게 한다.운영/확장: BigQuery를 타깃으로 외부 테이블(원천: GCS) → staging → mart의 표준 3계층을 구축한다. 스토리지-컴퓨트 분리를 활용해 대용량에도 비용/성능 균형을 맞춘다. 디렉토리 구조 airflow-dbt-demo/├─ docker-compose.yml├─ .env ├─ airflow/│ ├─ Dockerfile│ ├─ requirements.txt│ ├─ dags/│ └─ dbt_duckdb_demo.py└─ dbt/ └─ demo_dbt/ ..
1. dbt tutorial 왜 dbt인가, 그리고 언제 써야 하나데이터 팀은 보통 원천 데이터를 웨어하우스로 옮긴 뒤 SQL로 정제하고, 지표를 만들어 대시보드·분석에 제공합니다. 이 과정이 커질수록 SQL 스크립트가 여기저기 흩어지고, 의존성·버전관리·테스트가 어려워집니다. dbt(Data Build Tool) 는 이 문제를 해결하기 위한 표준 도구입니다.SQL 변환을 코드로 관리하고, ref()로 의존 그래프를 안전하게 만들며, 테스트·문서화·라인리지를 자동화합니다. PR 기반 협업과 CI/CD도 용이합니다.다음을 기준으로 사용하면 좋습니다.웨어하우스(BigQuery/Snowflake/Redshift/DuckDB 등) 안에서 SQL 기반 변환을 할 때모델 수가 늘어나 의존성/품질 관리가 중요할 때대시보드 지표 정의를 코드로 명..
[논문] Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics https://www.cidrdb.org/cidr2021/papers/cidr2021_paper17.pdf 본 문서는 기존의 데이터 웨어하우스와 데이터 레이크의 한계를 극복하고자 레이크하우스(Lakehouse)라는 새로운 데이터 아키텍처를 제안합니다. 데이터 웨어하우스가 데이터 사일로, 높은 비용, 제한된 확장성 등의 문제를 겪는 반면, 데이터 레이크는 데이터 품질 및 거버넌스 부족, 분석 성능 저하와 같은 단점을 가진다고 지적합니다. 레이크하우스는 오픈 데이터 형식을 기반으로 하여 기계 학습 및 데이터 과학 워크로드를 지원하며, 데이터 웨어하우스의 성능 및 관리 기능을 통합하여 이러한 문제를 해결하며 복잡성을 줄이고, 데이터의 신뢰성, 최신성, 그리고 고급 분석 지원을 향상시키는 것을 목표로 합니다...
Kafka producer/consumer 튜닝 (acks, batch.size, linger.ms 등) resources: requests: cpu: 500m memory: 512Mi top - 05:43:42 up 1 day, 10:29, 0 users, load average: 0.64, 0.88, 1.29Tasks: 5 total, 1 running, 4 sleeping, 0 stopped, 0 zombie%Cpu(s): 6.8 us, 1.0 sy, 0.0 ni, 91.4 id, 0.2 wa, 0.0 hi, 0.6 si, 0.0 stMiB Mem : 7945.9 total, 805.2 free, 3249.5 used, 3891.1 buff/cacheMiB Swap: 0.0 total, 0.0 free, ..
로또 시스템 아키텍처 지금 회사에는 제품중 로또 시스템 있다. 실제 토요일 로또 추첨된 결과와 일치하는 로또를 가진 유저에게 현금을 주는 시스템이 있다. 최근 사용자가 증가하면서 일주일에 대략 8000만개의 로또가 생성되는데, 이를 추첨하는데만 12시간이 걸린다. (정확히는 데이터를 백업하고, 해당 유저를 정확히 뽑는데까지 걸리는 시간이다.) 하지만, 실제 로또 추첨을 보면 번호 추첨과 동시에 몇명이 뽑혔는지가 나온다. (거의 10초 내외로 나온다.)이게.....어떤 시스템이길래 가능한걸까? 라는 생각이 들어서, 우리 회사에 적용할수 있는 시스템일까? 하는 호기심이 들어서 테스트를 해보았다. 테스트는 맥북 에어 (m4) 에서 실행했다. 1. 번호 생성조건은 3억개의 로또 번호에서 특정 번호를 뽑는데, 얼마나 시간이 걸리는지 ..
[helm] jupyter-lab 실행하기 $ minikube start 1. helm 추가jupyter-lab/├── Chart.yaml├── values.yaml└── templates/ └── pod.yaml Chart.yamlapiVersion: v2name: jupyter-labdescription: A simple Helm chart for single-user JupyterLabtype: applicationversion: 0.1.0appVersion: "1.0" values.yamlimage: repository: jupyter/base-notebook tag: latest pullPolicy: IfNotPresentnotebookArgs: token: "" allow_origin: "*"containerPort..
kafka-reassign-partitions 2번 서버의 디스크가 85% 알람 UI에서 확인 용량이 가장 큰 토픽 확인 뉴레릭에서 확인, 5번서버 널널함2 -> 5번으로 옮기는 작업 필요 ## kafka-reassign-partitions**Apache Kafka에서 파티션의 리더와 복제본을 브로커 간에 재분배(reassignment)** 하기 위한 **관리 도구**Kafka 클러스터는 토픽을 **파티션** 단위로 나누고, 각 파티션은 하나 이상의 **브로커**에 분산 저장됩니다. 하지만 다음과 같은 상황에서 **불균형**이 생길 수 있습니다:* 브로커를 추가했을 때 새 브로커에 파티션이 할당되지 않음* 일부 브로커에 너무 많은 파티션이 몰림 (리더 파티션 포함)* 특정 브로커를 제거하거나 정비하려고 할 때⠀이런 경우에 **파티션을 재배치**해서 ..
fluentd grpc ruby 버전 에러 booted, phase: 0","timestamp":"2025-07-27T04:09:02.32159913Z"}[BUG] Segmentation fault at 0x0000000000000029ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]-- Control frame information -----------------------------------------------c:0001 p:---- s:0003 e:000002 (none) [FINISH]-- Machine register context ------------------------------------------------ RIP: 0x00007f20478d905f RBP: 0..