해결된 질문
작성
·
49
답변 2
0
안녕하세요. 잘 학습해주셔서 감사합니다!
일반 테이블로 만들고 where 절에 날짜 조건을 걸어서 탐색하는 용량(우측 상단에 나오는 kb 등)을 확인해보셔요. 강의에서도 제가 보여드리는데, 탐색하는 용량이 달라집니다. 파티션을 걸지 않으면 전체 데이터를 모두 다 탐색합니다. 이는 컬럼형 데이터베이스(데이터웨어하우스)의 특징입니다. 파티션이 없다면 WHERE을 걸어도 컬럼의 값을 모두 다 탐색합니다
SELECT
*
FROM basic.battle
WHERE battle_datetime = DATETIME("2023-07-04")
SELECT
*
FROM basic.battle
물론 저희 데이터는 소량의 데이터라서 큰 차이가 없지만, 이 차이가 현업에서 BigQuery 비용에 큰 영향을 미칩니다. 그리고 데이터가 많으면 속도 차이도 존재합니다. 일단 전체를 다 스캔해서 자르는 것과 파티션에서 잘라진 상태에서 가져오는 것과 차이가 있습니다.
MySQL 쪽에서는 말씀하신 것처럼 파티션의 개념이 없어도 괜찮습니다. 그러나 지금 학습하고 있는 BigQuery는 데이터 분석에 특화된 데이터 웨어하우스입니다. 데이터 웨어하우스는 컬럼형 데이터베이스란 특징이 있고, MySQL 등은 Row Oriented Database입니다. 개발하시던 분들이 두개의 차이가 헷갈려하시는 경우도 있더라구요. 아래 글을 참고해보셔도 좋을 것 같네요
https://fierycoding.tistory.com/102
쿼리 수행 결과라는 것은 어떤 의미인가요? 쿼리 수행하는 과정을 의미하시는걸까요? 쿼리 실행하는 리소스랑 수행 결과라는 것이 비슷한 개념인 것 같은데 어떻게 생각하신건지 궁금하네요. 쿼리 비용 관련해서는 1-1. BigQuery 기초 지식 12분부터 말씀드리고 있어요.
쿼리 실행하는 과정에서 탐색하는 비용만큼 비용을 부과합니다(이 과정에서 데이터를 처리하는 것도 포함됩니다. 그러나 기준은 탐색하는 데이터 용량 기준입니다)
0
안녕하세요, 인프런 AI 인턴입니다. 씨쁠쁠러버님, 빅쿼리 관련 질문 주셔서 감사합니다.
강의에서 설명한 것처럼 데이터베이스에서 파티셔닝은 성능 최적화를 위한 중요한 기능입니다. 파티션을 사용하는 것과 단순히 WHERE
절을 사용하여 데이터를 필터링하는 것 사이에는 몇 가지 중요한 차이가 있습니다:
파티션의 장점: 데이터가 파티션을 통해 분할되어 있으면 WHERE
절을 사용했을 때 특정 파티션만 스캔하기 때문에 쿼리 처리 속도가 빨라지고 비용이 줄어듭니다. 이는 특히 대규모 데이터셋에서 매우 유용합니다.
리소스 비용: 쿼리에 사용되는 리소스는 실제로 비용에 포함됩니다. 빅쿼리에서는 쿼리가 처리하는 데이터의 양(즉, 스캔된 데이터 바이트 수)에 따라 요금이 청구됩니다. 파티션을 사용하면 데이터 스캔 양이 줄어들기 때문에 비용이 절감될 수 있습니다.
비교 예제: 일정 기준으로 파티션이 설정된 테이블에서는 파티션된 필드를 기준으로 쿼리를 사용할 때 전체 데이터가 아닌 특정 파티션만 검색하므로 효율적입니다. 반면, 일반 테이블에서는 전체 데이터를 스캔하기 때문에 데이터 양이 많아질수록 성능 저하와 비용 증가를 초래할 수 있습니다.
추가로 유익한 링크를 첨부해 드리겠습니다:
데이터 효율성을 위해 파티션을 사용하시는 것이 장기적으로도 유리할 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
where 조건을 걸면 부분적으로 탐색하는 줄 알았는데 전부 탐색하는군요. 말씀 주신 대로 데이터 확인했습니다.
2번 질문도 쿼리 수행 시 탐색 비용이 부과 되는지, 되지 않는지가 궁금했는데 탐색 비용이 부과된다고 이해했습니다. 답변 감사합니다:)