

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

# Perbedaan dalam memindai tabel
<a name="SQLtoNoSQL.ReadData.Scan"></a>

Dalam SQL, pernyataan `SELECT` tanpa sebuah klausul `WHERE` akan mengembalikan setiap baris dalam sebuah tabel. Di Amazon DynamoDB, operasi `Scan` melakukan hal yang sama. Dalam kedua kasus, Anda dapat mengambil semua item atau hanya beberapa item.

Entah Anda menggunakan basis data SQL atau NoSQL, pindaian tidak boleh sering digunakan karena pindaian dapat mengonsumsi sejumlah besar sumber daya sistem. Terkadang pemindaian layak digunakan (seperti memindai tabel kecil) atau tidak dapat dihindari (seperti melakukan ekspor data secara massal). Namun, sebagai aturan umum, Anda harus merancang aplikasi Anda agar tidak melakukan pemindaian. Untuk informasi selengkapnya, lihat [Menanyakan tabel di DynamoDB](Query.md).

**catatan**  
Melakukan ekspor massal juga membuat setidaknya 1 file per partisi. Semua item di setiap file berasal dari keyspace hash partisi tertentu.

**Topics**
+ [Memindai tabel dengan SQL](#SQLtoNoSQL.ReadData.Scan.SQL)
+ [Memindai tabel di DynamoDB](#SQLtoNoSQL.ReadData.Scan.DynamoDB)

## Memindai tabel dengan SQL
<a name="SQLtoNoSQL.ReadData.Scan.SQL"></a>

Saat menggunakan SQL Anda dapat memindai tabel dan mengambil semua data dengan menggunakan pernyataan `SELECT` tanpa menentukan klausul `WHERE`. Anda dapat meminta satu kolom atau lebih dalam hasil. Atau, Anda dapat meminta semuanya jika Anda menggunakan karakter wildcard (\$1).

Berikut ini adalah contoh-contoh penggunaan pernyataan `SELECT`.

```
/* Return all of the data in the table */
SELECT * FROM Music;
```

```
/* Return all of the values for Artist and Title */
SELECT Artist, Title FROM Music;
```

## Memindai tabel di DynamoDB
<a name="SQLtoNoSQL.ReadData.Scan.DynamoDB"></a>

Di Amazon DynamoDB, Anda dapat menggunakan DynamoDB API atau [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (bahasa kueri yang kompatibel dengan SQL) untuk melakukan pemindaian pada tabel.

------
#### [ DynamoDB API ]

Dengan DynamoDB API, Anda menggunakan operasi `Scan` untuk mengembalikan satu atribut item dan item dengan mengakses setiap item dalam tabel atau indeks sekunder.

```
// Return all of the data in the table
{
    TableName:  "Music"
}
```

```
// Return all of the values for Artist and Title
{
    TableName:  "Music",
    ProjectionExpression: "Artist, Title"
}
```

Operasi `Scan` ini juga menyediakan parameter `FilterExpression`, yang dapat Anda gunakan untuk membuang item yang tidak ingin Anda tampilkan di hasil. Sebuah `FilterExpression` diterapkan setelah pemindaian dilakukan, namun sebelum hasilnya dikembalikan kepada Anda. (Ini tidak dianjurkan dengan tabel besar. Anda masih dikenakan biaya untuk seluruh `Scan`, bahkan jika hanya beberapa item yang cocok dikembalikan.)

------
#### [ PartiQL for DynamoDB ]

Dengan PartiQL, Anda melakukan pemindaian dengan menggunakan operasi `ExecuteStatement` untuk mengembalikan semua konten untuk tabel menggunakan pernyataan `Select`.

```
SELECT AlbumTitle, Year, Price
FROM Music
```

Ingat bahwa pernyataan ini akan mengembalikan semua item untuk dalam tabel Music. 

Untuk contoh kode menggunakan `Select` dan `ExecuteStatement`, lihat [Pernyataan pemilihan PartiQL untuk DynamoDB](ql-reference.select.md).

------