Parquet SPC에서 서로 다른 테넌트별로 데이터를 분리하는 방법은 무엇인가요?

Jan 16, 2026

메시지를 남겨주세요

안녕하세요! 저는 Parquet SPC 공급업체에서 일하고 있는데, 오늘 블로그에서는 다양한 테넌트를 위해 Parquet SPC에서 데이터를 격리하는 방법에 대해 이야기하고 싶습니다. 이제 쪽모이 세공 SPC 바닥재 시장에 계시다면 다음과 같은 멋진 옵션을 접하셨을 것입니다.쪽모이 세공 마루,회색 쪽모이 세공 마루 바닥, 그리고생선뼈 나무 바닥. 하지만 여기서는 데이터 부분에 집중해 보겠습니다.

Parquet SPC에서 데이터를 분리하는 이유는 무엇입니까?

먼저, 서로 다른 테넌트에 대해 Parquet SPC의 데이터를 격리해야 하는 이유가 무엇인지 궁금할 것입니다. 글쎄요, 생각해 보세요. Parquet SPC 데이터를 사용하는 여러 클라이언트 또는 테넌트가 있는 경우 한 테넌트의 데이터가 다른 테넌트의 데이터와 혼합되는 것을 원하지 않습니다. 이는 마치 한 집에 사람마다 다른 방이 있는 것과 같습니다. 누군가의 물건이 다른 사람의 방에 들어가는 것을 원하지 않을 것입니다. 그렇죠?

데이터 격리는 데이터 보안 및 개인 정보 보호를 유지하는 데 도움이 됩니다. 각 테넌트의 데이터는 별도로 보관되므로 무단 액세스나 테넌트 간 데이터 유출 위험이 없습니다. 또한 각 테넌트의 데이터를 개별적으로 관리하고 분석하는 것이 더 쉬워집니다. 다른 데이터와 혼동하지 않고 각 테넌트의 특정 데이터를 기반으로 보고서를 실행하고, 분석을 수행하고, 의사결정을 내릴 수 있습니다.

데이터 격리에 대한 다양한 접근 방식

이제 다양한 테넌트를 위해 Parquet SPC에서 데이터를 격리할 수 있는 다양한 방법을 살펴보겠습니다.

파일 - 레벨 격리

가장 간단한 방법 중 하나는 파일 수준 격리입니다. 이 접근 방식을 사용하면 각 테넌트가 고유한 Parquet 파일 세트를 갖게 됩니다. 따라서 테넌트 A와 테넌트 B가 있는 경우 테넌트 A의 모든 데이터는 파일 세트에 저장되고 테넌트 B의 데이터는 다른 파일 세트에 저장됩니다.

이 방법은 이해하고 구현하기 쉽습니다. 각 테넌트에 대해 별도의 폴더를 만들고 거기에 Parquet 파일을 저장할 수 있습니다. 데이터에 액세스할 때 올바른 테넌트에 대한 올바른 폴더를 가리키기만 하면 됩니다. 그러나 테넌트 전체에서 데이터의 구조가 유사한 경우 중복된 메타데이터와 오버헤드가 많이 발생할 수 있다는 단점이 있습니다.

예를 들어 테넌트 A와 테넌트 B 모두 동일한 열(예: 날짜, 제품, 수량)이 포함된 판매 데이터가 있는 경우 두 개의 서로 다른 파일 집합에 동일한 메타데이터가 있게 됩니다. 이는 저장 공간을 낭비하고 데이터 관리 프로세스를 좀 더 복잡하게 만들 수 있습니다.

파티션 - 수준 격리

파티션 수준 격리는 또 다른 옵션입니다. 이 접근 방식에서는 데이터의 특정 열을 파티션 키로 사용하고 각 테넌트에 해당 키에 대한 고유한 값을 할당합니다. 예를 들어 데이터 세트에 "tenant_id" 열이 있을 수 있습니다.

Parquet 파일에 데이터를 쓸 때 "tenant_id" 열을 기준으로 데이터를 분할합니다. 따라서 테넌트 A의 모든 데이터는 "tenant_id"가 테넌트 A의 ID와 동일한 파티션에 있고 테넌트 B도 마찬가지입니다. 이렇게 하면 데이터를 단일 Parquet 파일 세트에 계속 유지할 수 있지만 논리적으로 테넌트별로 구분됩니다.

파티션 수준 격리의 장점은 파일 수준 격리에 비해 저장소 오버헤드가 줄어든다는 것입니다. 모든 테넌트에서 공통 메타데이터를 공유하여 공간을 절약할 수 있습니다. 또한 특정 테넌트에 대한 데이터 집계 및 필터링과 같은 작업을 수행하는 것이 더 쉽습니다. 해당 테넌트에 대한 파티션 키 값만 지정하면 됩니다.

스키마 - 수준 격리

