devops

DuckDB, CSV에서 MySQL로의 ETL

디클냥 2025. 5. 18. 00:04

DuckDB를 ETL 도구로 활용 : CSV 데이터 → MySQL

DuckDB를 통한 CSV 데이터를 MySQL로 ETL 하는 방법

ETL이란?

  • ETL이란 Extract, Transform, Load의 약자로, 데이터를 다양한 소스에서 추출하고 변환하고 적재하는 과정
  • ETL을 수행하기 위해서는 여러가지 툴을 사용할 수 있는데 그 중 하나 DuckDB 활용하는 안

DuckDB

  • DuckDB는 분석 쿼리에 최적화된 임베디드 데이터베이스
  • DuckDB는 PostgreSQL과 호환되는 SQL 문법을 사용하고, 여러 DB와 연결하여 데이터를 효율적으로 가져와 로컬 DuckDB에서 데이터 처리 가능

ETL 예제

  • DuckDB에서 CSV 파일을 읽어와 테이블 생성
  • MySQL Extension{:target="_blank"}
CREATE TABLE csv_table AS SELECT * FROM read_csv_auto('your_csv_file');
  • DuckDB에서 MySQL에 연결합니다. 다음과 같은 명령어를 사용할 수 있습니다.
INSTALL MySQL;
LOAD MySQL;

ATTACH 'host=localhost user=root port=0 database=etldb' AS mysqldb (TYPE mysql)
USE mysqldb;
  • DuckDB에서 MySQL로 데이터를 적재합니다. 다음과 같은 명령어를 사용할 수 있습니다.
CREATE TABLE mysqldb.etldb.csvtbl AS SELECT * FROM csv_table;

참고

'devops' 카테고리의 다른 글

Docker 내부 네트워크 상태 확인  (0) 2025.05.18
DuckDB CLI 및 SQL CheatSheet  (0) 2025.05.18
trino(presto) nested json 예제  (0) 2025.05.18
유니코드 NFD to NFC 변환  (1) 2024.11.27
TLS와 SSH 프로토콜 기능 비교  (0) 2024.11.26