Jenis file dan data yang didukung dalam Komputasi Kriptografi untuk Clean Rooms - AWS Clean Rooms

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jenis file dan data yang didukung dalam Komputasi Kriptografi untuk Clean Rooms

Klien enkripsi C3R mengenali jenis file berikut:

  • Berkas CSV

  • Parquetberkas

Anda dapat menggunakan --fileFormat bendera di klien enkripsi C3R untuk menentukan format file secara eksplisit. Ketika ditentukan secara eksplisit, format file tidak ditentukan oleh ekstensi file.

Berkas CSV

File dengan ekstensi.csv diasumsikan berformat CSV dan berisi teks yang dikodekan UTF-8. Klien enkripsi C3R memperlakukan semua nilai sebagai string.

Properti yang didukung dalam file.csv

Klien enkripsi C3R mensyaratkan bahwa file.csv memiliki properti berikut:

  • Mungkin atau mungkin tidak berisi baris header awal yang secara unik menamai setiap kolom.

  • Dibatasi koma. (Saat ini, pembatas khusus tidak didukung.)

  • Teks yang dikodekan UTF-8.

Pemangkasan ruang putih dari entri .csv

Spasi putih depan dan belakang dipangkas dari entri .csv.

NULLPengkodean khusus untuk file.csv

File.csv dapat menggunakan pengkodean khususNULL.

Dengan klien enkripsi C3R, Anda dapat menentukan pengkodean kustom untuk NULL entri dalam data input dengan menggunakan bendera. --csvInputNULLValue=<csv-input-null> Klien enkripsi C3R dapat menggunakan pengkodean khusus dalam file keluaran yang dihasilkan untuk entri NULL dengan menggunakan bendera. --csvOutputNULLValue=<csv-output-null>

catatan

NULLEntri dianggap kurang konten, khususnya dalam konteks format tabel yang lebih kaya seperti tabel SQL. Meskipun .csv tidak secara eksplisit mendukung karakterisasi ini karena alasan historis, itu adalah konvensi umum untuk mempertimbangkan entri kosong yang hanya berisi spasi putih. NULL Oleh karena itu, itulah perilaku default klien enkripsi C3R dan dapat disesuaikan sesuai kebutuhan.

Bagaimana entri .csv ditafsirkan oleh C3R

Tabel berikut memberikan contoh bagaimana entri .csv disusun (cleartextcleartextuntuk kejelasan) berdasarkan nilai (jika ada) yang disediakan untuk dan flag. --csvInputNULLValue=<csv-input-null> --csvOutputNULLValue=<csv-output-null> Memimpin dan membuntuti ruang putih di luar tanda kutip dipangkas sebelum C3R menafsirkan makna nilai apa pun.

<csv-input-null> <csv-output-null> Masukan entri Entri keluaran
Tidak ada Tidak ada ,AnyProduct, ,AnyProduct,
Tidak ada Tidak ada , AnyProduct , ,AnyProduct,
Tidak ada Tidak ada ,"AnyProduct", ,AnyProduct,
Tidak ada Tidak ada , "AnyProduct" , ,AnyProduct,
Tidak ada Tidak ada ,, ,,
Tidak ada Tidak ada , , ,,
Tidak ada Tidak ada ,"", ,,
Tidak ada Tidak ada ," ", ," ",
Tidak ada Tidak ada , " " , ," ",
"AnyProduct" "NULL" ,AnyProduct, ,NULL,
"AnyProduct" "NULL" , AnyProduct , ,NULL,
"AnyProduct" "NULL" ,"AnyProduct", ,NULL,
"AnyProduct" "NULL" , "AnyProduct" , ,NULL,
Tidak ada "NULL" ,, ,NULL,
Tidak ada "NULL" , , ,NULL,
Tidak ada "NULL" ,"", ,NULL,
Tidak ada "NULL" ," ", ," ",
Tidak ada "NULL" , " " , ," ",
"" "NULL" ,, ,NULL,
"" "NULL" , , ,NULL,
"" "NULL" ,"", ,"",
"" "NULL" ," ", ," ",
"" "NULL" , " " , ," ",
"\"\"" "NULL" ,, ,,
"\"\"" "NULL" , , ,,
"\"\"" "NULL" ,"", ,NULL,
"\"\"" "NULL" ," ", ," ",
"\"\"" "NULL" , " " , ," ",

