

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

# Memecahkan Masalah Amazon Keyspaces (untuk Apache Cassandra)
<a name="troubleshooting"></a>

Panduan ini mencakup langkah-langkah pemecahan masalah untuk berbagai skenario saat bekerja dengan Amazon Keyspaces (untuk Apache Cassandra). Ini mencakup informasi tentang penyelesaian kesalahan umum, masalah koneksi, masalah manajemen kapasitas, dan kesalahan Data Definition Language (DDL).
+ **Kesalahan umum** 
  + Memecahkan masalah pengecualian tingkat atas seperti`NoNodeAvailableException`,, dan. `NoHostAvailableException` `AllNodesFailedException` 
  + Mengisolasi kesalahan mendasar dari pengecualian driver Java. 
  + Menerapkan kebijakan coba lagi dan mengonfigurasi koneksi dengan benar. 
+ **Masalah koneksi** 
  + Mengatasi kesalahan saat menghubungkan ke titik akhir Amazon Keyspaces `cqlsh` menggunakan atau driver klien Apache Cassandra. 
  + Memecahkan masalah koneksi titik akhir VPC, koneksi Cassandra-stress, dan kesalahan konfigurasi IAM.
  + Menangani kerugian koneksi selama impor data.
+ **Kesalahan manajemen kapasitas** 
  + Mengenali dan menyelesaikan kesalahan kapasitas yang tidak memadai terkait dengan tabel, partisi, dan koneksi.
  + Memantau metrik Amazon Keyspaces yang relevan di Log Amazon. CloudWatch 
  + Mengoptimalkan koneksi dan throughput untuk meningkatkan kinerja.
+ **Kesalahan Bahasa Definisi Data (DDL)** 
  + Memecahkan masalah kesalahan saat membuat, mengakses, atau memulihkan ruang kunci dan tabel.
  + Menangani kegagalan yang terkait dengan pengaturan Time to Live (TTL) kustom, batas kolom, dan penghapusan rentang.
  + Pertimbangan untuk beban kerja penghapusan berat. 

Untuk panduan pemecahan masalah khusus untuk akses IAM, lihat. [Memecahkan masalah identitas dan akses Amazon Keyspaces](security_iam_troubleshoot.md) Untuk informasi selengkapnya tentang praktik terbaik keamanan, lihat[Praktik terbaik keamanan untuk Amazon Keyspaces](best-practices-security.md).

**Topics**
+ [Kesalahan umum](troubleshooting.general.md)
+ [Kesalahan koneksi](troubleshooting.connecting.md)
+ [Kesalahan manajemen kapasitas](troubleshooting.serverless.md)
+ [Kesalahan bahasa definisi data](troubleshooting.cql.md)

# Memecahkan masalah kesalahan umum di Amazon Keyspaces
<a name="troubleshooting.general"></a>

Mendapatkan kesalahan umum? Berikut adalah beberapa masalah umum dan cara mengatasinya.

## Kesalahan umum
<a name="troubleshooting-general"></a>

Anda mendapatkan salah satu pengecualian tingkat atas berikut yang dapat terjadi karena berbagai alasan.
+ `NoNodeAvailableException`
+ `NoHostAvailableException`
+ `AllNodesFailedException`

Pengecualian ini dihasilkan oleh driver klien dan dapat terjadi baik saat Anda membuat koneksi kontrol atau saat Anda melakukan read/write/prepare/execute/batch permintaan. 

Ketika kesalahan terjadi saat Anda membuat koneksi kontrol, itu adalah tanda bahwa semua titik kontak yang ditentukan dalam aplikasi Anda tidak dapat dijangkau. Ketika kesalahan terjadi saat melakukan read/write/prepare/execute kueri, ini menunjukkan bahwa semua percobaan ulang untuk permintaan itu telah habis. Setiap percobaan ulang dicoba pada node yang berbeda saat Anda menggunakan kebijakan coba ulang default. 

### Cara mengisolasi kesalahan mendasar dari pengecualian driver Java tingkat atas
<a name="troubleshooting-general-isolation"></a>

Kesalahan umum ini dapat disebabkan oleh masalah koneksi atau saat melakukan read/write/prepare/execute operasi. Kegagalan sementara harus diharapkan dalam sistem terdistribusi, dan harus ditangani dengan mencoba kembali permintaan. Driver Java tidak secara otomatis mencoba lagi ketika terjadi kesalahan koneksi, jadi disarankan untuk menerapkan kebijakan coba lagi saat membuat koneksi driver di aplikasi Anda. Untuk ikhtisar rinci tentang praktik terbaik koneksi, lihat[Optimalkan koneksi driver klien untuk lingkungan tanpa server](connections.md).

Secara default, driver Java disetel `idempotence` ke false untuk semua permintaan, yang berarti driver Java tidak secara otomatis mencoba kembali read/write/prepare permintaan gagal. `idempotence`Untuk mengatur `true` dan memberi tahu pengemudi untuk mencoba kembali permintaan yang gagal, Anda dapat melakukannya dengan beberapa cara berbeda. Berikut adalah salah satu contoh bagaimana Anda dapat mengatur idempotence secara terprogram untuk satu permintaan dalam aplikasi Java Anda.

```
Statement s = new SimpleStatement("SELECT * FROM my_table WHERE id = 1");
s.setIdempotent(true);
```

Atau Anda dapat mengatur idempotence default untuk seluruh aplikasi Java Anda secara terprogram seperti yang ditunjukkan pada contoh berikut.

```
// Make all statements idempotent by default:
cluster.getConfiguration().getQueryOptions().setDefaultIdempotence(true);
//Set the default idempotency to true in your Cassandra configuration
basic.request.default-idempotence = true
```

Rekomendasi lain adalah membuat kebijakan coba lagi di tingkat aplikasi. Dalam hal ini, aplikasi perlu menangkap `NoNodeAvailableException` dan mencoba kembali permintaan. Kami merekomendasikan 10 percobaan ulang dengan backoff eksponensial mulai dari 10 ms dan bekerja hingga 100 ms dengan total waktu 1 detik untuk semua percobaan ulang.

