E-commerce API integration management
Project description
LinkMerce
E-commerce API 통합 관리 플랫폼
목차
소개
LinkMerce는 다양한 이커머스 API를 통합 관리할 수 있는 Python 기반 플랫폼입니다. API 연동, 데이터 적재, ETL, 스케줄링을 지원하며, PyPI 패키지와 Airflow 워크플로우로 구성되어 있습니다.
설치 및 사용법
PyPI 패키지
- Python 환경 준비 (>=3.10)
- 패키지 설치:
pip install linkmerce - 환경설정 파일(
src/env/) 및 예제 참고
구성
ETL 모듈 및 구조
-
Extract (추출)
extract.py의Extractor클래스는 외부 API, DB, 파일 등 다양한 소스에서 데이터를 동기/비동기로 추출하는 기능을 제공합니다.- 세션 관리, 요청 파라미터, 변수 관리, 파싱 로직을 포함하며, 실제 데이터 추출은
extract또는extract_async메서드를 통해 구현됩니다. - 예시: REST API에서 상품 정보를 받아오는 커스텀 Extractor 구현 가능
-
Transform (변환)
transform.py의Transformer및 하위 클래스(JsonTransformer,DBTransformer등)는 추출된 데이터를 원하는 형태로 변환합니다.- JSON, DB 결과 등 다양한 입력을 받아 파싱, 필터링, 타입 변환, 구조 변경 등 데이터 가공을 담당합니다.
- 예시: API 응답 JSON을 표준 데이터셋으로 변환, DB 결과를 DataFrame 등으로 가공
-
Load (적재)
load.py의Connection및 관련 함수/클래스는 변환된 데이터를 DB, 파일, 외부 시스템에 적재하는 기능을 제공합니다.- DuckDB, BigQuery 등 다양한 데이터 웨어하우스 연동을 지원하며, SQL 실행, 파일 저장(csv/json/parquet), 커넥션 관리 등 포함
- 예시: 변환된 데이터를 DuckDB에 저장, BigQuery로 업로드, CSV/JSON 파일로 내보내기
각 모듈은 추상 클래스와 메서드로 구성되어 있어, 실제 사용 환경에 맞게 커스텀 구현이 가능합니다.
요청 작업별 ETL 구조 (core/)
-
각 비즈니스/데이터 작업 단위별로
core/디렉토리 내에 아래와 같은 파일 구조를 갖습니다:extract.py: 해당 작업에 필요한 데이터 추출 로직(예: API 호출, DB 조회 등)을 정의합니다.transform.py: 추출된 데이터를 가공/정제/필터링하는 변환 로직을 정의합니다.models.sql: 데이터 적재 및 조회에 필요한 SQL 모델(테이블/뷰/쿼리 등)을 정의합니다.
-
이들 파일은 서로 다음과 같이 연결되어 동작합니다:
- extract.py에서 원천 데이터를 수집
- transform.py에서 수집된 데이터를 비즈니스 목적에 맞게 변환
- models.sql에 정의된 스키마/쿼리를 활용해 데이터를 저장하거나 추가 가공
-
API 통합 사용 방식
api/모듈에서는 각 작업별로core/의 extract, transform, models를 불러와 하나의 파이프라인으로 통합합니다.- 예를 들어, 특정 상품의 랭킹 정보를 가져오는 API는
core/rank_shop/extract.py로 데이터 추출,transform.py로 변환,models.sql로 적재 및 조회를 수행합니다. - 이를 통해 코드의 재사용성과 유지보수성을 높이고, 각 작업별 ETL 로직을 명확하게 분리할 수 있습니다.
이 구조는 확장성과 모듈화에 최적화되어 있어, 새로운 데이터 작업 추가 시에도 일관된 방식으로 ETL 파이프라인을 설계할 수 있습니다.
확장 모듈
- BigQuery 연동: 확장 모듈(
extensions/bigquery.py)을 통해 Google BigQuery에 데이터를 적재하거나 조회할 수 있습니다. - Google Sheets 연동: 확장 모듈(
extensions/sheets.py)을 통해 Google Sheets API를 활용한 데이터 연동이 가능합니다. - 기타 외부 시스템 연동도 확장 모듈 구조로 손쉽게 추가할 수 있습니다.
- 확장 모듈에 대한 의존성은 명시되어 있지 않습니다.
Airflow 워크플로우
- 이커머스 데이터 ETL 및 스케줄링을 위한 Airflow DAG 및 관련 스크립트/설정
- 주요 구성:
- DAGs:
airflow/dags/(예: naver_brand_price, naver_brand_sales_first, naver_product_catalog 등) - 설정:
airflow/config/airflow.cfg,docker-compose.yaml - 실행 스크립트:
exec.sh,init.sh
- DAGs:
- 주요 기능:
- 네이버 스마트스토어/검색광고/랭킹/브랜드 데이터 ETL
- BigQuery, DuckDB 등 데이터 웨어하우스 연동
- 스케줄링 및 트리거 기반 데이터 파이프라인
- 실행 예시:
cd airflow docker compose up airflow-init && docker compose up -d
- DAG 예시:
- 매일 자정 브랜드 가격 데이터 적재:
naver_brand_price - 매일 오전 브랜드 매출 데이터 적재:
naver_brand_sales_first - 시간별 광고/비광고 순위 데이터 적재:
naver_rank_ad,naver_rank_shop
- 매일 자정 브랜드 가격 데이터 적재:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linkmerce-0.4.6.tar.gz.
File metadata
- Download URL: linkmerce-0.4.6.tar.gz
- Upload date:
- Size: 74.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
494a004061e936d5b09fc4b17b5362d91f4fe09fb9101495709f3cb3d72afeac
|
|
| MD5 |
dee4a9ad536ed2c4190560aa29c8ce44
|
|
| BLAKE2b-256 |
969e34b3bc6825d7a2092f51ebecddf51b85ff508dfa41f723aa91618e3b2827
|
File details
Details for the file linkmerce-0.4.6-py3-none-any.whl.
File metadata
- Download URL: linkmerce-0.4.6-py3-none-any.whl
- Upload date:
- Size: 110.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a15d345b7e3eac319799eaac50c979fca9cb58c6bf628ffa5f2ff6f07e8dd03
|
|
| MD5 |
f7d37ac8b56632cc42aba316dd89c302
|
|
| BLAKE2b-256 |
0fe71f9ee0764ab4b3ac3fe84156485760a2ef49bd3d2ac82ecf1fd498684325
|