Konektor Amazon Athena Redis - Amazon Athena

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

Konektor Amazon Athena Redis

Konektor Amazon Athena Redis memungkinkan Amazon Athena untuk berkomunikasi dengan contoh Redis Anda sehingga Anda dapat mengkueri data Redis Anda dengan SQL. Anda dapat menggunakan AWS Glue Data Catalog untuk memetakan pasangan nilai kunci Redis Anda ke dalam tabel virtual.

Tidak seperti penyimpanan data relasional tradisional, Redis tidak memiliki konsep tabel atau kolom. Sebaliknya, Redis menawarkan pola akses kunci-nilai di mana kunci pada dasarnya adalah a string dan nilainya adalahstring,, z-set atau. hmap

Anda dapat menggunakan AWS Glue Data Catalog untuk membuat skema dan mengkonfigurasi tabel virtual. Properti tabel khusus memberi tahu konektor Athena Redis cara memetakan kunci dan nilai Redis Anda ke dalam tabel. Untuk informasi selengkapnya, lihat Menyiapkan database dan tabel di AWS Glue nanti dalam dokumen ini.

Jika Anda mengaktifkan Lake Formation di akun Anda, peran IAM untuk konektor Lambda federasi Athena yang Anda gunakan di harus memiliki akses baca di AWS Serverless Application Repository Lake Formation ke. AWS Glue Data Catalog

Konektor Amazon Athena Redis mendukung Amazon MemoryDB untuk Redis dan Amazon untuk Redis. ElastiCache

Prasyarat

Parameter

Gunakan variabel lingkungan Lambda di bagian ini untuk mengkonfigurasi konektor Redis.

  • spill_bucket - Menentukan bucket Amazon S3 untuk data yang melebihi batas fungsi Lambda.

  • spill_prefix — (Opsional) Default ke subfolder dalam nama yang ditentukan. spill_bucket athena-federation-spill Kami menyarankan Anda mengonfigurasi siklus hidup penyimpanan Amazon S3 di lokasi ini untuk menghapus tumpahan yang lebih lama dari jumlah hari atau jam yang telah ditentukan sebelumnya.

  • spill_put_request_headers — (Opsional) Peta header permintaan dan nilai yang disandikan JSON untuk permintaan Amazon S3 yang digunakan untuk menumpahkan (misalnya,). putObject {"x-amz-server-side-encryption" : "AES256"} Untuk kemungkinan header lainnya, lihat PutObjectdi Referensi API Amazon Simple Storage Service.

  • kms_key_id — (Opsional) Secara default, data apa pun yang tumpah ke Amazon S3 dienkripsi menggunakan mode enkripsi yang diautentikasi AES-GCM dan kunci yang dihasilkan secara acak. Agar fungsi Lambda Anda menggunakan kunci enkripsi yang lebih kuat yang dihasilkan oleh KMS sepertia7e63k4b-8loc-40db-a2a1-4d0en2cd8331, Anda dapat menentukan ID kunci KMS.

  • disable_spill_encryption — (Opsional) Ketika diatur ke, menonaktifkan enkripsi tumpahan. True Defaultnya False sehingga data yang tumpah ke S3 dienkripsi menggunakan AES-GCM — baik menggunakan kunci yang dihasilkan secara acak atau KMS untuk menghasilkan kunci. Menonaktifkan enkripsi tumpahan dapat meningkatkan kinerja, terutama jika lokasi tumpahan Anda menggunakan enkripsi sisi server.

  • glue_catalog - (Opsional) Gunakan opsi ini untuk menentukan katalog lintas akun. AWS Glue Secara default, konektor mencoba untuk mendapatkan metadata dari akunnya sendiri AWS Glue .

Menyiapkan database dan tabel di AWS Glue

Untuk mengaktifkan AWS Glue tabel untuk digunakan dengan Redis, Anda dapat mengatur properti tabel berikut pada tabel:redis-endpoint,redis-value-type, dan salah satu redis-keys-zset atauredis-key-prefix.

Selain itu, setiap AWS Glue database yang berisi tabel Redis harus memiliki redis-db-flag properti URI database. Untuk menyetel properti redis-db-flag URI, gunakan AWS Glue konsol untuk mengedit database.

