C3R 암호화 클라이언트는 다음 파일 유형을 인식합니다.
-
CSV 파일
-
Parquet files
C3R 암호화 클라이언트의 --fileFormat
플래그를 사용하여 파일 형식을 명시적으로 지정할 수 있습니다. 명시적으로 지정한 경우 파일 형식은 파일 확장자에 의해 결정되지 않습니다.
CSV 파일
확장명이.csv인 파일은 CSV 형식이고 UTF-8 인코딩 텍스트를 포함하는 것으로 간주됩니다. C3R 암호화 클라이언트는 모든 값을 문자열로 취급합니다.
.csv 파일에서 지원되는 속성
C3R 암호화 클라이언트를 사용하려면 .csv 파일에 다음과 같은 속성이 있어야 합니다.
-
각 열의 이름을 고유하게 지정하는 초기 헤더 행을 포함할 수도 있고 포함하지 않을 수도 있습니다.
-
쉼표로 구분. (현재 사용자 지정 구분 기호는 지원되지 않습니다.)
-
UTF-8 인코딩 텍스트.
.csv 항목에서 스페이스 제거
선행 공백과 후행 스페이스 모두.csv 항목에서 제거됩니다.
.csv 파일의 사용자 지정 NULL 인코딩
.csv 파일은 사용자 지정 NULL 인코딩을 사용할 수 있습니다.
C3R 암호화 클라이언트에서는 --csvInputNULLValue=<csv-input-null>
플래그를 사용하여 입력 데이터의 NULL 항목에 대한 사용자 지정 인코딩을 지정할 수 있습니다. C3R 암호화 클라이언트는 --csvOutputNULLValue=<csv-output-null>
플래그를 사용하여 NULL 항목에 대해 생성된 출력 파일에서 사용자 지정 인코딩을 사용할 수 있습니다.
참고
NULL 항목은 내용이 부족한 것으로 간주됩니다. 특히 SQL 테이블과 같은 풍부한 테이블 형식의 컨텍스트에서는 더욱 그렇습니다. .csv는 역사적 이유로 이 특성화를 명시적으로 지원하지 않지만, 스페이스만 포함된 빈 항목은 NULL로 간주하는 것이 일반적인 관례입니다 따라서 이는 C3R 암호화 클라이언트의 기본 동작이며 필요에 따라 사용자 지정할 수 있습니다.
C3R에서.csv 항목을 해석하는 방법
다음 표는 --csvInputNULLValue=<csv-input-null>
및 --csvOutputNULLValue=<csv-output-null>
플래그에 제공된 값(있는 경우)에 따라 .csv 항목이 어떻게 마샬링되는지(명확성을 위해 cleartext에서 cleartext로 보여주는 예입니다. 따옴표 밖의 선행 및 후행 스페이스는 C3R이 값의 의미를 해석하기 전에 잘립니다.
<csv-input-null> |
<csv-output-null> |
항목 | 출력 항목 |
---|---|---|---|
None | None | , 모든 제품, |
, 모든 제품, |
None | None | , 모든 제품, |
, 모든 제품, |
None | None | ,"모든 제품", |
, 모든 제품, |
None | None | , "모든 제품" , |
, 모든 제품, |
None | None | ,, |
,, |
None | None | , , |
,, |
None | None | ,"", |
,, |
None | None | ," ", |
," ", |
None | None | , " " , |
," ", |
"모든 제품" |
"NULL" |
, 모든 제품, |
,NULL, |
"모든 제품" |
"NULL" |
, 모든 제품, |
,NULL, |
"모든 제품" |
"NULL" |
,"모든 제품", |
,NULL, |
"모든 제품" |
"NULL" |
, "모든 제품" , |
,NULL, |
None | "NULL" |
,, |
,NULL, |
None | "NULL" |
, , |
,NULL, |
None | "NULL" |
,"", |
,NULL, |
None | "NULL" |
," ", |
," ", |
None | "NULL" |
, " " , |
," ", |
"" |
"NULL" |
,, |
,NULL, |
"" |
"NULL" |
, , |
,NULL, |
"" |
"NULL" |
,"", |
,"", |
"" |
"NULL" |
," ", |
," ", |
"" |
"NULL" |
, " " , |
," ", |
"\"\"" |
"NULL" |
,, |
,, |
"\"\"" |
"NULL" |
, , |
,, |
"\"\"" |
"NULL" |
,"", |
,NULL, |
"\"\"" |
"NULL" |
," ", |
," ", |
"\"\"" |
"NULL" |
, " " , |
," ", |
헤더가 없는 CSV 파일
소스.csv 파일의 첫 번째 행에는 각 열의 이름을 고유하게 지정하는 헤더가 없어도 됩니다. 하지만 헤더 행이 없는.csv 파일에는 위치 암호화 스키마가 필요합니다. 헤더 행이 있는.csv 파일과 Parquet 파일 모두에 사용되는 일반적인 매핑 스키마 대신 위치 암호화 스키마가 필요합니다.
위치 암호화 스키마는 이름 대신 위치를 기준으로 출력 열을 지정합니다. 매핑된 암호화 스키마는 원본 열 이름을 대상 열 이름에 매핑합니다. 두 스키마 형식에 대한 자세한 설명과 예를 포함한 자세한 내용은 매핑된 테이블 스키마와 위치 테이블 스키마을 참조하세요.
Parquet files
.parquet 확장자가 있는 파일은 Apache Parquet와 같은 형식으로 간주됩니다.
지원되는 Parquet 데이터 형식
C3R 암호화 클라이언트는 AWS Clean Rooms에서 지원하는 데이터 유형을 나타내는 Parquet 파일에서 복잡하지 않은 데이터(즉, 기본 유형)를 모두 처리할 수 있습니다.
하지만 sealed 열에는 문자열 열만 사용할 수 있습니다.
지원되는 Parquet 데이터 유형은 다음과 같습니다:
-
다음과 같은 논리적 주석이 포함된
Binary
기본 유형:-
--parquetBinaryAsString
이 설정된 경우, 없음(STRING
데이터 유형) -
Decimal(scale, precision)
(DECIMAL
데이터 유형) -
String
(STRING
데이터 유형)
-
-
논리적 주석이 없는
Boolean
기본 데이터 유형(BOOLEAN
데이터 유형) -
논리적 주석이 없는
Double
기본 데이터 유형(DOUBLE
데이터 유형) -
Decimal(scale, precision)
논리적 주석이 있는Fixed_Len_Binary_Array
기본 유형(DECIMAL
데이터 유형) -
논리적 주석이 없는
Float
기본 데이터 유형(FLOAT
데이터 유형) -
다음과 같은 논리적 주석이 포함된
Int32
기본 유형:-
없음(
INT
데이터 유형) -
Date
(DATE
데이터 유형) -
Decimal(scale, precision)
(DECIMAL
데이터 유형) -
Int(16, true)
(SMALLINT
데이터 유형) -
Int(32, true)
(INT
데이터 유형)
-
-
다음과 같은 논리적 주석이 포함된
Int64
기본 데이터 유형:-
없음(
BIGINT
데이터 유형) -
Decimal(scale, precision)
(DECIMAL
데이터 유형) -
Int(64, true)
(BIGINT
데이터 유형) -
Timestamp(isUTCAdjusted, TimeUnit.MILLIS)
(TIMESTAMP
데이터 유형) -
Timestamp(isUTCAdjusted, TimeUnit.MICROS)
(TIMESTAMP
데이터 유형) -
Timestamp(isUTCAdjusted, TimeUnit.NANOS)
(TIMESTAMP
데이터 유형)
-
문자열이 아닌 값 암호화
현재 sealed 열에는 문자열 값만 지원됩니다.
.csv 파일의 경우 C3R 암호화 클라이언트는 모든 값을 UTF-8 인코딩 텍스트로 취급하며 암호화 전에 이러한 값을 다르게 해석하려고 시도하지 않습니다.
핑거프린트 열의 경우 유형은 동등한 클래스로 그룹화됩니다. 등가 클래스는 대표적인 데이터 유형을 통해 동등성을 명확하게 비교할 수 있는 데이터 유형 집합입니다.
등가 클래스를 사용하면 원래 표현과 관계없이 동일한 지문을 동일한 시맨틱 값에 할당할 수 있습니다. 하지만 두 등가 클래스의 값이 같더라도 핑거프린트 열이 같아지지는 않습니다.
예를 들어, INTEGRAL
값 42
는 원래 SMALLINT
, INT
, 또는 BIGINT
였는지 여부에 관계없이 동일한 지문을 할당받게 됩니다. 또한 INTEGRAL
값 0
은 BOOLEAN
값 FALSE
(값 0
으로 표시됨)와 절대 일치하지 않습니다.
핑거프린트 열에서는 다음과 같은 등가 클래스와 해당 AWS Clean Rooms 데이터 유형을 지원합니다.
등가 클래스 | 지원되는 AWS Clean Rooms 데이터 형식 |
---|---|
BOOLEAN |
BOOLEAN |
DATE |
DATE |
INTEGRAL |
BIGINT , INT , SMALLINT |
STRING |
CHAR , STRING , VARCHAR |