Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menanyakan tabel Delta Lake Linux Foundation
Linux Foundation Delta LakeMSCK REPAIR
Format Delta Lake menyimpan nilai minimum dan maksimum per kolom dari setiap file data. Implementasi Athena memanfaatkan informasi ini untuk memungkinkan melewatkan file pada predikat untuk menghilangkan file yang tidak diinginkan dari pertimbangan.
Pertimbangan dan batasan
Dukungan Delta Lake di Athena memiliki pertimbangan dan batasan berikut:
-
Tabel dengan AWS Glue katalog saja — Dukungan Danau Delta Asli hanya didukung melalui tabel yang AWS Glue terdaftar. Jika Anda memiliki meja Danau Delta yang terdaftar di metastore lain, Anda masih dapat menyimpannya dan memperlakukannya sebagai metastore utama Anda. Karena metadata Delta Lake disimpan dalam sistem file (misalnya, di Amazon S3) daripada di metastore, Athena hanya memerlukan properti lokasi untuk membaca dari tabel Delta Lake Anda. AWS Glue
-
Hanya mesin V3 - Kueri Delta Lake hanya didukung pada mesin Athena versi 3. Anda harus memastikan bahwa workgroup yang Anda buat dikonfigurasi untuk menggunakan mesin Athena versi 3.
-
Versi pembaca Delta Lake — Protokol pembaca Delta Lake hingga versi 3 didukung.
-
Pemetaan kolom dan TimestampNTZ — Pemetaan kolom Delta, yang memungkinkan kolom
tabel Delta dan kolom file Parket yang mendasarinya menggunakan nama yang berbeda, dan stempel waktu tanpa zona waktu (TimestampNTZ) didukung. -
Tidak ada dukungan perjalanan waktu — Tidak ada dukungan untuk pertanyaan yang menggunakan kemampuan perjalanan waktu Delta Lake.
-
Hanya baca - Tulis pernyataan DMLseperti
UPDATE
,INSERT
, atau tidakDELETE
didukung. -
Dukungan Lake Formation — Integrasi Lake Formation tersedia untuk tabel Delta Lake dengan skema mereka yang sinkron. AWS GlueUntuk informasi selengkapnya, lihat Menggunakan AWS Lake Formation Amazon Athena dan Mengatur izin untuk tabel Delta Lake di Panduan Pengembang.AWS Lake Formation
-
Dukungan DDL terbatas - Pernyataan DDL berikut didukung:
CREATE EXTERNAL TABLE
,,SHOW COLUMNS
,SHOW TBLPROPERTIES
SHOW PARTITIONS
SHOW CREATE TABLE
, dan.DESCRIBE
Untuk informasi tentang menggunakanCREATE EXTERNAL TABLE
pernyataan, lihat Memulai bagian. -
Melewati objek S3 Glacier tidak didukung - Jika objek di tabel Delta Lake Linux Foundation berada dalam kelas penyimpanan Amazon S3 Glacier, menyetel properti tabel agar tidak berpengaruh.
read_restored_glacier_objects
false
Misalnya, Anda mengeluarkan perintah berikut:
ALTER TABLE
table_name
SET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')Untuk tabel Iceberg dan Delta Lake, perintah menghasilkan kesalahan Kunci
properti tabel Tidak didukung
: read_restored_glacier_objects. Untuk tabel Hudi,ALTER TABLE
perintah tidak menghasilkan kesalahan, tetapi objek Amazon S3 Glacier masih belum dilewati. MenjalankanSELECT
kueri setelahALTER TABLE
perintah terus mengembalikan semua objek.
Tipe data kolom non-partisi yang didukung
Untuk kolom non-partisi, semua tipe data yang didukung Athena CHAR
kecuali didukung CHAR
(tidak didukung dalam protokol Delta Lake itu sendiri). Tipe data yang didukung meliputi:
boolean tinyint smallint integer bigint double float decimal varchar string binary date timestamp array map struct
Tipe data kolom partisi yang didukung
Untuk kolom partisi, Athena mendukung tabel dengan tipe data berikut:
boolean integer smallint tinyint bigint decimal float double date timestamp varchar
Untuk informasi selengkapnya tentang tipe data di Athena, lihat. Tipe data di Amazon Athena
Memulai
Agar dapat ditanyakan, meja Danau Delta Anda harus ada di. AWS Glue Jika tabel Anda berada di Amazon S3 tetapi tidak di AWS Glue, jalankan CREATE EXTERNAL TABLE
pernyataan menggunakan sintaks berikut. Jika tabel Anda sudah ada di AWS Glue (misalnya, karena Anda menggunakan Apache Spark atau mesin lain dengan AWS Glue), Anda dapat melewati langkah ini.
CREATE EXTERNAL TABLE [
db_name
.]table_name
LOCATION 's3://DOC-EXAMPLE-BUCKET/your-folder
/' TBLPROPERTIES ('table_type' = 'DELTA')
Perhatikan kelalaian definisi kolom, SerDe pustaka, dan properti tabel lainnya. Tidak seperti tabel Hive tradisional, metadata tabel Delta Lake disimpulkan dari log transaksi Delta Lake dan disinkronkan langsung ke. AWS Glue
catatan
Untuk tabel Delta Lake, CREATE TABLE
pernyataan yang mencakup lebih dari table_type
properti LOCATION
dan tidak diperbolehkan.
Membaca tabel Danau Delta
Untuk menanyakan tabel Delta Lake, gunakan sintaks SQL SELECT
standar:
[ WITH with_query [, ...] ]SELECT [ ALL | DISTINCT ] select_expression [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY [ ALL | DISTINCT ] grouping_element [, ...] ] [ HAVING condition ] [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ] [ ORDER BY expression [ ASC | DESC ] [ NULLS FIRST | NULLS LAST] [, ...] ] [ OFFSET count [ ROW | ROWS ] ] [ LIMIT [ count | ALL ] ]
Untuk informasi selengkapnya tentang SELECT
sintaks, lihat SELECT di dokumentasi Athena.
Format Delta Lake menyimpan nilai minimum dan maksimum per kolom dari setiap file data. Athena memanfaatkan informasi ini untuk memungkinkan file melewatkan predikat untuk menghilangkan file yang tidak perlu dari pertimbangan.
Sinkronisasi metadata Delta Lake
Athena menyinkronkan metadata tabel, termasuk skema, kolom partisi, dan properti tabel, jika AWS Glue Anda menggunakan Athena untuk membuat tabel Delta Lake Anda. Seiring berjalannya waktu, metadata ini dapat kehilangan sinkronisasi dengan metadata tabel yang mendasarinya di log transaksi. Untuk memperbarui tabel Anda, Anda dapat memilih salah satu opsi berikut:
-
Gunakan AWS Glue crawler untuk tabel Delta Lake. Untuk informasi selengkapnya, lihat Memperkenalkan dukungan tabel Delta Lake asli dengan AWS Glue crawler
di Blog AWS Big Data dan Menjadwalkan AWS Glue crawler di Panduan Pengembang. AWS Glue -
Jatuhkan dan buat ulang tabel di Athena.
-
Gunakan SDK, CLI, AWS Glue atau konsol untuk memperbarui skema secara manual. AWS Glue
Perhatikan bahwa fitur berikut mengharuskan AWS Glue skema Anda untuk selalu memiliki skema yang sama dengan log transaksi:
-
Lake Formation
-
Tampilan
-
Filter baris dan kolom
Jika alur kerja Anda tidak memerlukan fungsionalitas ini, dan Anda memilih untuk tidak mempertahankan kompatibilitas ini, Anda dapat menggunakan CREATE TABLE
DDL di Athena dan kemudian menambahkan jalur Amazon S3 sebagai parameter di. SerDe AWS Glue
Untuk membuat tabel Delta Lake menggunakan AWS Glue Athena dan konsol
Buka konsol Athena di https://console.aws.amazon.com/athena/
. -
Di editor kueri Athena, gunakan DDL berikut untuk membuat tabel Delta Lake Anda. Perhatikan bahwa saat menggunakan metode ini, nilai untuk
TBLPROPERTIES
harus'spark.sql.sources.provider' = 'delta'
dan tidak'table_type' = 'delta'
.Perhatikan bahwa skema yang sama ini (dengan satu kolom bernama
col
tipearray<string>
) dimasukkan saat Anda menggunakan Apache Spark (Athena untuk Apache Spark) atau sebagian besar mesin lain untuk membuat tabel Anda.CREATE EXTERNAL TABLE [db_name.]table_name(col array<string>) LOCATION 's3://DOC-EXAMPLE-BUCKET/
your-folder
/' TBLPROPERTIES ('spark.sql.sources.provider' = 'delta') Buka AWS Glue konsol di https://console.aws.amazon.com/glue/
. -
Di panel navigasi, pilih Katalog Data, Tabel.
-
Dalam daftar tabel, pilih tautan untuk tabel Anda.
-
Pada halaman untuk tabel, pilih Tindakan, Edit tabel.
-
Di bagian parameter Serde, tambahkan kunci
path
dengan nilais3://DOC-EXAMPLE-BUCKET/
.your-folder
/ -
Pilih Simpan.
Sumber daya tambahan
Untuk diskusi tentang penggunaan tabel Delta Lake dengan AWS Glue dan menanyakannya dengan Athena, lihat Menangani operasi data UPSERT menggunakan Delta Lake sumber terbuka