File CSV tanpa header

File sumber.csv tidak perlu memiliki header di baris pertama yang secara unik memberi nama setiap kolom. Namun, file.csv tanpa baris header memerlukan skema enkripsi posisi. Skema enkripsi posisi diperlukan alih-alih skema pemetaan khas yang digunakan untuk file.csv dengan baris header dan file. Parquet

Skema enkripsi posisi menentukan kolom keluaran berdasarkan posisi, bukan dengan nama. Skema enkripsi yang dipetakan memetakan nama kolom sumber untuk menargetkan nama kolom. Untuk informasi lebih lanjut, termasuk diskusi rinci dan contoh dari kedua format skema, lihatSkema tabel yang dipetakan dan posisi.

Parquetberkas

File dengan .parquet ekstensi diasumsikan dalam Apache Parquet format.

Tipe Parquet data yang didukung

Klien enkripsi C3R dapat memproses data non-kompleks (yaitu tipe primitif) dalam Parquet file yang mewakili tipe data yang didukung oleh. AWS Clean Rooms

Namun, hanya kolom string yang dapat digunakan untuk sealed kolom.

Tipe data Parket berikut didukung:

  • Binarytipe primitif dengan anotasi logis berikut:

    • Tidak ada jika --parquetBinaryAsString diatur (tipe STRING data)

    • Decimal(scale, precision)(tipe DECIMAL data)

    • String(tipe STRING data)

  • Booleantipe data primitif tanpa anotasi logis (tipe BOOLEAN data)

  • Doubletipe data primitif tanpa anotasi logis (tipe DOUBLE data)

  • Fixed_Len_Binary_Arraytipe primitif dengan anotasi Decimal(scale, precision) logis (tipe DECIMAL data)

  • Floattipe data primitif tanpa anotasi logis (tipe FLOAT data)

  • Int32tipe primitif dengan anotasi logis berikut:

    • Tidak ada (tipe INT data)

    • Date(tipe DATE data)

    • Decimal(scale, precision)(tipe DECIMAL data)

    • Int(16, true)(tipe SMALLINT data)

    • Int(32, true)(tipe INT data)

  • Int64tipe data primitif dengan anotasi logis berikut:

    • Tidak ada (tipe BIGINT data)

    • Decimal(scale, precision)(tipe DECIMAL data)

    • Int(64, true)(tipe BIGINT data)

    • Timestamp(isUTCAdjusted, TimeUnit.MILLIS)(tipe TIMESTAMP data)

    • Timestamp(isUTCAdjusted, TimeUnit.MICROS)(tipe TIMESTAMP data)

    • Timestamp(isUTCAdjusted, TimeUnit.NANOS)(tipe TIMESTAMP data)

Mengenkripsi nilai non-string

Saat ini, hanya nilai string yang didukung untuk sealed kolom.

Untuk file.csv, klien enkripsi C3R memperlakukan semua nilai sebagai teks yang dikodekan UTF-8 dan tidak berusaha untuk menafsirkannya secara berbeda sebelum enkripsi.

Untuk kolom sidik jari, jenis dikelompokkan ke dalam kelas ekivalensi. Kelas kesetaraan adalah sekumpulan tipe data yang dapat dibandingkan secara jelas untuk kesetaraan melalui tipe data yang representatif.

Kelas kesetaraan memungkinkan sidik jari identik untuk ditetapkan ke nilai semantik yang sama terlepas dari representasi aslinya. Namun, nilai yang sama dalam dua kelas ekivalensi tidak akan menghasilkan kolom sidik jari yang sama.

Misalnya, INTEGRAL nilai 42 akan diberikan sidik jari yang sama terlepas dari apakah itu awalnyaSMALLINT,INT, atauBIGINT. Juga, INTEGRAL nilai tidak 0 akan pernah cocok dengan BOOLEAN nilai FALSE (yang diwakili oleh nilai0).

Kelas kesetaraan berikut dan tipe AWS Clean Rooms data yang sesuai didukung oleh kolom sidik jari:

Kelas kesetaraan Tipe AWS Clean Rooms data yang didukung
BOOLEAN BOOLEAN
DATE DATE
INTEGRAL BIGINT, INT, SMALLINT
STRING CHAR, STRING, VARCHAR