본문으로 건너뛰기

지식이 홀쑥

Dagster 맛보기

Dagster 알아보기Dagster란Dagster는 데이터 파이프라인의 생명주기에서 데이터 간 관계 정의와 모니터링, 선언적 프로그래밍 모델, 테스트 가능성 향상을 위해 설계된 클라우드 네이티브 파이프라인 관리 도구이다.테이블이나 데이터셋, 머신러닝 모델이나 보고서들과 같은 Data Asset들로 개발 및 관리되도록 설계되었다.Python 함수로 Data Asset을 정의하면 Dagster는 그 함수를 정확한 시간에 실행하고 Asset을 최신 상태로 지켜준다.import dagster as dg@dg.assetdef hello(context: dg.AssetExecutionContext): context.log.info("Hello!")@dg.asset(deps=[hello])def world(co..

Data Engineering 2026. 2. 5.

PySpark에서 MinIO와 Iceberg를 연동해 DataLake 구축하기

목표spark 및 iceberg 사용 경험을 위해 pyspark로 HadoopCatalog를 사용하는 MinIO에 iceberg 테이블을 만들고, 샘플 데이터를 삽입 후 쿼리해서 결과를 얻어보려고 한다. 사전 설치1. 접근 가능한 Spark Cluster(pyspark)2. UV(파이썬 패키지 및 프로젝트 매니저)3. Spark에 설치된 pyspark와 같은 버전의 python4. MinIO(또는 S3)테스트 준비프로젝트 생성uv로 프로젝트를 생성한다uv init spark_test 샘플데이터 준비테이블에 넣기 위한 데이터를 준비한다faker 라이브러리로 데이터 생성하는 스크립트 생성하기 위해 라이브러리 설치한다. 샘플이기에 pyproject에 추가하지 않는다uv pip install Faker tqdm..

Data Engineering 2025. 11. 7.
PySpark에서 MinIO와 Iceberg를 연동해 DataLake 구축하기

[Proxmox] apt-get update 401 Unauthorized

발생Proxmox를 다시 설치하면서 apt-get update를 입력하니 enterprise.proxmox.com쪽에서 401 unauthorized 에러가 발생한다.원인Proxmox는 구독하지 않으면 Enterprise 저장소를 사용할 수 없는데, 초기 설치시 저장소가 Enterprise로 설정되어 있어 그렇다.해결구독없이 업데이트를 진행하고 싶다면 Enterprise 저장소를 비활성화 해야한다./etc/apt/sources.list.d에 있는 pve-enterprize.list, ceph.list 파일을 수정한다.~# vi /etc/apt/sources.list.d/pve-enterprise.list#deb https://enterprise.proxmox.com/debian/pve bookworm p..

취미/홈서버 2025. 9. 23.

[GCP] Gemini CLI 설치

GEMINI CLIhttps://github.com/google-gemini/gemini-cli GitHub - google-gemini/gemini-cli: An open-source AI agent that brings the power of Gemini directly into your terminal.An open-source AI agent that brings the power of Gemini directly into your terminal. - google-gemini/gemini-cligithub.com Gemini CLI는 터미널에서 직접 Gemini에 접근할 수 있는 오픈소스 AI Agent이다.사용자의 tools에 연결하고, 사용자의 코드를 이해하여 작업을 가속화시켜 줄 수 있는 ..

Cloud & DevOps/GCP 2025. 7. 29.
[GCP] Gemini CLI 설치

[Airflow] Airflow 3로 업그레이드

Airflow 3Airflow3이 2025년 4월 22일에 출시되었다.(https://airflow.apache.org/blog/airflow-three-point-oh-is-here/) Apache Airflow® 3 is Generally Available!We're proud to announce that Apache Airflow 3.0.0 has been released.airflow.apache.org Airflow2가 나온 2020년 12월 17일 이후로 거의 약 4년 8개월만에 메이저 버전이 올라갔다. 현재 3.0.3(2025-07-14)까지 존재한다.기존엔 모든 컴포넌트가 airflow metadata database에 직접 접근모든 컴포넌트가 같은 네트워크에 있다고 가정하고 설계(tas..

Data Engineering 2025. 7. 20.
[Airflow] Airflow 3로 업그레이드

[Python] Polars Lazy API로 효율적인 데이터 처리

Polars Lazy APIPolars의 Lazy API란 연산을 즉시 실행하지 않고, 연산 계획을 세운 후 실제 결과가 필요할 때 collect()를 통해 실행하는 방식이다.이런 지연실행 방식은 불필요한 연산을 줄이고, 최적화된 쿼리 실행을 가능하게 하여 데이터 처리 속도를 크게 향상시킨다. 왜 Lazy API를 사용할까?성능 최적화Polars는 쿼리 계획을 생성한 뒤 최적화를 통해 불필요한 연산을 제거하거나 순서를 조정하여 성능을 높인다.(predicate pushdown)메모리 효율성Polars는 필요한 컬럼이나 행만 메모리에 올려, 메모리 사용량을 최소화한다.(projection pushdown)대규모 데이터 처리전체 데이터를 한 번에 로드하지 않고, 스트리밍 방식으로 데이터를 처리하여 메모리를 ..

Language & Framework/Python 2025. 4. 21.
[Python] Polars Lazy API로 효율적인 데이터 처리

[Python] Polars의 데이터 타입과 구조

Polars에서 Data Type과 Structure데이터 타입Polars는 다양한 데이터 타입을 지원하며 모든 결측값을 NaN이 아닌 null로 표현한다.숫자 데이터 타입Signed Integers(부호가 있는 정수)Int8, -128~127Int16, -32768 ~ 32767Int32, -2147483648 ~ 2147483647Int64, -9223372036854775808 ~ 9223372036854775807Unsigned Integers(부호가 없는 정수)UInt8, 0 ~ 255UInt16, 0 ~ 65535UInt32, 0 ~ 4264967295UInt64, 0 ~ 18446744073709551615Floating point numbers(부동소수점)Float32, 단정밀도Float6..

Language & Framework/Python 2025. 4. 10.
[Python] Polars의 데이터 타입과 구조

[Python] Polars, 빠른 속도와 낮은 메모리의 DataFrame 라이브러리

Polars이번 글에선 Python의 라이브러리인 Polars에 대해 알아보려고 한다.Polars란?Polars란 Rust 기반으로 작성된 고성능 DataFrame 라이브러리로 Python에서는 binding을 통해 사용한다.일반적으로 사용하는 Pandas보다 적은 메모리로 더 빠른 연산을 수행할 수 있고, 지연평가(Lazy Evaluation)를 사용할 수 있어 대규모 데이터 작업에 유리하다.Python Binding은 다른 프로그래밍 언어로 작성된 코드를 파이썬에서 호출할 수 있도록 연결해 주는 Interface, Polars에선 PyO3 패키지를 사용DataFrame이란 데이터를 행과 열로 구성된 2차원 표(스프레드시트와 비슷)로 정리하는 데이터 구조로 데이터 분석 및 처리에서 보편적으로 쓰이는 데..

Language & Framework/Python 2025. 4. 4.
[Python] Polars, 빠른 속도와 낮은 메모리의 DataFrame 라이브러리

[Python] JSON 직렬화와 역직렬화(json, ujson, orjson, msgspec)

이번 게시글은 Python에서 JSON을 직렬화, 역직렬화 하는 패키지들을 비교해보려고 한다.TL;DR일반적인 사용 -> json속도와 성능 -> orjsonMessagePack을 사용하거나 타입 검증이 필요 -> msgspecujson -> 비추천(신규개발 중단)JSON이란?JSON(JavaScript Object Notation)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷이다.비록 Javascript 객체 문법이지만, 문자 기반이기에 다양한 플랫폼 및 프로그래밍 언어에서 사용할 수 있다.# JSON 예시{ "key1" : "value1", "key2" : "value2", "key3" : { "child_key_1" : "value3..

Language & Framework/Python 2025. 3. 22.
[Python] JSON 직렬화와 역직렬화(json, ujson, orjson, msgspec)

[Python] Python 3.11 cchardet fatal error: longintrepr.h: No such file or directory

문제 발생기존에 airflow에서 사용하던 Plugin Package(Python3.8)에서 인코딩 detect을 위한 cchardet 사용했다.하지만 airflow의 Python Version을 3.11로 올리면서 poetry update를 하던 중 에러가 발생했다.Installing cchardet (2.1.7): Failed ChefBuildError Backend subprocess exited when trying to invoke build_wheel running bdist_wheel running build running build_py creating build/lib.linux-x86_64-cpython-311/cchardet copying src/cchardet/__i..

Language & Framework/Python 2025. 3. 12.
[Python] Python 3.11 cchardet fatal error: longintrepr.h: No such file or directory

Categories

  • 분류 전체보기 (60)
    • Language & Framework (14)
      • Java (1)
      • Python (13)
    • DataBase (4)
      • NoSQL (1)
      • RDBMS (3)
    • Big Data & Ecosystem (9)
      • Hadoop (5)
      • Hive (2)
      • Sqoop (1)
      • Zeppelin (1)
    • Data Engineering (3)
    • Cloud & DevOps (1)
      • AWS (0)
      • GCP (1)
    • Monitoring & Logging (2)
      • ElasticSearch (2)
    • Infrastructure (12)
      • OS (12)
      • Docker (0)
      • Kubernetes (0)
    • Algorithm & CS (7)
      • 백준 알고리즘 (6)
    • Troubleshooting (5)
      • 오류 모음 (5)
    • 취미 (1)
      • 홈서버 (1)

Copyright ©매일 한입

Optimized for SEO & Performance

티스토리툴바