스키마 수준 격리는 더욱 발전된 접근 방식입니다. 여기서 각 테넌트는 데이터에 대한 자체 스키마 정의를 갖습니다. 이는 데이터의 열, 데이터 유형 및 관계가 테넌트마다 다를 수 있음을 의미합니다.

예를 들어 테넌트 A에는 "날짜", "제품" 및 "수량" 열이 있는 판매 데이터 세트가 있고, 테넌트 B에는 "고객_이름" 및 "할인_율"과 같은 추가 열이 있을 수 있습니다. 스키마 수준 격리를 사용하면 이러한 차이점을 수용할 수 있습니다.

이 접근 방식의 이점은 최대의 유연성을 제공한다는 것입니다. 각 테넌트는 자신에게 가장 적합한 방식으로 데이터를 구성할 수 있습니다. 그러나 더 복잡한 데이터 관리도 필요합니다. 데이터를 읽고 쓸 때 다양한 스키마를 처리할 수 있어야 하는데 이는 어려울 수 있습니다.

과제 및 고려 사항

다양한 테넌트를 위해 Parquet SPC에서 데이터를 격리하는 것이 모두 좋은 일만은 아닙니다. 명심해야 할 몇 가지 과제와 고려 사항이 있습니다.

성능

선택한 격리 방법에 관계없이 성능이 문제가 될 수 있습니다. 예를 들어 파일 수준 격리를 사용하면 여러 테넌트의 데이터에 액세스해야 하는 경우 파일 읽기 오버헤드가 많이 발생할 수 있습니다. 파티션 수준 격리는 파티션이 제대로 설계되지 않은 경우 성능 문제를 일으킬 수도 있습니다. 파티션에 데이터가 너무 많으면 쿼리 속도가 느려질 수 있습니다.

확장성

테넌트 수가 증가함에 따라 데이터 격리 전략이 확장 가능한지 확인해야 합니다. 예를 들어 파일 수준 격리를 사용하는 경우 각 새 테넌트에 대해 새 폴더와 파일을 만드는 것이 금방 관리하기 어려워질 수 있습니다. 비즈니스가 성장함에 따라 데이터의 저장 및 관리를 어떻게 확장할 수 있는지 생각해야 합니다.

데이터 거버넌스

데이터 거버넌스는 데이터 격리와 관련하여 매우 중요합니다. 각 테넌트의 데이터가 적절하게 격리되고 안전하게 보호되도록 명확한 정책과 절차를 마련해야 합니다. 여기에는 액세스 제어, 데이터 암호화 및 감사가 포함됩니다.

parquet fishbone patternGrey Parquet Flooring

Parquet SPC에서 데이터 격리 구현

그렇다면 실제로 Parquet SPC에서 데이터 격리를 어떻게 구현합니까? 글쎄요, 구체적인 사용 사례와 사용 중인 도구에 따라 다릅니다.

Apache Spark와 같은 데이터 처리 프레임워크를 사용하는 경우 파일 관리, 파티셔닝 및 스키마 처리를 위해 내장된 기능을 사용할 수 있습니다. 파일 수준 격리의 경우 Spark의 파일 API를 사용하여 각 테넌트에 대해 별도의 폴더를 만들고 관리할 수 있습니다. 파티션 수준 격리의 경우 partitionBy() 함수를 사용하여 테넌트 ID를 기준으로 데이터를 분할할 수 있습니다. 스키마 수준 격리의 경우 Spark의 StructType을 사용하여 각 테넌트에 대해 서로 다른 스키마를 정의할 수 있습니다.

다음은 Spark에서 테넌트 ID별로 데이터를 분할하는 방법에 대한 간단한 예입니다.

from pyspark.sql import SparkSession Spark = SparkSession.builder.appName("TenantDataPartitioning").getOrCreate() # "tenant_id" 열이 있는 DataFrame이 있다고 가정 data = [("A", "2023-01-01", "Product1", 10), ("B", "2023-01-02", "Product2", 20)] columns = ["tenant_id", "date", "product", "Quantity"] df = Spark.createDataFrame(data, columns) # 테넌트_id로 데이터 분할 df.write.partitionBy("tenant_id").parquet("path/to/parquet/files")

결론

다양한 테넌트에 대해 Parquet SPC에서 데이터를 격리하는 것은 다중 테넌트 환경에서 데이터를 관리하는 데 있어 중요한 측면입니다. 파일 수준, 파티션 수준, 스키마 수준 격리 중 무엇을 선택하든 각 방법에는 고유한 장단점이 있습니다. 결정을 내릴 때 성능, 확장성, 데이터 거버넌스 등의 요소를 고려해야 합니다.

Parquet SPC에 대해 자세히 알아보고 테넌트를 위한 데이터 격리에 도움을 줄 수 있는 방법에 관심이 있다면 언제든지 당사에 문의하세요. 우리는 귀하의 비즈니스 요구에 가장 적합한 솔루션을 찾는 데 도움을 드리고 있습니다.

참고자료

  • 아파치 스파크 문서
  • 쪽모이 세공 파일 형식 문서