Menanyakan tabel Delta Lake Linux Foundation - Amazon Athena

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 Lake adalah format tabel untuk analitik data besar. Anda dapat menggunakan Amazon Athena untuk membaca tabel Delta Lake yang disimpan di Amazon S3 secara langsung tanpa harus membuat file manifes atau menjalankan pernyataan. MSCK 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 DMLsepertiUPDATE,INSERT, atau tidak DELETE 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 PARTITIONSSHOW CREATE TABLE, dan. DESCRIBE Untuk informasi tentang menggunakan CREATE 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. Menjalankan SELECT kueri setelah ALTER 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:

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
  1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

  2. 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')
  3. Buka AWS Glue konsol di https://console.aws.amazon.com/glue/.

  4. Di panel navigasi, pilih Katalog Data, Tabel.

  5. Dalam daftar tabel, pilih tautan untuk tabel Anda.

  6. Pada halaman untuk tabel, pilih Tindakan, Edit tabel.

  7. Di bagian parameter Serde, tambahkan kunci path dengan nilais3://DOC-EXAMPLE-BUCKET/your-folder/.

  8. 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 dan di Blog Big Data. AWS GlueAWS