

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Konektor Python Amazon Redshift
<a name="python-redshift-driver"></a>

Dengan menggunakan konektor Amazon Redshift untuk Python, Anda dapat mengintegrasikan pekerjaan dengan [AWS SDK for Python (Boto3), dan juga panda dan Numerical Python ()](https://github.com/boto/boto3). NumPy Untuk informasi lebih lanjut tentang panda, lihat repositori [panda GitHub ](https://github.com/pandas-dev/pandas). Untuk informasi lebih lanjut tentang NumPy, lihat [NumPy GitHubrepositori](https://github.com/numpy/numpy). 

Konektor Amazon Redshift Python menyediakan solusi open source. Anda dapat menelusuri kode sumber, meminta penyempurnaan, melaporkan masalah, dan memberikan kontribusi. 

Untuk menggunakan konektor Amazon Redshift Python, pastikan Anda memiliki Python versi 3.6 atau yang lebih baru. Untuk informasi selengkapnya, lihat [perjanjian SIM Amazon Redshift Python](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE). 

Konektor Amazon Redshift Python menyediakan yang berikut:
+ AWS Identity and Access Management (IAM) otentikasi. Untuk informasi selengkapnya, lihat [Manajemen identitas dan akses di Amazon Redshift](redshift-iam-authentication-access-control.md).
+ Otentikasi penyedia identitas menggunakan akses API federasi. Akses API federasi didukung untuk penyedia identitas perusahaan seperti berikut ini:
  + Azure AD. Untuk informasi selengkapnya, lihat postingan blog AWS Big Data Akses [Federate Amazon Redshift dengan sistem masuk tunggal Microsoft Azure AD](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/).
  + Layanan Federasi Direktori Aktif. Untuk informasi selengkapnya, lihat posting blog AWS Big Data [akses Federasi ke klaster Amazon Redshift Anda dengan Active Directory Federation Services (AD FS):](https://aws.amazon.com/blogs/big-data/federate-access-to-your-amazon-redshift-cluster-with-active-directory-federation-services-ad-fs-part-1/) Bagian 1. 
  + Okta. Untuk informasi lebih lanjut, lihat posting blog AWS Big Data [akses Federate Amazon Redshift dengan Okta sebagai](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/) penyedia identitas.
  + PingFederate. Untuk informasi lebih lanjut, lihat [PingFederate situs](https://www.pingidentity.com/en/software/pingfederate.html).
  + JumpCloud. Untuk informasi lebih lanjut, lihat [JumpCloud situs](https://jumpcloud.com/).
+ Jenis data Amazon Redshift.

Konektor Amazon Redshift Python mengimplementasikan Python Database API Specification 2.0. Untuk informasi selengkapnya, lihat [PEP 249—Spesifikasi API Database Python v2.0](https://www.python.org/dev/peps/pep-0249/) di situs web Python.

**Topics**
+ [Memasang konektor Amazon Redshift Python](python-driver-install.md)
+ [Opsi konfigurasi untuk konektor Amazon Redshift Python](python-configuration-options.md)
+ [Mengimpor konektor Python](python-start-import.md)
+ [Mengintegrasikan konektor Python dengan NumPy](python-connect-integrate-numpy.md)
+ [Mengintegrasikan konektor Python dengan panda](python-connect-integrate-pandas.md)
+ [Menggunakan plugin penyedia identitas](python-connect-identity-provider-plugins.md)
+ [Contoh penggunaan konektor Amazon Redshift Python](python-connect-examples.md)
+ [Referensi API untuk konektor Amazon Redshift Python](python-api-reference.md)

# Memasang konektor Amazon Redshift Python
<a name="python-driver-install"></a>

Anda dapat menggunakan salah satu metode berikut untuk menginstal konektor Amazon Redshift Python:
+ Indeks Package Python (PyPI)
+ Conda
+ Mengkloning repositori GitHub 

## Menginstal konektor Python dari PyPI
<a name="python-pip-install-pypi"></a>

Untuk menginstal konektor Python dari Python Package Index (PyPI), Anda dapat menggunakan pip. Untuk melakukan ini, jalankan perintah berikut.

```
>>> pip install redshift_connector
```

Anda dapat menginstal konektor dalam lingkungan virtual. Untuk melakukan ini, jalankan perintah berikut.

```
>>> pip install redshift_connector
```

Secara opsional, Anda dapat menginstal panda dan NumPy dengan konektor.

```
>>> pip install 'redshift_connector[full]'
```

Untuk informasi lebih lanjut tentang pip, lihat situs [pip](https://pip.pypa.io/en/stable/).

## Menginstal konektor Python dari Conda
<a name="python-pip-install-from-conda"></a>

Anda dapat menginstal konektor Python dari Anaconda.org.

```
>>>conda install -c conda-forge redshift_connector
```

## Menginstal konektor Python dengan mengkloning repositori dari GitHub AWS
<a name="python-pip-install-from-source"></a>

Untuk menginstal konektor Python dari sumber, kloning repositori dari. GitHub AWS Setelah Anda menginstal Python dan virtualenv, atur lingkungan Anda dan instal dependensi yang diperlukan dengan menjalankan perintah berikut.

```
$ git clone https://github.com/aws/amazon-redshift-python-driver.git
$ cd amazon-redshift-python-driver
$ virtualenv venv
$ . venv/bin/activate
$ python -m pip install -r requirements.txt
$ python -m pip install -e .
$ python -m pip install redshift_connector
```

# Opsi konfigurasi untuk konektor Amazon Redshift Python
<a name="python-configuration-options"></a>

Berikut ini, Anda dapat menemukan deskripsi untuk opsi yang dapat Anda tentukan untuk konektor Amazon Redshift Python. Opsi di bawah ini berlaku untuk versi konektor terbaru yang tersedia kecuali ditentukan lain.

## access\$1key\$1id
<a name="python-access-key-id-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Kunci akses untuk peran IAM atau pengguna yang dikonfigurasi untuk otentikasi database IAM. 

Parameter ini bersifat opsional.

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **Nilai default** - Salah
+ **Tipe data** — Boolean

True  
Menentukan bahwa konektor menggunakan `DbUser` nilai dari pernyataan Security Assertion Markup Language (SAMP).

False  
Menentukan bahwa nilai dalam parameter `DbUser` koneksi digunakan.

Parameter ini bersifat opsional.

## app\$1name
<a name="python-app-name-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama aplikasi penyedia identitas (IDP) yang digunakan untuk otentikasi. 

Parameter ini bersifat opsional.

## application\$1name
<a name="python-application_name-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama aplikasi klien untuk diteruskan ke Amazon Redshift untuk tujuan audit. [Nama aplikasi yang Anda berikan muncul di kolom 'application\$1name' dari tabel SYS\$1CONNECTION\$1LOG.](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html) Ini membantu melacak dan memecahkan masalah sumber koneksi saat men-debug masalah.

Parameter ini bersifat opsional.

## auth\$1profil
<a name="python-auth-profile-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama profil otentikasi Amazon Redshift yang memiliki properti koneksi sebagai JSON. Untuk informasi selengkapnya tentang penamaan parameter koneksi, lihat `RedshiftProperty` kelas. `RedshiftProperty`Kelas menyimpan parameter koneksi yang disediakan oleh pengguna akhir dan, jika berlaku, dihasilkan selama proses otentikasi IAM (misalnya, kredensil IAM sementara). Untuk informasi lebih lanjut, lihat [RedshiftProperty kelas](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9). 

Parameter ini bersifat opsional.

## auto\$1create
<a name="python-auto-create-option"></a>
+ **Nilai default** - Salah
+ **Tipe data** — Boolean

Nilai yang menunjukkan apakah akan membuat pengguna jika pengguna tidak ada. 

Parameter ini bersifat opsional.

## client\$1id
<a name="python-client-id-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

ID klien dari Azure iDP. 

Parameter ini bersifat opsional.

## client\$1secret
<a name="python-client-secret-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Rahasia klien dari Azure iDP. 

Parameter ini bersifat opsional.

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Pengidentifikasi cluster dari cluster Amazon Redshift. 

Parameter ini bersifat opsional.

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

IDP yang digunakan untuk otentikasi dengan Amazon Redshift. Berikut ini adalah nilai yang valid: 
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin`- Plugin otorisasi menggunakan AWS IAM Identity Center.
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin`- Plugin otorisasi yang menerima token AWS IAM Identity Center atau OpenID Connect (OIDC) JSON berbasis token identitas (JWT) dari penyedia identitas web mana pun yang terhubung ke Pusat Identitas IAM. AWS 
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

Parameter ini bersifat opsional.

## basis data
<a name="python-database-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama database yang ingin Anda sambungkan. 

Parameter ini diperlukan.

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **Nilai default** - Benar
+ **Tipe data** — Boolean

Nilai yang menunjukkan apakah aplikasi mendukung katalog datashare multidatabase. Nilai default True menunjukkan bahwa aplikasi tidak mendukung katalog datashare multidatabase untuk kompatibilitas mundur. 

Parameter ini bersifat opsional.

## db\$1group
<a name="python-db-groups-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Daftar dipisahkan koma dari nama grup database yang ada yang ditunjukkan oleh pengguna dengan DbUser bergabung untuk sesi saat ini. 

Parameter ini bersifat opsional.

## db\$1pengguna
<a name="python-db-user-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

ID pengguna untuk digunakan dengan Amazon Redshift. 

Parameter ini bersifat opsional.

## endpoint\$1url
<a name="python-endpoint-url-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

URL titik akhir Amazon Redshift. Opsi ini hanya untuk penggunaan AWS internal. 

Parameter ini bersifat opsional.

## group\$1federasi
<a name="python-group-federation-option"></a>
+ **Nilai default** - Salah
+ **Tipe data** — Boolean

Opsi ini menentukan apakah akan menggunakan grup IDP Amazon Redshift.

Parameter ini bersifat opsional.

**true**  
Gunakan grup Amazon Redshift Identity Provider (IDP).

**false**  
Gunakan STS API dan GetClusterCredentials untuk federasi pengguna dan tentukan **db\$1groups untuk koneksi**.

## host
<a name="python-host-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama host dari cluster Amazon Redshift. 

Parameter ini bersifat opsional.

## iam
<a name="python-iam-option"></a>
+ **Nilai default** - Salah
+ **Tipe data** — Boolean

Autentikasi IAM diaktifkan. 

Parameter ini diperlukan.

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **Nilai default** - Salah
+ **Tipe data** — Boolean

Opsi ini menentukan apakah kredensyal IAM di-cache. Secara default, kredensyal IAM di-cache. Ini meningkatkan kinerja saat permintaan ke gateway API dibatasi. 

Parameter ini bersifat opsional.

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **Nilai Default** - Konektor Amazon Redshift Python
+ **Tipe Data** - String

Nama tampilan yang akan digunakan untuk klien yang menggunakan BrowserIdcAuthPlugin.

Parameter ini bersifat opsional.

## idc\$1region
<a name="python-idc_region"></a>
+ **Nilai Default** - Tidak Ada
+ **Tipe Data** - String

 AWS Wilayah di mana instans AWS IAM Identity Center berada.

Parameter ini diperlukan hanya ketika mengautentikasi menggunakan `BrowserIdcAuthPlugin` dalam opsi konfigurasi credentials\$1provider.

## idp\$1partisi
<a name="python-idp_partition-option"></a>
+ **Nilai Default** - Tidak Ada
+ **Tipe Data** - String

Menentukan partisi cloud tempat penyedia identitas Anda (iDP) dikonfigurasi. Ini menentukan titik akhir otentikasi IDP mana yang terhubung ke driver.

Jika parameter ini dibiarkan kosong, driver default ke partisi komersial. Kemungkinan nilainya adalah:
+  `us-gov`: Gunakan nilai ini jika IDP Anda dikonfigurasi di Azure Government. Misalnya, Azure AD Government menggunakan `login.microsoftonline.us` endpoint.
+  `cn`: Gunakan nilai ini jika IDP Anda dikonfigurasi di partisi cloud Tiongkok. Misalnya, Azure AD Tiongkok menggunakan titik akhir. `login.chinacloudapi.cn` 

Parameter ini bersifat opsional.

## IDPport
<a name="python-idp-port-option"></a>
+ **Nilai default** - 7890
+ **Tipe data** - Integer

Port mendengarkan tempat iDP mengirimkan pernyataan SAMP. 

Parameter ini diperlukan.

## idp\$1response\$1timeout
<a name="python-idp-response-timeout-option"></a>
+ **Nilai default** - 120
+ **Tipe data** - Integer

Batas waktu untuk mengambil pernyataan SAMP dari iDP. 

Parameter ini diperlukan.

## idp\$1penyewa
<a name="python-idp-tenant-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Penyewa iDP. 

Parameter ini bersifat opsional.

## issuer\$1url
<a name="python-issuer_url"></a>
+ **Nilai Default** - Tidak Ada
+ **Tipe Data** - String

 Menunjuk ke titik akhir instance server AWS IAM Identity Center. 

Parameter ini diperlukan hanya ketika mengautentikasi menggunakan `BrowserIdcAuthPlugin` dalam opsi konfigurasi credentials\$1provider.

## listen\$1port
<a name="python-listen-port-option"></a>
+ **Nilai default** - 7890
+ **Tipe data** - Integer

Port yang digunakan driver untuk menerima respons SAFL dari penyedia identitas atau kode otorisasi saat menggunakan layanan SAFL, Azure AD, atau AWS IAM Identity Center melalui plugin browser.

Parameter ini bersifat opsional.

## login\$1url
<a name="python-login-url-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Url masuk tunggal untuk iDP. 

Parameter ini bersifat opsional.

## max\$1prepared\$1statement
<a name="python-max-prepared-statements-option"></a>
+ **Nilai default** - 1000
+ **Tipe data** - Integer

Jumlah maksimum pernyataan disiapkan yang akan di-cache per koneksi. Menyetel parameter ini ke 0 menonaktifkan mekanisme caching. Memasukkan angka negatif untuk parameter ini menetapkannya ke nilai default. 

Parameter ini bersifat opsional.

## numeric\$1to\$1float
<a name="python-numeric-to-float-option"></a>
+ **Nilai default** - Salah
+ **Tipe data** — Boolean

Opsi ini menentukan apakah konektor mengkonversi nilai tipe data numerik dari Decimal.Decimal untuk float. Secara default, konektor menerima nilai tipe data numerik sebagai desimal. Desimal dan tidak mengonversinya. 

Kami tidak menyarankan mengaktifkan numeric\$1to\$1float untuk kasus penggunaan yang memerlukan presisi, karena hasilnya dapat dibulatkan. 

Untuk informasi lebih lanjut tentang desimal. Desimal dan pengorbanan antara itu dan float, lihat desimal [— Titik tetap desimal](https://docs.python.org/3/library/decimal.html) dan aritmatika floating point di situs web Python. 

Parameter ini bersifat opsional.

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

ID SP Mitra yang digunakan untuk otentikasi dengan Ping. 

Parameter ini bersifat opsional.

## password
<a name="python-password-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Kata sandi yang digunakan untuk otentikasi. 

Parameter ini bersifat opsional.

## port
<a name="python-port-option"></a>
+ **Nilai default** - 5439
+ **Tipe data** - Integer

Nomor port cluster Amazon Redshift. 

Parameter ini diperlukan.

## preferred\$1role
<a name="python-preferred-role-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Peran IAM lebih disukai untuk koneksi saat ini. 

Parameter ini bersifat opsional.

## principal\$1arn
<a name="python-principal-arn-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama Sumber Daya Amazon (ARN) dari pengguna atau peran IAM tempat Anda membuat kebijakan. Anda disarankan untuk melampirkan kebijakan ke peran dan kemudian menetapkan peran tersebut ke pengguna Anda, untuk akses. 

Parameter ini bersifat opsional.

## profile
<a name="python-profile-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama profil dalam file kredensyal yang berisi AWS AWS kredensyal. 

Parameter ini bersifat opsional.

## provider\$1name
<a name="python-provider_name-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama Penyedia Otentikasi Asli Redshift. 

Parameter ini bersifat opsional.

## region
<a name="python-region-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Di Wilayah AWS mana cluster berada. 

Parameter ini bersifat opsional.

## role\$1arn
<a name="python-role-arn-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama Sumber Daya Amazon (ARN) dari peran yang diasumsikan oleh penelepon. Parameter ini digunakan oleh penyedia yang ditunjukkan oleh`JwtCredentialsProvider`. 

Untuk `JwtCredentialsProvider` penyedia, parameter ini wajib. Jika tidak, parameter ini opsional.

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **Nilai default** - jwt\$1redshift\$1session
+ **Tipe data** - String

Sebuah pengenal untuk sesi peran yang diambil. Biasanya, Anda meneruskan nama atau pengenal yang terkait dengan pengguna yang menggunakan aplikasi Anda. Kredensyal keamanan sementara yang digunakan aplikasi Anda terkait dengan pengguna tersebut. Parameter ini digunakan oleh penyedia yang ditunjukkan oleh`JwtCredentialsProvider`. 

Parameter ini bersifat opsional.

## cakupan
<a name="python-scope-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Daftar cakupan yang dipisahkan ruang yang dapat disetujui pengguna. Anda menentukan parameter ini sehingga aplikasi Anda bisa mendapatkan persetujuan untuk APIs yang ingin Anda panggil. Anda dapat menentukan parameter ini ketika Anda menentukan BrowserAzure OAuth2 CredentialsProvider untuk opsi credentials\$1provider.

Parameter ini diperlukan untuk BrowserAzure OAuth2 CredentialsProvider plug-in.

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Kunci akses rahasia untuk peran IAM atau pengguna yang dikonfigurasi untuk otentikasi database IAM. 

Parameter ini bersifat opsional.

## session\$1token
<a name="python-session-token-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Kunci akses untuk peran IAM atau pengguna yang dikonfigurasi untuk otentikasi database IAM. Parameter ini diperlukan jika AWS kredensyal sementara sedang digunakan. 

Parameter ini bersifat opsional.

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

ID akun Tanpa Server Amazon Redshift.

Parameter ini bersifat opsional.

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama workgroup Amazon Redshift Tanpa Server.

Parameter ini bersifat opsional.

## ssl
<a name="python-ssl-option"></a>
+ **Nilai default** - Benar
+ **Tipe data** — Boolean

Secure Sockets Layer (SSL) diaktifkan. 

Parameter ini diperlukan.

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **Nilai default** - Salah
+ **Tipe data** — Boolean

Nilai yang menentukan apakah akan menonaktifkan verifikasi sertifikat SSL server idP host. Menyetel parameter ini ke True akan menonaktifkan verifikasi sertifikat SSL server host iDP. Kami menyarankan Anda menyimpan nilai default False di lingkungan produksi.

Parameter ini bersifat opsional.

## sslmode
<a name="python-sslmode-option"></a>
+ **Nilai default** - verify-ca
+ **Tipe data** - String

Keamanan koneksi ke Amazon Redshift. Anda dapat menentukan salah satu dari berikut ini: 
+ verify-ca
+ verify-full

Parameter ini diperlukan.

## tcp\$1keepalive
<a name="python-tcp_keepalive-option"></a>
+ **Nilai default** - Benar
+ **Tipe data** — Boolean

Apakah akan menggunakan TCP keepalives untuk menjaga koneksi dari waktu habis. Anda dapat menentukan salah satu nilai berikut:
+ Benar: Driver akan menggunakan TCP keepalives untuk menjaga koneksi dari waktu habis.
+ Salah: Driver tidak akan menggunakan TCP keepalives.

Parameter ini bersifat opsional.

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - Integer

Jumlah probe yang tidak diakui untuk dikirim sebelum mempertimbangkan koneksi tidak aktif. Misalnya, menetapkan nilai ke 3 berarti bahwa driver akan mengirim 3 paket keepalive yang belum dijawab sebelum menentukan bahwa koneksi tidak lagi aktif.

Jika parameter ini tidak ditentukan, Amazon Redshift menggunakan nilai default sistem.

Parameter ini bersifat opsional.

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - Integer

Interval, dalam hitungan detik, antara probe keepalive berikutnya jika pengemudi tidak menerima pengakuan untuk probe sebelumnya. Jika Anda menentukan parameter ini, itu harus bilangan bulat positif.

Jika parameter ini tidak ditentukan, Amazon Redshift menggunakan nilai default sistem.

Parameter ini bersifat opsional.

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - Integer

Durasi tidak aktif, dalam hitungan detik, setelah itu pengemudi mengirimkan probe keepalive pertama. Misalnya, menetapkan nilai ke 120 berarti bahwa driver akan menunggu selama 2 menit tidak aktif sebelum mengirim paket keepalive pertama. Jika Anda menentukan parameter ini, itu harus bilangan bulat positif. 

Jika parameter ini tidak ditentukan, Amazon Redshift menggunakan nilai default sistem.

Parameter ini bersifat opsional.

## batas waktu
<a name="python-timeout-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - Integer

Jumlah detik sebelum koneksi ke server habis. 

Parameter ini bersifat opsional.

## token
<a name="python-token-option"></a>
+ **Nilai Default** - Tidak Ada
+ **Tipe Data** - String

Pusat AWS Identitas IAM menyediakan token akses atau OpenID Connect (OIDC) JSON Web Token (JWT) yang disediakan oleh penyedia identitas web yang terhubung dengan IAM Identity Center. AWS Aplikasi Anda harus menghasilkan token ini dengan mengautentikasi pengguna aplikasi Anda dengan AWS IAM Identity Center atau penyedia identitas yang ditautkan dengan AWS IAM Identity Center. 

Parameter ini bekerja dengan`IdpTokenAuthPlugin`.

## token\$1type
<a name="python-token_type-option"></a>
+ **Nilai Default** - Tidak Ada
+ **Tipe Data** - String

Jenis token yang digunakan di`IdpTokenAuthPlugin`.

Anda dapat menentukan salah satu nilai berikut:

**ACCESS\$1TOKEN**  
Masukkan ini jika Anda menggunakan token akses yang disediakan Pusat Identitas AWS IAM.

**EXT\$1JWT**  
Masukkan ini jika Anda menggunakan OpenID Connect (OIDC) JSON Web Token (JWT) yang disediakan oleh penyedia identitas berbasis web yang terintegrasi dengan IAM Identity Center. AWS 

Parameter ini bekerja dengan`IdpTokenAuthPlugin`.

## user
<a name="python-user-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Nama pengguna yang akan digunakan untuk otentikasi. 

Parameter ini bersifat opsional.

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **Nilai default** - Tidak ada
+ **Tipe data** - String

Token akses OAuth 2.0 atau token OpenID Connect ID yang disediakan oleh penyedia identitas. Pastikan aplikasi Anda mendapatkan token ini dengan mengautentikasi pengguna yang menggunakan aplikasi Anda dengan penyedia identitas web. Penyedia yang ditunjukkan dengan `JwtCredentialsProvider` menggunakan parameter ini. 

Untuk `JwtCredentialsProvider` penyedia, parameter ini wajib. Jika tidak, parameter ini opsional.

# Mengimpor konektor Python
<a name="python-start-import"></a>

Untuk mengimpor konektor Python, jalankan perintah berikut.

```
>>> import redshift_connector
```

Untuk menyambung ke klaster Amazon Redshift menggunakan AWS kredensyal, jalankan perintah berikut.

```
conn = redshift_connector.connect(
    host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
    port=5439,
    database='dev',
    user='awsuser',
    password='my_password'
 )
```

# Mengintegrasikan konektor Python dengan NumPy
<a name="python-connect-integrate-numpy"></a>

Berikut ini adalah contoh mengintegrasikan konektor Python dengan. NumPy

```
>>>  import numpy
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set            
cursor.execute("select * from book")

result: numpy.ndarray = cursor.fetch_numpy_array()
print(result)
```

Berikut ini adalah hasilnya.

```
[['One Hundred Years of Solitude' 'Gabriel García Márquez']
['A Brief History of Time' 'Stephen Hawking']]
```

# Mengintegrasikan konektor Python dengan panda
<a name="python-connect-integrate-pandas"></a>

Berikut ini adalah contoh mengintegrasikan konektor Python dengan panda.

```
>>> import pandas

#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set
cursor.execute("select * from book")
result: pandas.DataFrame = cursor.fetch_dataframe()
print(result)
```

# Menggunakan plugin penyedia identitas
<a name="python-connect-identity-provider-plugins"></a>

Untuk informasi umum tentang cara menggunakan plugin penyedia identitas, lihat[Opsi untuk memberikan kredensi IAM](options-for-providing-iam-credentials.md). Untuk informasi selengkapnya tentang mengelola identitas IAM, termasuk praktik terbaik untuk peran IAM, lihat. [Manajemen identitas dan akses di Amazon Redshift](redshift-iam-authentication-access-control.md)

## Otentikasi menggunakan plugin penyedia identitas ADFS
<a name="python-connect-identity-provider-active-dir"></a>

Berikut ini adalah contoh penggunaan plugin penyedia identitas Active Directory Federation Service (ADFS) untuk mengautentikasi pengguna yang terhubung ke database Amazon Redshift.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AdfsCredentialsProvider',
    user='brooke@myadfshostname.com',
    password='Hunter2',
    idp_host='myadfshostname.com'
)
```

## Otentikasi menggunakan plugin penyedia identitas Azure
<a name="python-connect-identity-provider-azure"></a>

Berikut ini adalah contoh otentikasi menggunakan plugin penyedia identitas Azure. Anda dapat membuat nilai untuk `client_id` dan `client_secret` untuk aplikasi Azure Enterprise seperti yang ditunjukkan berikut. 

```
>>>  con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AzureCredentialsProvider',
    user='brooke@myazure.org',
    password='Hunter2',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
    client_secret='my_client_secret',
    preferred_role='arn:aws:iam:123:role/DataScientist'
)
```

## Otentikasi menggunakan plugin penyedia identitas Pusat AWS Identitas IAM
<a name="python-connect-identity-provider-aws-idc"></a>

 Berikut ini adalah contoh otentikasi menggunakan plugin penyedia identitas AWS IAM Identity Center. 

```
with redshift_connector.connect(
credentials_provider='BrowserIdcAuthPlugin',
host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
database='dev',
idc_region='us-east-1',
issuer_url='https://identitycenter.amazonaws.com/ssoins-790723ebe09c86f9',
idp_response_timeout=60,
listen_port=8100,
idc_client_display_name='Test Display Name',
# port value of 5439 is specified by default
)
```

## Otentikasi menggunakan plugin penyedia identitas Azure Browser
<a name="python-connect-identity-provider-azure-browser"></a>

Berikut ini adalah contoh penggunaan plugin penyedia identitas Azure Browser untuk mengautentikasi pengguna yang terhubung ke database Amazon Redshift.

Otentikasi multi-faktor terjadi di browser, di mana kredensi masuk disediakan oleh pengguna.

```
>>>con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserAzureCredentialsProvider',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
)
```

## Otentikasi menggunakan plugin penyedia identitas Okta
<a name="python-connect-identity-provider-okta"></a>

Berikut ini adalah contoh otentikasi menggunakan plugin penyedia identitas Okta. Anda dapat memperoleh nilai untuk`idp_host`, `app_id` dan `app_name` melalui aplikasi Okta.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='OktaCredentialsProvider',
    user='brooke@myazure.org',
    password='hunter2',
    idp_host='my_idp_host',
    app_id='my_first_appetizer',
    app_name='dinner_party'
)
```

## Otentikasi menggunakan JumpCloud dengan plugin penyedia identitas browser SAMP generik
<a name="python-connect-identity-provider-jumpcloud"></a>

Berikut ini adalah contoh penggunaan JumpCloud dengan plugin penyedia identitas browser SAMP generik untuk otentikasi.

Parameter kata sandi diperlukan. Namun, Anda tidak perlu memasukkan parameter ini karena otentikasi multi-faktor terjadi di browser.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserSamlCredentialsProvider',
    user='brooke@myjumpcloud.org',
    password='',
    login_url='https://sso.jumpcloud.com/saml2/plustwo_melody'
)
```

# Contoh penggunaan konektor Amazon Redshift Python
<a name="python-connect-examples"></a>

Berikut ini adalah contoh cara menggunakan konektor Amazon Redshift Python. Untuk menjalankannya, Anda harus menginstal konektor Python terlebih dahulu. Untuk informasi selengkapnya tentang menginstal konektor Amazon Redshift Python, lihat. [Memasang konektor Amazon Redshift Python](python-driver-install.md) Untuk informasi lebih lanjut tentang opsi konfigurasi yang dapat Anda gunakan dengan konektor Python, lihat. [Opsi konfigurasi untuk konektor Amazon Redshift Python](python-configuration-options.md)

**Topics**
+ [Menyambung ke dan menanyakan klaster Amazon Redshift menggunakan kredensyal AWS](#python-connect-cluster)
+ [Mengaktifkan komit otomatis](#python-connect-enable-autocommit)
+ [Mengkonfigurasi paramstyle kursor](#python-connect-config-paramstyle)
+ [Menggunakan COPY untuk menyalin data dari bucket Amazon S3 dan UNLOAD untuk menulis data ke dalamnya](#python-connect-copy-unload-s3)

## Menyambung ke dan menanyakan klaster Amazon Redshift menggunakan kredensyal AWS
<a name="python-connect-cluster"></a>

Contoh berikut memandu Anda untuk menghubungkan ke klaster Amazon Redshift menggunakan AWS kredensil Anda, lalu menanyakan tabel dan mengambil hasil kueri.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     database='dev',
     port=5439,
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query a table using the Cursor
>>> cursor.execute("select * from book")
                
#Retrieve the query result set
>>> result: tuple = cursor.fetchall()
>>> print(result)
 >> (['One Hundred Years of Solitude', 'Gabriel García Márquez'], ['A Brief History of Time', 'Stephen Hawking'])
```

## Mengaktifkan komit otomatis
<a name="python-connect-enable-autocommit"></a>

Properti autocommit dinonaktifkan secara default, mengikuti Spesifikasi API Database Python. Anda dapat menggunakan perintah berikut untuk mengaktifkan properti autocommit koneksi setelah melakukan perintah rollback untuk memastikan bahwa transaksi tidak sedang berlangsung.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(...)

# Run a rollback command
>>>  conn.rollback()

# Turn on autocommit
>>>  conn.autocommit = True
>>>  conn.run("VACUUM")

# Turn off autocommit
>>>  conn.autocommit = False
```

## Mengkonfigurasi paramstyle kursor
<a name="python-connect-config-paramstyle"></a>

Paramstyle untuk kursor dapat dimodifikasi melalui cursor.paramstyle. Paramstyle default yang digunakan adalah`format`. Nilai yang valid untuk paramstyle adalah`qmark`,`numeric`,, `named``format`, dan`pyformat`.

Berikut ini adalah contoh menggunakan berbagai paramstyles untuk meneruskan parameter ke pernyataan SQL sampel.

```
# qmark
redshift_connector.paramstyle = 'qmark'
sql = 'insert into foo(bar, jar) VALUES(?, ?)'
cursor.execute(sql, (1, "hello world"))

# numeric
redshift_connector.paramstyle = 'numeric'
sql = 'insert into foo(bar, jar) VALUES(:1, :2)'
cursor.execute(sql, (1, "hello world"))

# named
redshift_connector.paramstyle = 'named'
sql = 'insert into foo(bar, jar) VALUES(:p1, :p2)'
cursor.execute(sql, {"p1":1, "p2":"hello world"})

# format
redshift_connector.paramstyle = 'format'
sql = 'insert into foo(bar, jar) VALUES(%s, %s)'
cursor.execute(sql, (1, "hello world"))

# pyformat
redshift_connector.paramstyle = 'pyformat'
sql = 'insert into foo(bar, jar) VALUES(%(bar)s, %(jar)s)'
cursor.execute(sql, {"bar": 1, "jar": "hello world"})
```

## Menggunakan COPY untuk menyalin data dari bucket Amazon S3 dan UNLOAD untuk menulis data ke dalamnya
<a name="python-connect-copy-unload-s3"></a>

Contoh berikut menunjukkan cara menyalin data dari bucket Amazon S3 ke dalam tabel dan kemudian membongkar dari tabel itu kembali ke bucket.

File teks bernama `category_csv.txt` berisi data berikut diunggah ke bucket Amazon S3:.

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

Berikut ini adalah contoh kode Python, yang pertama kali terhubung ke database Amazon Redshift. Kemudian membuat tabel yang disebut `category` dan menyalin data CSV dari bucket S3 ke dalam tabel.

```
#Connect to the cluster and create a Cursor
>>> import redshift_connector
>>> with redshift_connector.connect(...) as conn:
>>> with conn.cursor() as cursor:

#Create an empty table
>>>     cursor.execute("create table category (catid int, cargroup varchar, catname varchar, catdesc varchar)")

#Use COPY to copy the contents of the S3 bucket into the empty table 
>>>     cursor.execute("copy category from 's3://testing/category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the table
>>>     cursor.execute("select * from category")
>>>     print(cursor.fetchall())

#Use UNLOAD to copy the contents of the table into the S3 bucket
>>>     cursor.execute("unload ('select * from category') to 's3://testing/unloaded_category_csv.txt'  iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the bucket
>>>     print(cursor.fetchall())
 >> ([12, 'Shows', 'Musicals', 'Musical theatre'], [13, 'Shows', 'Plays', 'All "non-musical" theatre'], [14, 'Shows', 'Opera', 'All opera, light, and "rock" opera'], [15, 'Concerts', 'Classical', 'All symphony, concerto, and choir concerts'])
```

Jika Anda belum `autocommit` menyetel ke true, komit dengan `conn.commit()` setelah menjalankan `execute()` pernyataan.

Data diturunkan ke file `unloaded_category_csv.text0000_part00` di bucket S3, dengan konten berikut:

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

# Referensi API untuk konektor Amazon Redshift Python
<a name="python-api-reference"></a>

Berikut ini, Anda dapat menemukan deskripsi operasi API konektor Amazon Redshift Python.

## redshift\$1connector
<a name="python-api-redshift_connector"></a>

Berikut ini, Anda dapat menemukan deskripsi operasi `redshift_connector` API.

`connect(user, database, password[, port, …])`  
Membuat koneksi ke cluster Amazon Redshift. Fungsi ini memvalidasi input pengguna, secara opsional mengautentikasi menggunakan plugin penyedia identitas, dan kemudian membangun objek koneksi.

`apilevel`  
Level DBAPI didukung, saat ini “2.0".

`paramstyle``str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str`  
Gaya parameter API database untuk digunakan secara global.

## Koneksi
<a name="python-api-connection"></a>

Berikut ini, Anda dapat menemukan deskripsi operasi API koneksi untuk konektor Amazon Redshift Python.

`__init__(user, password, database[, host, …])`  
Menginisialisasi objek koneksi mentah.

`cursor`  
Membuat objek kursor terikat pada koneksi ini.

`commit`  
Melakukan transaksi database saat ini.

`rollback`  
Menggulung kembali transaksi database saat ini.

`close`  
Menutup koneksi database.

`execute(cursor, operation, vals)`  
Menjalankan perintah SQL yang ditentukan. Anda dapat memberikan parameter sebagai urutan atau sebagai pemetaan, tergantung pada nilai. `redshift_connector.paramstyle`

`run(sql[, stream])`  
Menjalankan perintah SQL yang ditentukan. Secara opsional, Anda dapat menyediakan aliran untuk digunakan dengan perintah COPY.

`xid(format_id, global_transaction_id, …)`  
Buat ID transaksi. Hanya `global_transaction_id` parameter yang digunakan di postgres. format\$1id dan branch\$1qualifier tidak digunakan di postgres. `global_transaction_id`Dapat berupa pengidentifikasi string apa pun yang didukung oleh postgres yang mengembalikan tuple (`format_id`,,`global_transaction_id`). `branch_qualifier`

`tpc_begin(xid)`  
Memulai transaksi TPC dengan ID transaksi `xid` yang terdiri dari ID format, ID transaksi global, dan kualifikasi cabang. 

`tpc_prepare`  
Melakukan fase pertama transaksi yang dimulai dengan.tpc\$1begin.

`tpc_commit([xid])`  
Ketika dipanggil tanpa argumen, .tpc\$1commit melakukan transaksi TPC yang sebelumnya disiapkan dengan.tpc\$1prepare ().

`tpc_rollback([xid])`  
Ketika dipanggil tanpa argumen, .tpc\$1rollback mengembalikan transaksi TPC.

`tpc_recover`  
Mengembalikan daftar transaksi tertunda yang IDs cocok untuk digunakan dengan.tpc\$1commit (xid) atau.tpc\$1rollback (xid).

## Kursor
<a name="python-api-cursor"></a>

Berikut ini, Anda dapat menemukan deskripsi operasi API kursor.

`__init__(connection[, paramstyle])`  
Menginisialisasi objek kursor mentah.

`insert_data_bulk(filename, table_name, parameter_indices, column_names, delimiter, batch_size)`  
Menjalankan pernyataan INSERT massal.

`execute(operation[, args, stream, …])`  
Menjalankan operasi database.

`executemany(operation, param_sets)`  
Mempersiapkan operasi database, dan kemudian menjalankannya untuk semua urutan parameter atau pemetaan yang disediakan.

`fetchone`  
Mengambil baris berikutnya dari hasil query set.

`fetchmany([num])`  
Mengambil set baris berikutnya dari hasil query.

`fetchall`  
Mengambil semua baris yang tersisa dari hasil query.

`close`  
Tutup kursor sekarang. 

`__iter__`  
Sebuah objek kursor dapat diiterasi untuk mengambil baris dari query.

`fetch_dataframe([num])`  
Mengembalikan kerangka data dari hasil query terakhir.

`write_dataframe(df, table)`  
Menulis kerangka data struktur yang sama ke dalam database Amazon Redshift.

`fetch_numpy_array([num])`  
Mengembalikan NumPy array hasil query terakhir.

`get_catalogs`  
Amazon Redshift tidak mendukung beberapa katalog dari satu koneksi. Amazon Redshift hanya mengembalikan katalog saat ini.

`get_tables([catalog, schema_pattern, …])`  
Mengembalikan tabel publik unik yang ditentukan pengguna dalam sistem.

`get_columns([catalog, schema_pattern, …])`  
Mengembalikan daftar semua kolom dalam tabel tertentu dalam database Amazon Redshift.

## AdfsCredentialsProvider plugin
<a name="python-adfs-credentials-plugin"></a>

Berikut ini adalah sintaks untuk operasi API AdfsCredentialsProvider plugin untuk konektor Amazon Redshift Python. 

```
redshift_connector.plugin.AdfsCredentialsProvider()
```

## AzureCredentialsProvider plugin
<a name="python-azure-credentials-plugin"></a>

Berikut ini adalah sintaks untuk operasi API AzureCredentialsProvider plugin untuk konektor Amazon Redshift Python.

```
redshift_connector.plugin.AzureCredentialsProvider()
```

## BrowserAzureCredentialsProvider plugin
<a name="python-browser-azure-credentials-plugin"></a>

Berikut ini adalah sintaks untuk operasi API BrowserAzureCredentialsProvider plugin untuk konektor Amazon Redshift Python.

```
redshift_connector.plugin.BrowserAzureCredentialsProvider()
```

## BrowserSamlCredentialsProvider plugin
<a name="python-browser-saml-credentials-plugin"></a>

Berikut ini adalah sintaks untuk operasi API BrowserSamlCredentialsProvider plugin untuk konektor Amazon Redshift Python.

```
redshift_connector.plugin.BrowserSamlCredentialsProvider()
```

## OktaCredentialsProvider plugin
<a name="python-okta-credentials-plugin"></a>

Berikut ini adalah sintaks untuk operasi API OktaCredentialsProvider plugin untuk konektor Amazon Redshift Python.

```
redshift_connector.plugin.OktaCredentialsProvider()
```

## PingCredentialsProvider plugin
<a name="python-ping-credentials-plugin"></a>

Berikut ini adalah sintaks untuk operasi API PingCredentialsProvider plugin untuk konektor Amazon Redshift Python.

```
redshift_connector.plugin.PingCredentialsProvider()
```

## SamlCredentialsProvider plugin
<a name="python-saml-credentials-plugin"></a>

Berikut ini adalah sintaks untuk operasi API SamlCredentialsProvider plugin untuk konektor Amazon Redshift Python.

```
redshift_connector.plugin.SamlCredentialsProvider()
```