[NCP] Data Query로 용량이 큰 엑셀파일, 데이터를 다루기

2025. 11. 21. 19:42·Cloud

문제 상황


1. 대량의 물리 자산 데이터를 다루고 있는데 엑셀 파일의 용량이 너무 크다(대략 20만건)
2. Fast API와 Pandas를 사용해 엑셀 데이터를 웹에 업로드 하면 특정 필터링을 거쳐 엑셀 파일을 새로 내려주는 로직을 만들어줬다.
3. 하지만 용량이 너무 커서 (20만 행에 189KB) 필터링만 하다 4분이 지나고, 결국 HTTP커넥션이 끊겨버렸다. (Nginx는 Keep-Alive time이 75초라고 한다.)




왜 Data Query를 사용했을까?


1. 팀원 모두 접근 할 수 있는 웹 페이지 / 콘솔에서 대량의 데이터를 필터링해서 엑셀로 내려주기만 하면 된다!
2. 당시 NCP를 쓰고 있었기 때문에, NCP의 Data Query기능을 사용해 대량의 데이터를 필터링 해서 엑셀 export하기로 했다!
3. 생각보다 NCP Data Query기능의 성능도 좋았고, 편리한데 참고할만한 블로그가 없어 이번 글을 통해 소개해본다 :)

Data Query란 무엇일까?


간단한 소개


공식 문서에 따르며 간편하게 데이터를 직접 분석할 수 있는 서버리스 대화형 쿼리 서비스라고 한다.

https://www.ncloud.com/product/analytics/dataQuery

비슷한 기능으로 GCP의 Big Query도 있다 (https://docs.cloud.google.com/bigquery/docs/introduction?hl=ko)

필자가 느낀 장점


내가 느끼기에 Data Query기능의 장점은 대용량의 데이터를 굳이 데이터베이스에 넣어서 Data Grip이나 Work Bench로 조회하지 않아도 된다는 것이다.

csv 파일을 스토리지에 올려두면 Data Query가 스토리지 안의 csv 파일들을 쓱-싹 훑는다. 사용자가 SQL 질의문으로 쿼리만 날려주면 원하는 데이터 필터링도 가능하다!

이렇게 데이터를 DB에 넣지 않고 스토리지에 있는 파일 그대로 SQL 조회 하는 방식을 Dake Lake방식이라고 한다.


Data Query를 구축해보기


Data Query로 스토리지 안의 데이터를 Querying 하기 위해서는 세가지 준비물이 필요하다.

1. Object Storage
2. Data Catalog
3. Data Query


Data Query는 Data Catalog 서비스 내의 데이터들을 기반으로 쿼리를 수행한다.

Data Catalog는 Database와 Table로 구성되는데, 여기서 Table이 Storage와 연동 된다.

결국 Object Storage 내의 csv데이터들을 통해 Data Query를 수행한다.


Object Storage 만들기


매우 간단해서 패스하겠다! Object Storage 탭에 들어가서 스토리지를 적절한 이름을 붙여서 만들면 된다.

Data Catalog 만들기


DataCatalog의 정의는 사용자가 필요한 정보를 빠르게 찾을 수 있도록 하는 회사의 데이터 자산 목록이다.

흔히 사용되는 구성 요소는 Database와 Table이다. 만약에 자동으로 데이터 인식을 하게 되면 Scanner까지 들어간다.

1. Database

Database는 데이터 카탈로그 이용을 신청하면 카탈로그와 기본 제공 데이터 베이스가 자동으로 생성된다.

데이터 카탈로그 안에 실제 데이터(엑셀 내용, DB 행/열)가 들어있는 것이 아니라, "그 데이터가 어디에 있고, 어떻게 생겼는지"에 대한 정보(메타데이터)만 들어있다. 실제 데이터는 스토리지에 있다.

서비스나 기능에 맞는 적절한 이름을 붙인다.

위치는 아까 만든 Object Storage의 위치로 정한다.


2. Table

데이터의 상세정보와 스키마를 가진 메타데이터 정의한다. 스캐너를 통해 테이블을 생성하거나 사용자 정의로 테이블 생성 가능하다.

데이터베이스는 앞서 만든 데이터 베이스를 선택해주면된다.


스키마는 사용하고자 하는 엑셀의 컬럼명을 그대로 써주면  인식한다!



필자의 경우도 엑셀 컬럼명 그대로 스키마를 작성했고, 한 100개정도의 스키마를 작성했는데 전부 인식했다


Data Query


대규모의 정형 또는 비정형 데이터를 간편하게 분석할 수 있는 서버리스 대화형 쿼리 서비스 제공

Data Catalog서비스를 통해 여러 저장소에 산재된 데이터를 통합적으로 조회하고 분석하는 기능을 수행한다.

1. Query Editor

사실상 Data Query 내의 Query Editor라는 기능으로 원하는 데이터를 질의문을 통해 얻어낼 수 있다.

데이터 소스 탭에는 Data Catalog를 통해 연동한 Storage와 Cloud DB정보가 조회된다.

쿼리 탭에는 자주 사용하는 쿼리들을 저장해서 필요할 때마다 가져다 쓸 수 있다.

이렇게 SQL문을 통해 데이터를 조회하면 된다.

278MB인데 3.3초이니 상당히 빠른 속도로 데이터를 읽어온것 같다!

'Cloud' 카테고리의 다른 글

[NCP] NCP NAS Storage에 파일 저장하기 (with NKS)  (0) 2025.11.05
'Cloud' 카테고리의 다른 글
  • [NCP] NCP NAS Storage에 파일 저장하기 (with NKS)
jjungking
jjungking
쩡킹의 고상한 코딩 이야기
  • jjungking
    jjungking
    jjungking
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • Cloud (2)
      • K8S & Docker (4)
      • Linux (3)
      • Next.js & React (3)
      • SpringBoot (2)
      • OS (0)
      • Network (1)
      • AWS (1)
      • Git (1)
      • OpenSource (1)
      • 회고록 (1)
      • 기술세션 공부하기 (0)
      • Certi (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    controlledInput
    springboot
    aws이관
    AWS
    cronjob
    ec2
    objectstorage
    Helm
    NCP
    Nclouder
    promtail
    Husky
    rds이관
    ReactHookForm
    Grafana
    오픈소스기여
    uncontrolledinput
    네이버클라우드플랫폼
    http응답느릴때
    ncloud
    githook
    ec2느릴때
    네이버클라우드
    nks
    리눅스시스템프로그래밍
    RDS
    k8s
    Loki
    uvicorn
    HikariCP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
jjungking
[NCP] Data Query로 용량이 큰 엑셀파일, 데이터를 다루기
상단으로

티스토리툴바