문제 상황
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 |
|---|