[Pilihan lainnya adalah menerapkan kebijakan coba lagi eksponensial Amazon Keyspaces saat membuat koneksi driver Java yang tersedia di Github.](https://github.com/aws-samples/amazon-keyspaces-java-driver-helpers/blob/main/src/main/java/com/aws/ssa/keyspaces/retry/AmazonKeyspacesExponentialRetryPolicy.java)

Konfirmasikan bahwa Anda telah membuat koneksi ke lebih dari satu node saat menggunakan kebijakan coba ulang default. Anda dapat melakukannya menggunakan kueri berikut di Amazon Keyspaces.

```
SELECT * FROM system.peers;
```

Jika respons untuk kueri ini kosong, ini menunjukkan bahwa Anda bekerja dengan satu node untuk Amazon Keyspaces. Jika Anda menggunakan kebijakan coba ulang default, tidak akan ada percobaan ulang karena percobaan ulang default selalu terjadi pada node yang berbeda. Untuk mempelajari lebih lanjut tentang membuat koneksi melalui titik akhir VPC, lihat. [Cara mengonfigurasi koneksi melalui titik akhir VPC di Amazon Keyspaces](connections.md#connections.VPCendpoints)

Untuk step-by-step tutorial yang menunjukkan cara membuat koneksi ke Amazon Keyspaces menggunakan driver Datastax 4.x Cassandra, lihat. [Step-by-step tutorial untuk terhubung ke Amazon Keyspaces menggunakan driver DataStax Java 4.x untuk Apache Cassandra dan plugin otentikasi SiGv4](using_java_driver.md#java_tutorial.SigV4)

# Memecahkan masalah kesalahan koneksi di Amazon Keyspaces
<a name="troubleshooting.connecting"></a>

Mengalami masalah saat menghubungkan? Berikut adalah beberapa masalah umum dan cara mengatasinya.

## Kesalahan saat menghubungkan ke titik akhir Amazon Keyspaces
<a name="troubleshooting-connecting"></a>

Kesalahan koneksi dan koneksi yang gagal dapat mengakibatkan pesan kesalahan yang berbeda. Bagian berikut mencakup skenario yang paling umum. 

**Topics**
+ [Saya tidak dapat terhubung ke Amazon Keyspaces dengan cqlsh](#troubleshooting.connection.cqlsh)
+ [Saya tidak dapat terhubung ke Amazon Keyspaces menggunakan driver klien Cassandra](#troubleshooting.connection.driver)

### Saya tidak dapat terhubung ke Amazon Keyspaces dengan cqlsh
<a name="troubleshooting.connection.cqlsh"></a>

**Anda mencoba terhubung ke titik akhir Amazon Keyspaces menggunakan cqlsh dan koneksi gagal dengan file. `Connection error`**

Jika Anda mencoba menyambung ke tabel Amazon Keyspaces dan cqlsh belum dikonfigurasi dengan benar, koneksi gagal. Bagian berikut memberikan contoh masalah konfigurasi paling umum yang mengakibatkan kesalahan koneksi saat Anda mencoba membuat koneksi menggunakan cqlsh.

**catatan**  
Jika Anda mencoba terhubung ke Amazon Keyspaces dari VPC, izin tambahan diperlukan. Agar berhasil mengonfigurasi koneksi menggunakan titik akhir VPC, ikuti langkah-langkah di file. [Tutorial: Connect ke Amazon Keyspaces menggunakan antarmuka VPC endpoint](vpc-endpoints-tutorial.md) 

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda mendapatkan kesalahan koneksi. `timed out`**

Ini mungkin terjadi jika Anda tidak menyediakan port yang benar, yang menghasilkan kesalahan berikut.

```
#  cqlsh cassandra.us-east-1.amazonaws.com 9140 -u "USERNAME" -p "PASSWORD" --ssl
Connection error: ('Unable to connect to any servers', {'3.234.248.199': error(None, "Tried connecting to [('3.234.248.199', 9140)]. Last error: timed out")})
```

Untuk mengatasi masalah ini, verifikasi bahwa Anda menggunakan port 9142 untuk koneksi.

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda mendapatkan kesalahan. `Name or service not known`**

Ini mungkin terjadi jika Anda menggunakan titik akhir yang salah eja atau tidak ada. Dalam contoh berikut, nama titik akhir salah eja.

```
#  cqlsh cassandra.us-east-1.amazon.com 9142 -u "USERNAME" -p "PASSWORD" --ssl
Traceback (most recent call last):
  File "/usr/bin/cqlsh.py", line 2458, in >module>
    main(*read_options(sys.argv[1:], os.environ))
  File "/usr/bin/cqlsh.py", line 2436, in main
    encoding=options.encoding)
  File "/usr/bin/cqlsh.py", line 484, in __init__
    load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]),
  File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.11.0-bb96859b.zip/cassandra-driver-3.11.0-bb96859b/cassandra/policies.py", line 417, in __init__
socket.gaierror: [Errno -2] Name or service not known
```

Untuk mengatasi masalah ini saat Anda menggunakan titik akhir publik untuk terhubung, pilih titik akhir yang tersedia dari[Titik akhir layanan untuk Amazon Keyspaces](programmatic.endpoints.md), dan verifikasi bahwa nama titik akhir tidak memiliki kesalahan. Jika Anda menggunakan titik akhir VPC untuk terhubung, verifikasi bahwa informasi titik akhir VPC sudah benar dalam konfigurasi cqlsh Anda.

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan. `OperationTimedOut`**

Amazon Keyspaces mengharuskan SSL diaktifkan untuk koneksi guna memastikan keamanan yang kuat. Parameter SSL mungkin hilang jika Anda menerima kesalahan berikut.

```
# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD"
Connection error: ('Unable to connect to any servers', {'3.234.248.192': OperationTimedOut('errors=Timed out creating connection (5 seconds), last_host=None',)})
#
```

Untuk mengatasi masalah ini, tambahkan tanda berikut ke perintah koneksi cqlsh.

```
--ssl
```

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, dan Anda menerima kesalahan. `SSL transport factory requires a valid certfile to be specified`**

Dalam hal ini, jalur ke SSL/TLS sertifikat tidak ada, yang menghasilkan kesalahan berikut.

```
# cat .cassandra/cqlshrc
[connection]
port = 9142
factory = cqlshlib.ssl.ssl_transport_factory
#


# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl
Validation is enabled; SSL transport factory requires a valid certfile to be specified. Please provide path to the certfile in [ssl] section as 'certfile' option in /root/.cassandra/cqlshrc (or use [certfiles] section) or set SSL_CERTFILE environment variable.
#
```

Untuk mengatasi masalah ini, tambahkan path ke certfile di komputer Anda. Untuk informasi selengkapnya, lihat [Cara mengkonfigurasi `cqlsh` koneksi secara manual untuk TLS](programmatic.cqlsh.md#encrypt_using_tls).

```
certfile =  path_to_file/keyspaces-bundle.pem
```

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan. `No such file or directory`**

Ini mungkin terjadi jika jalur ke file sertifikat di komputer Anda salah, yang menghasilkan kesalahan berikut.

```
# cat .cassandra/cqlshrc
[connection]
port = 9142
factory = cqlshlib.ssl.ssl_transport_factory

[ssl]
validate = true
certfile = /root/wrong_path/keyspaces-bundle.pem
#



# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl
Connection error: ('Unable to connect to any servers', {'3.234.248.192': IOError(2, 'No such file or directory')})
#
```

Untuk mengatasi masalah ini, verifikasi bahwa jalur ke certfile di komputer Anda sudah benar. Untuk informasi selengkapnya, lihat [Cara mengkonfigurasi `cqlsh` koneksi secara manual untuk TLS](programmatic.cqlsh.md#encrypt_using_tls).

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan. `[X509] PEM lib`**

Ini mungkin terjadi jika `pem` file sertifikat SSL/TLS tidak valid, yang menghasilkan kesalahan berikut.

```
# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl
Connection error: ('Unable to connect to any servers', {'3.234.248.241': error(185090057, u"Tried connecting to [('3.234.248.241', 9142)]. Last error: [X509] PEM lib (_ssl.c:3063)")})
#
```

Untuk mengatasi masalah ini, pastikan Anda mengunduh sertifikat digital yang diperlukan. Untuk informasi selengkapnya, lihat [Cara mengkonfigurasi `cqlsh` koneksi secara manual untuk TLS](programmatic.cqlsh.md#encrypt_using_tls).

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan SSL. `unknown`**

Ini mungkin terjadi jika `pem` file sertifikat SSL/TLS kosong, yang menghasilkan kesalahan berikut.

```
# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl
Connection error: ('Unable to connect to any servers', {'3.234.248.220': error(0, u"Tried connecting to [('3.234.248.220', 9142)]. Last error: unknown error (_ssl.c:3063)")})
#
```

Untuk mengatasi masalah ini, pastikan Anda mengunduh sertifikat digital yang diperlukan. Anda dapat mengonfirmasi ini menggunakan langkah-langkah dalam topik berikut[Cara mengkonfigurasi `cqlsh` koneksi secara manual untuk TLS](programmatic.cqlsh.md#encrypt_using_tls).

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan. `SSL: CERTIFICATE_VERIFY_FAILED`**

Ini mungkin terjadi jika file sertifikat SSL/TLS tidak dapat diverifikasi, yang menghasilkan kesalahan berikut.

```
Connection error: ('Unable to connect to any servers', {'3.234.248.223': error(1, u"Tried connecting to [('3.234.248.223', 9142)]. Last error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)")})
```

Untuk mengatasi masalah ini, pastikan Anda mengunduh sertifikat digital yang diperlukan. Anda dapat mengonfirmasi ini menggunakan langkah-langkah dalam topik berikut[Cara mengkonfigurasi `cqlsh` koneksi secara manual untuk TLS](programmatic.cqlsh.md#encrypt_using_tls).

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan. `Last error: timed out`**

Ini mungkin terjadi jika Anda tidak mengonfigurasi aturan keluar untuk Amazon Keyspaces di grup keamanan Amazon EC2 Anda, yang menghasilkan kesalahan berikut.

```
# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u  "USERNAME" -p "PASSWORD" --ssl
Connection error: ('Unable to connect to any servers', {'3.234.248.206': error(None, "Tried connecting to [('3.234.248.206', 9142)]. Last error: timed out")})
#
```

Untuk mengonfirmasi bahwa masalah ini disebabkan oleh konfigurasi instans Amazon EC2 dan tidak`cqlsh`, Anda dapat mencoba menghubungkan ke ruang kunci Anda menggunakan AWS CLI, misalnya dengan perintah berikut.

```
aws keyspaces list-tables --keyspace-name 'my_keyspace'
```

Jika perintah ini juga habis waktu, instans Amazon EC2 tidak dikonfigurasi dengan benar.

Untuk mengonfirmasi bahwa Anda memiliki izin yang cukup untuk mengakses Amazon Keyspaces, Anda dapat menggunakan file untuk AWS CloudShell terhubung. `cqlsh` Jika koneksi tersebut dibuat, Anda perlu mengonfigurasi instans Amazon EC2.

Untuk mengatasi masalah ini, konfirmasikan bahwa instans Amazon EC2 Anda memiliki aturan keluar yang memungkinkan lalu lintas ke Amazon Keyspaces. Jika bukan itu masalahnya, Anda perlu membuat grup keamanan baru untuk instans EC2, dan menambahkan aturan yang memungkinkan lalu lintas keluar ke sumber daya Amazon Keyspaces. **Untuk memperbarui aturan keluar untuk mengizinkan lalu lintas ke Amazon Keyspaces, **pilih** CQLSH/CASSANDRA dari menu tarik-turun Ketik.** 

Setelah membuat grup keamanan baru dengan aturan lalu lintas keluar, Anda perlu menambahkannya ke instance. Pilih instance dan kemudian pilih **Actions**, lalu **Security**, dan kemudian **Change security groups**. Tambahkan grup keamanan baru dengan aturan keluar, tetapi pastikan bahwa grup default juga tetap tersedia.

Untuk informasi selengkapnya tentang cara melihat dan mengedit aturan keluar EC2, lihat [Menambahkan aturan ke grup keamanan di Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#adding-security-group-rule).

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan. `Unauthorized`**

Ini mungkin terjadi jika Anda kehilangan izin Amazon Keyspaces dalam kebijakan pengguna IAM, yang mengakibatkan kesalahan berikut.

```
# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u  "testuser-at-12345678910" -p "PASSWORD" --ssl
Connection error: ('Unable to connect to any servers', {'3.234.248.241': AuthenticationFailed('Failed to authenticate to 3.234.248.241: Error from server: code=2100 [Unauthorized] message="User arn:aws:iam::12345678910:user/testuser has no permissions."',)})
#
```

Untuk mengatasi masalah ini, pastikan pengguna IAM `testuser-at-12345678910` memiliki izin untuk mengakses Amazon Keyspaces. Untuk contoh kebijakan IAM yang memberikan akses ke Amazon Keyspaces, lihat. [Contoh kebijakan berbasis identitas Amazon Keyspaces](security_iam_id-based-policy-examples.md)

Untuk panduan pemecahan masalah yang khusus untuk akses IAM, lihat. [Memecahkan masalah identitas dan akses Amazon Keyspaces](security_iam_troubleshoot.md)

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan cqlsh, tetapi Anda menerima kesalahan. `Bad credentials`**

Ini mungkin terjadi jika nama pengguna atau kata sandi salah, yang mengakibatkan kesalahan berikut.

```
# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u  "USERNAME" -p "PASSWORD" --ssl
Connection error: ('Unable to connect to any servers', {'3.234.248.248': AuthenticationFailed('Failed to authenticate to 3.234.248.248: Error from server: code=0100 [Bad credentials] message="Provided username USERNAME and/or password are incorrect"',)})
#
```

Untuk mengatasi masalah ini, verifikasi bahwa *USERNAME* dan *PASSWORD* dalam kode Anda cocok dengan nama pengguna dan kata sandi yang Anda peroleh saat Anda membuat kredensil [khusus layanan](programmatic.credentials.ssc.md).

**penting**  
Jika Anda terus melihat kesalahan saat mencoba terhubung dengan cqlsh, jalankan kembali perintah dengan `--debug` opsi dan sertakan output terperinci saat menghubungi. Dukungan

### Saya tidak dapat terhubung ke Amazon Keyspaces menggunakan driver klien Cassandra
<a name="troubleshooting.connection.driver"></a>

Bagian berikut menunjukkan kesalahan paling umum saat menghubungkan dengan driver klien Cassandra.

**Anda mencoba untuk terhubung ke tabel Amazon Keyspaces menggunakan driver DataStax Java, tetapi Anda menerima kesalahan`NodeUnavailableException`.**

Jika koneksi di mana permintaan dicoba rusak, itu menghasilkan kesalahan berikut.

```
[com.datastax.oss.driver.api.core.NodeUnavailableException: No connection was available to Node(endPoint=vpce-22ff22f2f22222fff-aa1bb234.cassandra.us-west-2.vpce.amazonaws.com/11.1.1111.222:9142, hostId=1a23456b-c77d-8888-9d99-146cb22d6ef6, hashCode=123ca4567)]
```

Untuk mengatasi masalah ini, temukan nilai detak jantung dan turunkan menjadi 30 detik jika lebih tinggi.

```
advanced.heartbeat.interval = 30 seconds
```

Kemudian cari waktu habis yang terkait dan pastikan nilainya disetel ke setidaknya 5 detik.

```
advanced.connection.init-query-timeout = 5 seconds
```

**Anda mencoba terhubung ke tabel Amazon Keyspaces menggunakan driver dan plugin SigV4, tetapi Anda menerima kesalahan. `AttributeError`**

Jika kredensil tidak dikonfigurasi dengan benar, itu menghasilkan kesalahan berikut.

```
cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’,
 {‘44.234.22.154:9142’: AttributeError(“‘NoneType’ object has no attribute ‘access_key’“)})
```

Untuk mengatasi masalah ini, verifikasi bahwa Anda meneruskan kredensil yang terkait dengan pengguna atau peran IAM Anda saat menggunakan plugin SiGv4. Plugin SiGv4 membutuhkan kredensil berikut.
+ `AWS_ACCESS_KEY_ID`— Menentukan kunci AWS akses yang terkait dengan pengguna IAM atau peran. 
+ `AWS_SECRET_ACCESS_KEY`— Menentukan kunci rahasia yang terkait dengan kunci akses. Ini pada dasarnya adalah “kata sandi” untuk kunci akses.

Untuk mempelajari selengkapnya tentang kunci akses dan plugin SiGv4, lihat. [Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces](access.credentials.md)

**Anda mencoba menyambung ke tabel Amazon Keyspaces menggunakan driver, tetapi Anda menerima kesalahan. `PartialCredentialsError`**

Jika `AWS_SECRET_ACCESS_KEY` hilang, itu dapat mengakibatkan kesalahan berikut.

```
cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘44.234.22.153:9142’: 
 PartialCredentialsError(‘Partial credentials found in config-file, missing: aws_secret_access_key’)})
```

Untuk mengatasi masalah ini, verifikasi bahwa Anda meneruskan plugin SiGv4 `AWS_ACCESS_KEY_ID` dan `AWS_SECRET_ACCESS_KEY` saat menggunakan plugin SiGv4. Untuk mempelajari selengkapnya tentang kunci akses dan plugin SiGv4, lihat. [Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces](access.credentials.md)

**Anda mencoba menyambung ke tabel Amazon Keyspaces menggunakan driver, tetapi Anda menerima kesalahan`Invalid signature`.**

Ini mungkin terjadi jika salah satu komponen yang diperlukan untuk tanda tangan salah atau tidak didefinisikan dengan benar untuk sesi tersebut.
+ `AWS_ACCESS_KEY_ID`
+ `AWS_SECRET_ACCESS_KEY`
+ `AWS_DEFAULT_REGION`

Kesalahan berikut adalah contoh kunci akses yang tidak valid.

```
cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘11.234.11.234:9142’: 
 AuthenticationFailed(‘Failed to authenticate to 11.234.11.234:9142: Error from server: code=0100 
 [Bad credentials] message=“Authentication failure: Invalid signature”’)})
```

Untuk mengatasi masalah ini, verifikasi bahwa kunci akses dan Wilayah AWS telah dikonfigurasi dengan benar untuk plugin SiGv4 untuk mengakses Amazon Keyspaces. Untuk mempelajari selengkapnya tentang kunci akses dan plugin SiGv4, lihat. [Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces](access.credentials.md)

#### Koneksi titik akhir VPC saya tidak berfungsi dengan baik
<a name="troubleshooting.connection.vpce"></a>

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan titik akhir VPC, tetapi Anda menerima kesalahan peta token atau Anda mengalami throughput rendah.**

Ini mungkin terjadi jika koneksi titik akhir VPC tidak dikonfigurasi dengan benar.

Untuk mengatasi masalah ini, verifikasi detail konfigurasi berikut. Untuk mengikuti step-by-step tutorial untuk mempelajari cara mengkonfigurasi koneksi melalui antarmuka VPC endpoint untuk Amazon Keyspaces lihat. [Tutorial: Connect ke Amazon Keyspaces menggunakan antarmuka VPC endpoint](vpc-endpoints-tutorial.md)

1. Konfirmasikan bahwa entitas IAM yang digunakan untuk menyambung ke Amazon Keyspaces read/write memiliki akses ke tabel pengguna dan membaca akses ke tabel sistem seperti yang ditunjukkan pada contoh berikut.

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "cassandra:Select",
               "cassandra:Modify"
            ],
            "Resource":[
               "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable",
               "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*"
            ]
         }
      ]
   }
   ```

1. Konfirmasikan bahwa entitas IAM yang digunakan untuk menyambung ke Amazon Keyspaces memiliki izin baca yang diperlukan untuk mengakses informasi titik akhir VPC di instans Amazon EC2 Anda seperti yang ditunjukkan pada contoh berikut.

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Sid":"ListVPCEndpoints",
            "Effect":"Allow",
            "Action":[
               "ec2:DescribeNetworkInterfaces",
               "ec2:DescribeVpcEndpoints"
            ],
            "Resource":"*"
         }
      ]
   }
   ```
**catatan**  
Kebijakan terkelola `AmazonKeyspacesReadOnlyAccess_v2` dan `AmazonKeyspacesFullAccess` menyertakan izin yang diperlukan agar Amazon Keyspaces mengakses instans Amazon EC2 untuk membaca informasi tentang titik akhir VPC antarmuka yang tersedia.

   Untuk informasi selengkapnya tentang titik akhir VPC, lihat [Menggunakan titik akhir VPC antarmuka untuk Amazon Keyspaces](vpc-endpoints.md#using-interface-vpc-endpoints)

1. Konfirmasikan bahwa konfigurasi SSL driver Java menetapkan validasi nama host ke false seperti yang ditunjukkan dalam contoh ini.

   ```
   hostname-validation = false
   ```

   Untuk informasi selengkapnya tentang konfigurasi driver, lihat[Langkah 2: Konfigurasikan driver](using_java_driver.md#java_tutorial.driverconfiguration).

1. Untuk mengonfirmasi bahwa titik akhir VPC telah dikonfigurasi dengan benar, Anda dapat menjalankan pernyataan berikut dari dalam VPC *Anda*.
**catatan**  
Anda tidak dapat menggunakan lingkungan pengembang lokal atau editor CQL Amazon Keyspaces untuk mengonfirmasi konfigurasi ini, karena mereka menggunakan titik akhir publik.

   ```
   SELECT peer FROM system.peers;
   ```

   Outputnya akan terlihat mirip dengan contoh ini dan kembali antara 2 hingga 6 node dengan IPv4 alamat pribadi saat menghubungkan dari IPv4 jaringan, tergantung pada pengaturan dan AWS Wilayah VPC Anda.

   ```
   peer
   ---------------
    192.0.2.0.15
    192.0.2.0.24
    192.0.2.0.13
    192.0.2.0.7
    192.0.2.0.8
   
   (5 rows)
   ```

#### Saya tidak dapat terhubung menggunakan `cassandra-stress`
<a name="troubleshooting.connection.cassandra-stress"></a>

**Anda mencoba terhubung ke Amazon Keyspaces menggunakan `cassandra-stress` perintah, tetapi Anda menerima kesalahan`SSL context`.**

Ini terjadi jika Anda mencoba terhubung ke Amazon Keyspaces, tetapi Anda tidak memiliki pengaturan TrustStore dengan benar. Amazon Keyspaces memerlukan penggunaan Transport Layer Security (TLS) untuk membantu mengamankan koneksi dengan klien.

Dalam hal ini, Anda melihat kesalahan berikut.

```
Error creating the initializing the SSL Context
```

Untuk mengatasi masalah ini, ikuti petunjuk untuk menyiapkan TrustStore seperti yang ditunjukkan dalam topik ini. [Sebelum Anda mulai](using_java_driver.md#using_java_driver.BeforeYouBegin)

Setelah TrustStore diatur, Anda harus dapat terhubung dengan perintah berikut.

```
./cassandra-stress user profile=./profile.yaml n=100 "ops(insert=1,select=1)" cl=LOCAL_QUORUM -node "cassandra.eu-north-1.amazonaws.com" -port native=9142 -transport ssl-alg="PKIX" truststore="./cassandra_truststore.jks" truststore-password="trustStore_pw" -mode native cql3 user="user_name" password="password"
```

#### Saya tidak dapat terhubung menggunakan identitas IAM
<a name="troubleshooting.connection.IAM"></a>

**Anda mencoba menyambung ke tabel Amazon Keyspaces menggunakan identitas IAM, tetapi Anda menerima kesalahan. `Unauthorized`**

Ini terjadi jika Anda mencoba menyambung ke tabel Amazon Keyspaces menggunakan identitas IAM (misalnya, pengguna IAM) tanpa menerapkan kebijakan dan memberi pengguna izin yang diperlukan terlebih dahulu. 

Dalam hal ini, Anda melihat kesalahan berikut.

```
Connection error: ('Unable to connect to any servers', {'3.234.248.202': AuthenticationFailed('Failed to authenticate to 3.234.248.202: 
Error from server: code=2100 [Unauthorized] message="User arn:aws:iam::1234567890123:user/testuser has no permissions."',)})
```

Untuk mengatasi masalah ini, verifikasi izin pengguna IAM. Untuk terhubung dengan driver standar, pengguna harus memiliki setidaknya `SELECT` akses ke tabel sistem, karena sebagian besar driver membaca sistem keyspaces/tables ketika mereka membuat koneksi. 

Misalnya kebijakan IAM yang memberikan akses ke sistem Amazon Keyspaces dan tabel pengguna, lihat. [Mengakses tabel Amazon Keyspaces](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table)

Untuk meninjau bagian pemecahan masalah khusus untuk IAM, lihat. [Memecahkan masalah identitas dan akses Amazon Keyspaces](security_iam_troubleshoot.md)

#### Saya mencoba mengimpor data dengan cqlsh dan koneksi ke tabel Amazon Keyspaces saya terputus
<a name="troubleshooting.connection.import"></a>

**Anda mencoba mengunggah data ke Amazon Keyspaces dengan cqlsh, tetapi Anda menerima kesalahan koneksi.**

Koneksi ke Amazon Keyspaces gagal setelah klien cqlsh menerima tiga kesalahan berturut-turut dari jenis apa pun dari server. Klien cqlsh gagal dengan pesan berikut. 

```
Failed to import 1 rows: NoHostAvailable - , will retry later, attempt 3 of 100
```

Untuk mengatasi kesalahan ini, Anda perlu memastikan bahwa data yang akan diimpor cocok dengan skema tabel di Amazon Keyspaces. Tinjau file impor untuk kesalahan penguraian. Anda dapat mencoba menggunakan satu baris data dengan menggunakan pernyataan INSERT untuk mengisolasi kesalahan.

Klien secara otomatis mencoba membangun kembali koneksi.

# Memecahkan masalah kesalahan manajemen kapasitas di Amazon Keyspaces
<a name="troubleshooting.serverless"></a>

Mengalami masalah dengan kapasitas tanpa server? Berikut adalah beberapa masalah umum dan cara mengatasinya.

## Kesalahan kapasitas tanpa server
<a name="troubleshooting-serverless"></a>

Bagian ini menguraikan cara mengenali kesalahan yang terkait dengan manajemen kapasitas tanpa server dan cara mengatasinya. Misalnya, Anda mungkin mengamati peristiwa kapasitas yang tidak mencukupi ketika aplikasi Anda melebihi kapasitas throughput yang disediakan. 

Karena Apache Cassandra adalah perangkat lunak berbasis cluster yang dirancang untuk berjalan pada armada node, ia tidak memiliki pesan pengecualian yang terkait dengan fitur tanpa server seperti kapasitas throughput. Sebagian besar driver hanya memahami kode kesalahan yang tersedia di Apache Cassandra, jadi Amazon Keyspaces menggunakan kumpulan kode kesalahan yang sama untuk menjaga kompatibilitas. 

Untuk memetakan kesalahan Cassandra ke peristiwa kapasitas yang mendasarinya, Anda dapat menggunakan Amazon CloudWatch untuk memantau metrik Amazon Keyspaces yang relevan. Peristiwa kapasitas yang tidak memadai yang mengakibatkan kesalahan sisi klien dapat dikategorikan ke dalam tiga kelompok ini berdasarkan sumber daya yang menyebabkan peristiwa: 
+ **Tabel** — Jika Anda memilih mode kapasitas **yang disediakan** untuk tabel, dan aplikasi Anda melebihi throughput yang disediakan, Anda mungkin akan melihat kesalahan kapasitas yang tidak memadai. Untuk informasi selengkapnya, lihat [Konfigurasikan mode read/write kapasitas di Amazon Keyspaces](ReadWriteCapacityMode.md).
+ **Partisi** — Anda mungkin mengalami peristiwa kapasitas yang tidak memadai jika lalu lintas terhadap partisi tertentu melebihi 3.000 RCUs atau 1.000. WCUs Kami merekomendasikan untuk mendistribusikan lalu lintas secara seragam di seluruh partisi sebagai praktik terbaik. Untuk informasi selengkapnya, lihat [Praktik terbaik pemodelan data: rekomendasi untuk merancang model data](data-modeling.md).
+ **Koneksi** — Anda mungkin mengalami throughput yang tidak mencukupi jika melebihi kuota untuk jumlah maksimum operasi per detik, per koneksi. Untuk meningkatkan throughput, Anda dapat meningkatkan jumlah koneksi default saat mengonfigurasi koneksi dengan driver.

  Untuk mempelajari cara mengonfigurasi koneksi untuk Amazon Keyspaces, lihat. [Cara mengonfigurasi koneksi di Amazon Keyspaces](connections.md#connections.howtoconfigure) Untuk informasi selengkapnya tentang mengoptimalkan koneksi melalui titik akhir VPC, lihat. [Cara mengonfigurasi koneksi melalui titik akhir VPC di Amazon Keyspaces](connections.md#connections.VPCendpoints)

Untuk menentukan sumber daya mana yang menyebabkan peristiwa kekurangan kapasitas yang mengembalikan kesalahan sisi klien, Anda dapat memeriksa dasbor di konsol Amazon Keyspaces. Secara default, konsol menyediakan tampilan agregat dari CloudWatch metrik kapasitas dan lalu lintas yang paling umum di bagian **Kapasitas dan metrik terkait** pada tab **Kapasitas** untuk tabel. 

Untuk membuat dasbor Anda sendiri menggunakan Amazon CloudWatch, periksa metrik Amazon Keyspaces berikut. 
+ `PerConnectionRequestRateExceeded`— Permintaan ke Amazon Keyspaces yang melebihi kuota untuk tingkat permintaan per koneksi. Setiap koneksi klien ke Amazon Keyspaces dapat mendukung hingga 3000 permintaan CQL per detik. Anda dapat melakukan lebih dari 3000 permintaan per detik dengan membuat beberapa koneksi.
+ `ReadThrottleEvents`— Permintaan ke Amazon Keyspaces yang melebihi kapasitas baca untuk tabel.
+ `StoragePartitionThroughputCapacityExceeded`— Permintaan ke partisi penyimpanan Amazon Keyspaces yang melebihi kapasitas throughput partisi. Partisi penyimpanan Amazon Keyspaces dapat mendukung hingga 1000 WCU/WRU per detik dan 3000 RCU/RRU per detik. Untuk mengurangi pengecualian ini, kami sarankan Anda meninjau model data Anda untuk mendistribusikan read/write lalu lintas di lebih banyak partisi.
+ `WriteThrottleEvents`— Permintaan ke Amazon Keyspaces yang melebihi kapasitas tulis untuk sebuah tabel.

Untuk mempelajari lebih lanjut tentang CloudWatch, lihat[Memantau Amazon Keyspaces dengan Amazon CloudWatch](monitoring-cloudwatch.md). Untuk daftar semua CloudWatch metrik yang tersedia untuk Amazon Keyspaces, lihat. [Metrik dan dimensi Amazon Keyspaces](metrics-dimensions.md) 

**catatan**  
[Untuk memulai dasbor khusus yang menampilkan semua metrik yang umum diamati untuk Amazon Keyspaces, Anda dapat menggunakan templat CloudWatch bawaan yang tersedia GitHub di AWS repositori sampel.](https://github.com/aws-samples/amazon-keyspaces-cloudwatch-cloudformation-templates)

**Topics**
+ [Kesalahan sisi klien](#troubleshooting.serverless.clientside)
+ [Tulis kesalahan batas waktu selama impor data](#troubleshooting.serverless.writetimeout)
+ [Ukuran penyimpanan keyspace atau meja](#troubleshooting.serverless.storagesize)

### Saya menerima kesalahan kapasitas `NoHostAvailable` yang tidak mencukupi dari driver klien saya
<a name="troubleshooting.serverless.clientside"></a>

**Anda melihat `Read_Timeout` atau `Write_Timeout` pengecualian untuk tabel.**

Berulang kali mencoba menulis atau membaca dari tabel Amazon Keyspaces dengan kapasitas yang tidak mencukupi dapat mengakibatkan kesalahan sisi klien yang khusus untuk driver.

Gunakan CloudWatch untuk memantau metrik throughput yang disediakan dan aktual, serta peristiwa kapasitas yang tidak mencukupi untuk tabel. Misalnya, permintaan baca yang tidak memiliki kapasitas throughput yang cukup gagal dengan `Read_Timeout` pengecualian dan diposting ke `ReadThrottleEvents` metrik. Permintaan tulis yang tidak memiliki kapasitas throughput yang cukup gagal dengan `Write_Timeout` pengecualian dan diposting ke `WriteThrottleEvents` metrik. Untuk informasi selengkapnya tentang metrik ini, lihat [Metrik dan dimensi Amazon Keyspaces](metrics-dimensions.md).

Untuk mengatasi masalah ini, pertimbangkan salah satu opsi berikut.
+ Tingkatkan *throughput yang disediakan* untuk tabel, yang merupakan jumlah maksimum kapasitas throughput yang dapat dikonsumsi aplikasi. Untuk informasi selengkapnya, lihat [Unit kapasitas baca dan unit kapasitas tulis](ReadWriteCapacityMode.Provisioned.md#ReadWriteCapacityMode.Provisioned.Units).
+ Biarkan layanan mengelola kapasitas throughput atas nama Anda dengan penskalaan otomatis. Untuk informasi selengkapnya, lihat [Kelola kapasitas throughput secara otomatis dengan penskalaan otomatis Amazon Keyspaces](autoscaling.md).
+ Pilih **mode kapasitas sesuai permintaan** untuk tabel. Untuk informasi selengkapnya, lihat [Konfigurasikan mode kapasitas sesuai permintaan](ReadWriteCapacityMode.OnDemand.md).

Jika Anda perlu meningkatkan kuota kapasitas default untuk akun Anda, lihat[Kuota untuk Amazon Keyspaces (untuk Apache Cassandra)](quotas.md).

**Anda melihat kesalahan yang terkait dengan kapasitas partisi yang terlampaui.**

Saat Anda melihat kesalahan, kapasitas `StoragePartitionThroughputCapacityExceeded` partisi untuk sementara terlampaui. Ini mungkin secara otomatis ditangani oleh kapasitas adaptif atau kapasitas sesuai permintaan. Sebaiknya tinjau model data Anda untuk mendistribusikan read/write lalu lintas di lebih banyak partisi untuk mengurangi kesalahan ini. Partisi penyimpanan Amazon Keyspaces dapat mendukung hingga 1000 WCU/WRU per detik dan 3000 RCU/RRU per detik. Untuk mempelajari lebih lanjut tentang cara meningkatkan model data Anda untuk mendistribusikan read/write lalu lintas di lebih banyak partisi, lihat[Praktik terbaik pemodelan data: rekomendasi untuk merancang model data](data-modeling.md).

`Write_Timeout`pengecualian juga dapat disebabkan oleh peningkatan tingkat operasi penulisan bersamaan yang mencakup data statis dan nonstatis dalam partisi logis yang sama. Jika lalu lintas diharapkan menjalankan beberapa operasi penulisan bersamaan yang menyertakan data statis dan nonstatis dalam partisi logis yang sama, sebaiknya tulis data statis dan nonstatis secara terpisah. Menulis data secara terpisah juga membantu mengoptimalkan biaya throughput.

**Anda melihat kesalahan terkait dengan tingkat permintaan koneksi yang terlampaui.**

Anda melihat `PerConnectionRequestRateExceeded` karena salah satu penyebab berikut.
+ Anda mungkin tidak memiliki cukup koneksi yang dikonfigurasi per sesi.
+ Anda mungkin mendapatkan lebih sedikit koneksi daripada rekan yang tersedia, karena Anda tidak memiliki izin titik akhir VPC yang dikonfigurasi dengan benar. Untuk informasi selengkapnya tentang kebijakan titik akhir VPC, lihat. [Menggunakan titik akhir VPC antarmuka untuk Amazon Keyspaces](vpc-endpoints.md#using-interface-vpc-endpoints)
+ Jika Anda menggunakan driver 4.x, periksa untuk melihat apakah Anda mengaktifkan validasi nama host. Driver mengaktifkan verifikasi nama host TLS secara default. Konfigurasi ini mengarah ke Amazon Keyspaces muncul sebagai cluster simpul tunggal ke driver. Kami menyarankan agar Anda menonaktifkan verifikasi nama host.

Kami menyarankan Anda mengikuti praktik terbaik ini untuk memastikan bahwa koneksi dan throughput Anda dioptimalkan:
+ **Konfigurasikan penyetelan throughput kueri CQL.**

  Amazon Keyspaces mendukung hingga 3.000 kueri CQL per koneksi TCP per detik, tetapi tidak ada batasan jumlah koneksi yang dapat dibuat oleh driver. 

  Sebagian besar driver Cassandra open-source membuat kumpulan koneksi ke Cassandra dan memuat kueri keseimbangan melalui kumpulan koneksi tersebut. Amazon Keyspaces mengekspos 9 alamat IP peer ke driver. Perilaku default sebagian besar driver adalah membuat koneksi tunggal ke setiap alamat IP peer. Oleh karena itu, throughput kueri CQL maksimum dari driver yang menggunakan pengaturan default adalah 27.000 kueri CQL per detik. 

  Untuk meningkatkan jumlah ini, kami sarankan Anda meningkatkan jumlah koneksi per alamat IP yang dipertahankan driver Anda di kumpulan koneksinya. Misalnya, mengatur koneksi maksimum per alamat IP ke 2 akan menggandakan throughput maksimum driver Anda menjadi 54.000 kueri CQL per detik. 
+ **Optimalkan koneksi simpul tunggal Anda.**

  Secara default, sebagian besar driver Cassandra open-source membuat satu atau lebih koneksi ke setiap alamat IP yang diiklankan dalam `system.peers` tabel saat membuat sesi. Namun, konfigurasi tertentu dapat menyebabkan driver terhubung ke satu alamat IP Amazon Keyspaces. Ini dapat terjadi jika driver mencoba validasi nama host SSL dari node rekan (misalnya, driver DataStax Java), atau saat terhubung melalui titik akhir VPC.

  Untuk mendapatkan ketersediaan dan kinerja yang sama dengan driver dengan koneksi ke beberapa alamat IP, kami sarankan Anda melakukan hal berikut:
  + Tingkatkan jumlah koneksi per IP menjadi 9 atau lebih tinggi tergantung pada throughput klien yang diinginkan.
  + Buat kebijakan coba ulang kustom yang memastikan bahwa percobaan ulang dijalankan terhadap node yang sama. Untuk informasi selengkapnya, silakan lihat 

    [Cara mengonfigurasi kebijakan coba lagi untuk koneksi di Amazon Keyspaces](connections.md#connections.retry-policies).
  + Jika Anda menggunakan titik akhir VPC, berikan entitas IAM yang digunakan untuk menyambung ke izin akses Amazon Keyspaces untuk menanyakan VPC Anda untuk informasi titik akhir dan antarmuka jaringan. Hal ini meningkatkan load balancing dan meningkatkan read/write throughput. Untuk informasi selengkapnya, lihat [Mengisi entri `system.peers` tabel dengan informasi titik akhir VPC antarmuka](vpc-endpoints.md#system_peers). 

### Saya menerima kesalahan batas waktu tulis selama impor data
<a name="troubleshooting.serverless.writetimeout"></a>

**Anda menerima kesalahan batas waktu saat mengunggah data menggunakan perintah. `cqlsh` `COPY`**

```
Failed to import 1 rows: WriteTimeout - Error from server: code=1100 [Coordinator node timed out waiting for replica nodes' responses]
 message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 2, 'write_type': 'SIMPLE', 'consistency': 
 'LOCAL_QUORUM'}, will retry later, attempt 1 of 100
```

Amazon Keyspaces menggunakan `WriteTimeout` pengecualian `ReadTimeout` dan untuk menunjukkan kapan permintaan tulis gagal karena kapasitas throughput yang tidak mencukupi. Untuk membantu mendiagnosis pengecualian kapasitas yang tidak mencukupi, Amazon Keyspaces menerbitkan metrik berikut di Amazon. CloudWatch
+ `WriteThrottleEvents`
+ `ReadThrottledEvents`
+ `StoragePartitionThroughputCapacityExceeded`

Untuk mengatasi kesalahan kapasitas yang tidak memadai selama pemuatan data, turunkan tingkat penulisan per pekerja atau tingkat konsumsi total, lalu coba lagi untuk mengunggah baris. Untuk informasi selengkapnya, lihat [Langkah 4: Konfigurasikan `cqlsh COPY FROM` pengaturan](bulk-upload-config.md). Untuk opsi unggah data yang lebih kuat, pertimbangkan untuk menggunakan DSBulk, yang tersedia dari [GitHub repositori](https://github.com/datastax/dsbulk). Untuk step-by-step instruksi, lihat[Tutorial: Memuat data ke Amazon Keyspaces menggunakan DSBulk](dsbulk-upload.md).

### Saya tidak dapat melihat ukuran penyimpanan sebenarnya dari ruang kunci atau tabel
<a name="troubleshooting.serverless.storagesize"></a>

**Anda tidak dapat melihat ukuran penyimpanan sebenarnya dari keyspace atau tabel.**

Untuk mempelajari lebih lanjut tentang ukuran penyimpanan tabel Anda, lihat[Evaluasi biaya Anda di tingkat tabel](CostOptimization_TableLevelCostAnalysis.md). Anda juga dapat memperkirakan ukuran penyimpanan dengan mulai menghitung ukuran baris dalam tabel. Instruksi terperinci untuk menghitung ukuran baris tersedia di[Perkirakan ukuran baris di Amazon Keyspaces](calculating-row-size.md).

# Memecahkan masalah kesalahan bahasa definisi data di Amazon Keyspaces
<a name="troubleshooting.cql"></a>

Kesulitan menciptakan sumber daya? Berikut adalah beberapa masalah umum dan cara mengatasinya.

## Kesalahan bahasa definisi data
<a name="troubleshooting-cql"></a>

Amazon Keyspaces melakukan operasi bahasa definisi data (DDL) secara asinkron—misalnya, membuat dan menghapus ruang kunci dan tabel. Jika aplikasi mencoba menggunakan sumber daya sebelum siap, operasi gagal.

Anda dapat memantau status pembuatan ruang kunci dan tabel baru di Konsol Manajemen AWS, yang menunjukkan kapan ruang kunci atau tabel tertunda atau aktif. Anda juga dapat memantau status pembuatan keyspace atau tabel baru secara terprogram dengan menanyakan tabel skema sistem. Sebuah keyspace atau tabel menjadi terlihat dalam skema sistem ketika sudah siap untuk digunakan. 

**catatan**  
Untuk mengoptimalkan pembuatan ruang kunci menggunakan CloudFormation, Anda dapat menggunakan utilitas ini untuk mengonversi skrip CQL menjadi templat. CloudFormation Alat ini tersedia dari [GitHub repositori](https://github.com/aws/amazon-keyspaces-cql-to-cfn-converter).

**Topics**
+ [Kesalahan pembuatan keyspace](#troubleshooting.cql.keyspace)
+ [Kesalahan pembuatan tabel](#troubleshooting.cql.table)
+ [Saya mencoba memulihkan tabel menggunakan pemulihan Amazon Keyspaces (PITR), tetapi point-in-time pemulihan gagal](#troubleshooting.cql.pitr)
+ [Saya mencoba menggunakan INSERT/UPDATE untuk mengedit pengaturan Time to Live (TTL) kustom, tetapi operasi gagal](#troubleshooting.cql.ttl)
+ [Kolom terlampaui](#troubleshooting.cql.upload)
+ [Kesalahan penghapusan rentang](#troubleshooting.cql.rangedelete)

### Saya membuat ruang kunci baru, tetapi saya tidak dapat melihat atau mengaksesnya
<a name="troubleshooting.cql.keyspace"></a>

**Anda menerima kesalahan dari aplikasi Anda yang mencoba mengakses keyspace baru.**

Jika Anda mencoba mengakses ruang kunci Amazon Keyspaces yang baru dibuat yang masih dibuat secara asinkron, Anda akan mendapatkan kesalahan. Kesalahan berikut adalah contohnya.

```
InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured keyspace mykeyspace"
```

Pola desain yang disarankan untuk memeriksa kapan ruang kunci baru siap digunakan adalah dengan melakukan polling tabel skema sistem Amazon Keyspaces (system\$1schema\$1mcs.\$1). 

Untuk informasi selengkapnya, lihat [Periksa status pembuatan keyspace di Amazon Keyspaces](keyspaces-create.md).

### Saya membuat tabel baru, tetapi saya tidak dapat melihat atau mengaksesnya
<a name="troubleshooting.cql.table"></a>

**Anda menerima kesalahan dari aplikasi Anda yang mencoba mengakses tabel baru.**

Jika Anda mencoba mengakses tabel Amazon Keyspaces yang baru dibuat yang masih dibuat secara asinkron, Anda akan mendapatkan kesalahan. Misalnya, mencoba menanyakan tabel yang tidak tersedia namun gagal dengan `unconfigured table` kesalahan. 

```
InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured table mykeyspace.mytable"
```

Mencoba melihat tabel dengan `sync_table()` gagal dengan a`KeyError`.

```
KeyError: 'mytable'
```

Pola desain yang disarankan untuk memeriksa kapan tabel baru siap digunakan adalah dengan melakukan polling tabel skema sistem Amazon Keyspaces (system\$1schema\$1mcs.\$1). 

Ini adalah contoh output untuk tabel yang sedang dibuat.

```
user-at-123@cqlsh:system_schema_mcs> select table_name,status from system_schema_mcs.tables where keyspace_name='example_keyspace' and table_name='example_table';

table_name | status

------------+----------

example_table | CREATING

(1 rows)
```

Ini adalah contoh output untuk tabel yang aktif.

```
user-at-123@cqlsh:system_schema_mcs> select table_name,status from system_schema_mcs.tables where keyspace_name='example_keyspace' and table_name='example_table';

table_name | status

------------+----------

example_table | ACTIVE

(1 rows)
```

Untuk informasi selengkapnya, lihat [Periksa status pembuatan tabel di Amazon Keyspaces](tables-create.md).

### Saya mencoba memulihkan tabel menggunakan pemulihan Amazon Keyspaces (PITR), tetapi point-in-time pemulihan gagal
<a name="troubleshooting.cql.pitr"></a>

Jika Anda mencoba memulihkan tabel Amazon Keyspaces dengan point-in-time pemulihan (PITR), dan Anda melihat proses pemulihan dimulai tetapi tidak berhasil diselesaikan, Anda mungkin belum mengonfigurasi semua izin yang diperlukan yang diperlukan oleh proses pemulihan untuk tabel khusus ini. 

Selain izin pengguna, Amazon Keyspaces mungkin memerlukan izin untuk melakukan tindakan selama proses pemulihan atas nama kepala sekolah Anda. Ini adalah kasus jika tabel dienkripsi dengan kunci yang dikelola pelanggan, atau jika Anda menggunakan kebijakan IAM yang membatasi lalu lintas masuk. 

Misalnya, jika Anda menggunakan kunci kondisi dalam kebijakan IAM Anda untuk membatasi lalu lintas sumber ke titik akhir atau rentang IP tertentu, operasi pemulihan gagal. Untuk mengizinkan Amazon Keyspaces menjalankan operasi pemulihan tabel atas nama kepala sekolah, Anda harus menambahkan kunci kondisi `aws:ViaAWSService` global dalam kebijakan IAM.

Untuk informasi selengkapnya tentang izin untuk memulihkan tabel, lihat[Konfigurasikan izin IAM tabel pemulihan untuk Amazon Keyspaces PITR](howitworks_restore_permissions.md).

### Saya mencoba menggunakan INSERT/UPDATE untuk mengedit pengaturan Time to Live (TTL) kustom, tetapi operasi gagal
<a name="troubleshooting.cql.ttl"></a>

Jika Anda mencoba menyisipkan atau memperbarui nilai TTL kustom, operasi mungkin gagal dengan kesalahan berikut. 

```
TTL is not yet supported.
```

Untuk menentukan nilai TTL kustom untuk baris atau kolom dengan menggunakan `INSERT` atau `UPDATE` operasi, Anda harus terlebih dahulu mengaktifkan TTL untuk tabel. Anda dapat mengaktifkan TTL untuk tabel menggunakan properti `ttl` kustom.

Untuk informasi selengkapnya tentang mengaktifkan pengaturan TTL kustom untuk tabel, lihat. [Perbarui tabel dengan Custom Time to Live (TTL)](TTL-how-to-enable-custom-alter.md)

### Saya mencoba mengunggah data ke tabel Amazon Keyspaces saya dan saya mendapatkan kesalahan tentang melebihi jumlah kolom
<a name="troubleshooting.cql.upload"></a>

**Anda mengunggah data dan telah melampaui jumlah kolom yang dapat diperbarui secara bersamaan.**

Kesalahan ini terjadi ketika skema tabel Anda melebihi ukuran maksimum 350 KB. Untuk informasi selengkapnya, lihat [Kuota untuk Amazon Keyspaces (untuk Apache Cassandra)](quotas.md).

### Saya mencoba menghapus data di tabel Amazon Keyspaces saya dan penghapusan gagal untuk rentang tersebut
<a name="troubleshooting.cql.rangedelete"></a>

**Anda mencoba menghapus data dengan kunci partisi dan menerima kesalahan penghapusan rentang.**

Kesalahan ini terjadi ketika Anda mencoba menghapus lebih dari 1.000 baris dalam satu operasi penghapusan. 

```
Range delete requests are limited by the amount of items that can be deleted in a single range.
```

Untuk informasi selengkapnya, lihat [Hapus rentang](functional-differences.md#functional-differences.range-delete).

Untuk menghapus lebih dari 1.000 baris dalam satu partisi, pertimbangkan opsi berikut.
+ Hapus dengan partisi - Jika mayoritas partisi berada di bawah 1.000 baris, Anda dapat mencoba menghapus data dengan partisi. Jika partisi berisi lebih dari 1.000 baris, cobalah untuk menghapus dengan kolom pengelompokan sebagai gantinya.
+ Hapus dengan pengelompokan kolom - Jika model Anda berisi beberapa kolom pengelompokan, Anda dapat menggunakan hierarki kolom untuk menghapus beberapa baris. Kolom pengelompokan adalah struktur bersarang, dan Anda dapat menghapus banyak baris dengan beroperasi pada kolom tingkat atas.
+ Hapus berdasarkan baris individual - Anda dapat mengulangi baris dan menghapus setiap baris dengan kunci utama lengkapnya (kolom partisi dan kolom pengelompokan).
+ Sebagai praktik terbaik, pertimbangkan untuk membagi baris Anda di seluruh partisi — Di Amazon Keyspaces, kami menyarankan Anda mendistribusikan throughput Anda di seluruh partisi tabel. Ini mendistribusikan data dan akses secara merata di seluruh sumber daya fisik, yang memberikan throughput terbaik. Untuk informasi selengkapnya, lihat [Praktik terbaik pemodelan data: rekomendasi untuk merancang model data](data-modeling.md).

Pertimbangkan juga rekomendasi berikut saat Anda berencana menghapus operasi untuk beban kerja yang berat.
+ Dengan Amazon Keyspaces, partisi dapat berisi jumlah baris yang hampir tidak terbatas. Ini memungkinkan Anda untuk menskalakan partisi “lebih luas” daripada panduan Cassandra tradisional 100 MB. Tidak jarang deret waktu atau buku besar tumbuh lebih dari satu gigabyte data dari waktu ke waktu.
+ Dengan Amazon Keyspaces, tidak ada strategi pemadatan atau batu nisan yang perlu dipertimbangkan ketika Anda harus melakukan operasi penghapusan untuk beban kerja yang berat. Anda dapat menghapus data sebanyak yang Anda inginkan tanpa memengaruhi kinerja baca.