

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

# Konektor Amazon Athena Redis OSS
<a name="connectors-redis"></a>

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

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

Anda dapat menggunakan AWS Glue Data Catalog untuk membuat skema dan mengkonfigurasi tabel virtual. Properti tabel khusus memberi tahu konektor Athena Redis OSS cara memetakan kunci dan nilai Redis OSS Anda ke dalam tabel. Untuk informasi selengkapnya, lihat [Menyiapkan database dan tabel di AWS Glue](#connectors-redis-setting-up-databases-and-tables-in-glue) nanti dalam dokumen ini.

Konektor ini tidak menggunakan Glue Connections untuk memusatkan properti konfigurasi di Glue. Konfigurasi koneksi dilakukan melalui Lambda.

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

Konektor Amazon Athena Redis OSS mendukung Amazon MemoryDB dan Amazon (Redis OSS). ElastiCache 

## Prasyarat
<a name="connectors-redis-prerequisites"></a>
+ Menyebarkan konektor ke Anda Akun AWS menggunakan konsol Athena atau. AWS Serverless Application Repository Untuk informasi selengkapnya, lihat [Buat koneksi sumber data](connect-to-a-data-source.md) atau [Gunakan AWS Serverless Application Repository untuk menyebarkan konektor sumber data](connect-data-source-serverless-app-repo.md).
+ Siapkan VPC dan grup keamanan sebelum Anda menggunakan konektor ini. Untuk informasi selengkapnya, lihat [Buat VPC untuk konektor atau koneksi sumber data AWS Glue](athena-connectors-vpc-creation.md).

## Parameter
<a name="connectors-redis-parameters"></a>

Gunakan parameter di bagian ini untuk mengkonfigurasi konektor Redis.
+ **spill\$1bucket** - Menentukan bucket Amazon S3 untuk data yang melebihi batas fungsi Lambda.
+ **spill\$1prefix** — (Opsional) Default ke subfolder dalam nama yang ditentukan. `spill_bucket` `athena-federation-spill` Kami menyarankan Anda mengonfigurasi [siklus hidup penyimpanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) Amazon S3 di lokasi ini untuk menghapus tumpahan yang lebih lama dari jumlah hari atau jam yang telah ditentukan sebelumnya.
+ **spill\$1put\$1request\$1headers** — (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 [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)di *Referensi API Amazon Simple Storage Service*.
+ **kms\$1key\$1id** — (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 seperti`a7e63k4b-8loc-40db-a2a1-4d0en2cd8331`, Anda dapat menentukan ID kunci KMS.
+ **disable\$1spill\$1encryption** — (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.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)
+ **glue\$1catalog** [- (Opsional) Gunakan opsi ini untuk menentukan katalog lintas akun. AWS Glue](data-sources-glue-cross-account.md) Secara default, konektor mencoba untuk mendapatkan metadata dari akunnya sendiri AWS Glue .

## Menyiapkan database dan tabel di AWS Glue
<a name="connectors-redis-setting-up-databases-and-tables-in-glue"></a>

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

Selain itu, setiap AWS Glue database yang berisi tabel Redis OSS 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) Server Redis OSS 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 \$1 \$1\$1 *Secret\$1Name* sebagai nilai properti tabel. *hostname* `:` *port* `:` *password*

**catatan**  
[Untuk menggunakan fitur Kueri Federasi Athena, VPC yang terhubung ke fungsi Lambda Anda harus memiliki [akses internet atau](https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/) titik akhir VPC untuk terhubung ke Secrets Manager. AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html)
+ **redis-keys-zset**— (Diperlukan jika tidak `redis-key-prefix` digunakan) Daftar kunci yang dipisahkan koma yang nilainya adalah [zset](https://redis.com/ebook/part-2-core-concepts/chapter-3-commands-in-redis/3-5-sorted-sets/) (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) Saat`True`, membuat koneksi Redis yang menggunakan SSL/TLS. Nilai default-nya `False`.
+ **redis-cluster-flag**— (Opsional) Kapan`True`, 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](https://redis.io/commands/select) dalam dokumentasi Redis.

## Jenis Data
<a name="connectors-redis-data-types"></a>

Konektor Redis OSS mendukung tipe data berikut. Aliran Redis OSS tidak didukung.
+ [Tali](https://redis.com/ebook/part-1-getting-started/chapter-1-getting-to-know-redis/1-2-what-redis-data-structures-look-like/1-2-1-strings-in-redis/)
+ [Hash](https://redis.com/ebook/part-1-getting-started/chapter-1-getting-to-know-redis/1-2-what-redis-data-structures-look-like/1-2-4-hashes-in-redis/)
+ Set Diurutkan () [ZSet](https://redis.com/ebook/part-2-core-concepts/chapter-3-commands-in-redis/3-5-sorted-sets/)

Semua nilai Redis OSS diambil sebagai tipe data. `string` 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
<a name="connectors-redis-required-permissions"></a>

Untuk detail lengkap tentang kebijakan IAM yang diperlukan konektor ini, tinjau `Policies` bagian file [athena-redis.yaml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-redis/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.

## Performa
<a name="connectors-redis-performance"></a>

Konektor Athena Redis OSS mencoba untuk memparalelkan kueri terhadap instance Redis OSS Anda sesuai dengan jenis tabel yang telah Anda tentukan (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. `LIMIT`klausa 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.

## Kueri passthrough
<a name="connectors-redis-passthrough-queries"></a>

Konektor Redis mendukung kueri [passthrough](federated-query-passthrough.md). Anda dapat menggunakan fitur ini untuk menjalankan kueri yang menggunakan skrip Lua pada database Redis. 

Untuk membuat kueri passthrough dengan Redis, gunakan sintaks berikut:

```
SELECT * FROM TABLE(
        system.script(
            script => 'return redis.[call|pcall](query_script)',
            keys => '[key_pattern]',
            argv => '[script_arguments]'
))
```

Contoh berikut menjalankan skrip Lua untuk mendapatkan nilai pada kunci`l:a`.

```
SELECT * FROM TABLE(
        system.script(
            script => 'return redis.call("GET", KEYS[1])',
            keys => '[l:a]',
            argv => '[]'
))
```

## Informasi lisensi
<a name="connectors-redis-license-information"></a>

[Proyek konektor Amazon Athena Redis dilisensikan di bawah Lisensi Apache-2.0.](https://www.apache.org/licenses/LICENSE-2.0.html)

## Sumber daya tambahan
<a name="connectors-redis-additional-resources"></a>

Untuk informasi tambahan tentang konektor ini, kunjungi [situs terkait](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-redis) GitHub di.com.