Daftar berikut menjelaskan properti tabel.

  • redis-endpoint — (Wajib) : Kata sandi : port hostname dari server Redis yang berisi data untuk tabel ini (misalnya,athena-federation-demo.cache.amazonaws.com:6379) Atau, Anda dapat menyimpan titik akhir, atau bagian dari titik akhir, AWS Secrets Manager dengan menggunakan $ {Secret_Name} sebagai nilai properti tabel.

  • redis-keys-zset— (Diperlukan jika tidak redis-key-prefix digunakan) Daftar kunci yang dipisahkan koma yang nilainya adalah zset (misalnya,). active-orders,pending-orders Masing-masing nilai dalam zset diperlakukan sebagai kunci yang merupakan bagian dari tabel. Baik redis-keys-zset properti atau redis-key-prefix properti harus ditetapkan.

  • redis-key-prefix— (Diperlukan jika redis-keys-zset tidak digunakan) Daftar awalan kunci yang dipisahkan koma untuk memindai nilai dalam tabel (misalnya,). accounts-*,acct- Baik redis-key-prefix properti atau redis-keys-zset properti harus ditetapkan.

  • redis-value-type— (Wajib) Mendefinisikan bagaimana nilai untuk kunci didefinisikan oleh salah satu redis-key-prefix atau redis-keys-zset dipetakan ke tabel Anda. Sebuah peta literal ke satu kolom. Sebuah zset juga memetakan ke satu kolom, tetapi setiap tombol dapat menyimpan banyak baris. Sebuah hash memungkinkan setiap kunci menjadi baris dengan beberapa kolom (misalnya, hash, literal, atau zset.)

  • redis-ssl-flag— (Opsional) SaatTrue, membuat koneksi Redis yang menggunakan SSL/TLS. Nilai default-nya False.

  • redis-cluster-flag— (Opsional) KapanTrue, aktifkan dukungan untuk instance Redis yang dikelompokkan. Nilai default-nya False.

  • redis-db-number— (Opsional) Hanya berlaku untuk instance mandiri dan tidak berkerumun.) Tetapkan nomor ini (misalnya 1, 2, atau 3) untuk dibaca dari database Redis non-default. Defaultnya adalah database logis Redis 0. Nomor ini tidak merujuk ke database di Athena atau AWS Glue, tetapi ke database logis Redis. Untuk informasi selengkapnya, lihat INDEKS SELECT dalam dokumentasi Redis.

Jenis data

Konektor Redis mendukung tipe data berikut. Aliran Redis tidak didukung.

Semua nilai Redis diambil sebagai tipe string data. Kemudian mereka dikonversi ke salah satu tipe data Apache Arrow berikut berdasarkan bagaimana tabel Anda didefinisikan dalam AWS Glue Data Catalog.

AWS Glue tipe data Tipe data Apache Arrow
int INT
string VARCHAR
bigint BIGINT
double FLOAT8
float FLOAT4
smallint SMALLINT
tinyint TINYINT
boolean BIT
biner VARBINARY

Izin yang Diperlukan

Untuk detail lengkap tentang kebijakan IAM yang diperlukan konektor ini, tinjau Policies bagian file athena-redis.yaml. Daftar berikut merangkum izin yang diperlukan.

  • Akses tulis Amazon S3 - Konektor memerlukan akses tulis ke lokasi di Amazon S3 untuk menumpahkan hasil dari kueri besar.

  • Athena GetQueryExecution — Konektor menggunakan izin ini untuk gagal cepat ketika kueri Athena hulu telah dihentikan.

  • AWS Glue Data Catalog— Konektor Redis memerlukan akses baca saja ke AWS Glue Data Catalog untuk mendapatkan informasi skema.

  • CloudWatch Log — Konektor memerlukan akses ke CloudWatch Log untuk menyimpan log.

  • AWS Secrets Manager akses baca - Jika Anda memilih untuk menyimpan detail titik akhir Redis di Secrets Manager, Anda harus memberikan akses konektor ke rahasia tersebut.

  • Akses VPC — Konektor memerlukan kemampuan untuk memasang dan melepaskan antarmuka ke VPC Anda sehingga dapat terhubung dengannya dan berkomunikasi dengan instans Redis Anda.

Kinerja

Konektor Athena Redis mencoba untuk memparalelkan kueri terhadap instance Redis Anda sesuai dengan jenis tabel yang telah Anda tetapkan (misalnya, kunci zset atau kunci awalan).

Konektor Athena Redis melakukan pushdown predikat untuk mengurangi data yang dipindai oleh kueri. Namun, kueri yang berisi predikat terhadap kunci utama gagal dengan batas waktu. LIMITklausa mengurangi jumlah data yang dipindai, tetapi jika Anda tidak memberikan predikat, Anda harus mengharapkan SELECT kueri dengan LIMIT klausa untuk memindai setidaknya 16 MB data. Konektor Redis tahan terhadap pelambatan karena konkurensi.

Informasi lisensi

Proyek konektor Amazon Athena Redis dilisensikan di bawah Lisensi Apache-2.0.

Sumber daya tambahan

Untuk informasi tambahan tentang konektor ini, kunjungi situs terkait GitHub di.com.