

 Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, 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/) yang diterbitkan pada 30 Juni 2025. 

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

# Memulai dengan Amazon Redshift Spectrum
<a name="c-getting-started-using-spectrum"></a>

Dalam tutorial ini, Anda mempelajari cara menggunakan Amazon Redshift Spectrum untuk menanyakan data langsung dari file di Amazon S3. Jika Anda sudah memiliki cluster dan klien SQL, Anda dapat menyelesaikan tutorial ini dengan pengaturan minimal. 

**catatan**  
Pada cluster yang disediakan RG, kueri data lake berjalan pada sumber daya komputasi cluster sendiri daripada pada server Redshift Spectrum khusus. Demikian pula, Amazon Redshift Serverless memproses kueri data lake menggunakan kapasitas komputasinya sendiri. Untuk informasi tentang penggunaan kueri danau data terintegrasi di RG dan Redshift Serverless, lihat Mengkueri danau data [ Anda. ](https://docs.aws.amazon.com/redshift/latest/gsg/data-lake.html)

**catatan**  
Kueri Redshift Spectrum dikenakan biaya tambahan. Biaya menjalankan kueri sampel dalam tutorial ini adalah nominal. Untuk informasi selengkapnya tentang harga, lihat harga [https://aws.amazon.com/redshift/pricing/#redshift-spectrum-pricing](https://aws.amazon.com/redshift/pricing/#redshift-spectrum-pricing) Amazon Redshift Spectrum.

## Prasyarat
<a name="c-getting-started-using-spectrum-prerequisites"></a>

Untuk menggunakan Redshift Spectrum, Anda memerlukan cluster Amazon Redshift dan klien SQL yang terhubung ke cluster Anda sehingga Anda dapat menjalankan perintah SQL. Cluster dan file data di Amazon S3 harus sama Wilayah AWS. 

Untuk informasi tentang cara membuat cluster Amazon Redshift, lihat Mem [ ulai dengan gudang data yang disediakan Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/gsg/new-user.html) di Panduan Memulai * Amazon Redshift. * Untuk informasi tentang cara menyambung ke cluster, lihat Mengh [ ubungkan ke gudang data Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/gsg/database-tasks.html) di Panduan * Memulai Amazon Redshift. *

Dalam beberapa contoh berikut, data sampel berada di Wilayah AS Timur (Virginia Utara) (`us-east-1`), jadi Anda memerlukan cluster yang juga ada di`us-east-1`. Atau, Anda dapat menggunakan Amazon S3 untuk menyalin objek data dari bucket dan folder berikut ke bucket Anda di Wilayah AWS tempat cluster Anda berada: 
+ `s3://redshift-downloads/tickit/spectrum/customers/*`
+ `s3://redshift-downloads/tickit/spectrum/sales_partition/*`
+ `s3://redshift-downloads/tickit/spectrum/sales/*`
+ `s3://redshift-downloads/tickit/spectrum/salesevent/*`

Jalankan perintah Amazon S3 yang serupa dengan berikut ini untuk menyalin data sampel yang terletak di AS Timur (Virginia Utara) ke Anda Wilayah AWS. Sebelum menjalankan perintah, buat bucket dan folder di bucket agar sesuai dengan perintah salin Amazon S3 Anda. Output dari perintah sal {{bucket-name}} in Amazon S3 mengonfirmasi bahwa file disalin ke yang Anda inginkan Wilayah AWS.

```
aws s3 cp s3://redshift-downloads/tickit/spectrum/ s3://{{bucket-name}}/tickit/spectrum/ --copy-props none --recursive
```

## Memulai dengan Redshift Spectrum menggunakan AWS CloudFormation
<a name="c-getting-started-using-spectrum-cfn"></a>

Sebagai alternatif dari langkah-langkah berikut, Anda dapat mengakses DataLake AWS CloudFormation template Redshift Spectrum untuk membuat tumpukan dengan bucket Amazon S3 yang dapat Anda kueri. Untuk informasi selengkapnya, lihat [Luncurkan Anda AWS CloudFormation susun dan kemudian kueri data Anda di Amazon S3](#c-getting-started-using-spectrum-query-s3-data-cfn).

## Memulai dengan Redshift Spectrum langkah demi langkah
<a name="c-getting-started-using-spectrum-steps"></a>

Untuk mulai menggunakan Amazon Redshift Spectrum, ikuti langkah-langkah berikut:
+ [Langkah 1. Membuat peran IAM untuk Amazon Redshift](#c-getting-started-using-spectrum-create-role) 
+ [Langkah 2: Mengaitkan peran IAM dengan cluster Anda](#c-getting-started-using-spectrum-add-role) 
+ [Langkah 3: Buat skema eksternal dan tabel eksternal](#c-getting-started-using-spectrum-create-external-table) 
+ [Langkah 4: Kueri data Anda di Amazon S3](#c-getting-started-using-spectrum-query-s3-data) 

## Langkah 1. Membuat peran IAM untuk Amazon Redshift
<a name="c-getting-started-using-spectrum-create-role"></a>

Cluster Anda memerlukan otorisasi untuk mengakses Katalog Data eksternal Anda di AWS Glue atau Amazon Athena dan file data Anda di Amazon S3. Untuk memberikan otorisasi itu, Anda mereferensi AWS Identity and Access Management kan peran (IAM) yang dilampirkan ke cluster Anda. Untuk informasi selengkapnya tentang menggunakan peran dengan Amazon Redshift, lihat Mengotor [ isasi Operasi COPY dan UNLOAD Menggunakan Peran IAM. ](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html)

**catatan**  
Dalam kasus tertentu, Anda dapat memigrasikan Katalog Data Athena Anda ke Katalog AWS Glue Data. Anda dapat melakukan ini jika cluster Anda berada di Wil AWS ayah yang AWS Glue didukung dan Anda memiliki tabel eksternal Redshift Spectrum di Katalog Data Athena. Untuk menggunakan Katalog AWS Glue Data dengan Redshift Spectrum, Anda mungkin perlu mengubah kebijakan IAM Anda. Untuk informasi selengkapnya, lihat Meng [ upgrade ke Katalog AWS Glue Data ](https://docs.aws.amazon.com/athena/latest/ug/glue-athena.html#glue-upgrade) di Panduan * * Pengguna Athena.

Saat Anda membuat peran untuk Amazon Redshift, pilih salah satu pendekatan berikut:
+ Jika Anda menggunakan Redshift Spectrum dengan Katalog Data Athena atau AWS Glue Katalog Data, ikuti langkah-langkah yang diuraikan di. [Cara membuat peran IAM untuk Amazon Redshift](#spectrum-get-started-create-role) 
+ Jika Anda menggunakan Redshift Spectrum dengan AWS Glue Data Catalog yang diaktifkan untuk AWS Lake Formation, ikuti langkah-langkah yang diuraikan dalam prosedur ini:
  +  [Untuk membuat peran IAM untuk Amazon Redshift menggunakan AWS Glue Data Catalog diaktifkan untuk AWS Lake Formation](#spectrum-get-started-create-role-lake-formation) 
  +  [Untuk memberikan izin SELECT pada tabel untuk melakukan kueri di database Lake Formation](#spectrum-get-started-grant-lake-formation-table) <a name="spectrum-get-started-create-role"></a>

**Cara membuat peran IAM untuk Amazon Redshift**

1. Buka [konsol IAM](https://console.aws.amazon.com/iam/home?#home).

1. Di panel navigasi, pilih **Peran**.

1. Pilih **Buat peran**.

1. Pilih **AWS layanan ** sebagai entitas tepercaya, lalu pilih ** Redshift ** sebagai kasus penggunaan.

1. Di bawah ** Use case for other Layanan AWS**, pilih ** Redshift - Disesuaikan, ** lalu pilih Ber ** ikutnya**.

1. **Halaman kebijakan Tam ** bah izin muncul. Pilih `AmazonS3ReadOnlyAccess` dan`AWSGlueConsoleFullAccess`, jika Anda menggunakan Katalog AWS Glue Data. Atau pilih `AmazonAthenaFullAccess` apakah Anda menggunakan Katalog Data Athena. Pilih **Berikutnya**.
**catatan**  
`AmazonS3ReadOnlyAccess`Kebijakan ini memberikan akses read-only cluster ke semua bucket Amazon S3. Untuk memberikan akses hanya ke bucket data AWS sampel, buat kebijakan baru dan tambahkan izin berikut.  

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:Get*",
                   "s3:List*"
               ],
               "Resource": "arn:aws:s3:::redshift-downloads/*"
           }
       ]
   }
   ```

1. Untuk Nama ** Per ** an, masukkan nama untuk peran Anda, misalnya**myspectrum\_role**.

1. Tinjau informasi, lalu pilih ** Buat peran**.

1. Di panel navigasi, pilih **Peran**. Pilih nama peran baru Anda untuk melihat ringkasan, lalu salin ** Role ARN ** ke clipboard Anda. Nilai ini adalah Nama Sumber Daya Amazon (ARN) untuk peran yang baru saja Anda buat. Anda menggunakan nilai itu saat membuat tabel eksternal untuk mereferensikan file data Anda di Amazon S3.<a name="spectrum-get-started-create-role-lake-formation"></a>

**Untuk membuat peran IAM untuk Amazon Redshift menggunakan AWS Glue Data Catalog diaktifkan untuk AWS Lake Formation**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Kebijakan**.

   Jika ini pertama kalinya Anda memilih **Kebijakan**, akan muncul halaman **Selamat Datang di Kebijakan Terkelola**. Pilih **Memulai**.

1. Pilih **Buat kebijakan**. 

1. Pilih untuk membuat kebijakan pada ** tab ** JSON. 

1. Tempel di dokumen kebijakan JSON berikut, yang memberikan akses ke Katalog Data tetapi menolak izin administrator untuk Formasi Danau.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "RedshiftPolicyForLF",
               "Effect": "Allow",
               "Action": [
                   "glue:*",
                   "lakeformation:GetDataAccess"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Setelah selesai, pilih T ** injau ** untuk meninjau kebijakan. Validator kebijakan melaporkan kesalahan sintaksis.

1. Pada ** ** halaman Kebijakan Tinjauan, untuk ** Nama ** masukkan **myspectrum\_policy** untuk memberi nama kebijakan yang Anda buat. Masukkan ** Deskripsi ** (opsional). Ulas **Ringkasan** kebijakan untuk melihat izin yang diberikan oleh kebijakan Anda. Kemudian pilih **Buat kebijakan** untuk menyimpan pekerjaan Anda.

   Setelah membuat kebijakan, Anda dapat memberikan akses ke pengguna Anda.

Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:
+ Pengguna dan grup di AWS IAM Identity Center:

  Buat rangkaian izin. Ikuti instruksi di [Buat rangkaian izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html) dalam *Panduan Pengguna AWS IAM Identity Center *.
+ Pengguna yang dikelola di IAM melalui penyedia identitas:

  Buat peran untuk federasi identitas. Ikuti instruksi dalam [Buat peran untuk penyedia identitas pihak ketiga (federasi)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*.
+ Pengguna IAM:
  + Buat peran yang dapat diambil pengguna Anda. Ikuti instruksi dalam [Buat peran untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.
  + (Tidak disarankan) Lampirkan kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk dalam [Menambahkan izin ke pengguna (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.<a name="spectrum-get-started-grant-lake-formation-table"></a>

**Untuk memberikan izin SELECT pada tabel untuk melakukan kueri di database Lake Formation**

1. Buka konsol Formasi Danau di [ https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Di panel navigasi, pilih ** Izin data lake**, lalu pilih ** Grant**.

1. Ikuti petunjuk dalam Mem [ berikan izin tabel menggunakan metode sumber daya bernama ](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-table-permissions.html) di Panduan Peng *AWS Lake Formation embang*. Saat diminta, berikan informasi berikut:
   + Untuk peran ** IAM**, pilih peran IAM yang Anda buat. `myspectrum_role` Saat Anda menjalankan Amazon Redshift Query Editor, ia menggunakan peran IAM ini untuk izin ke data. 
**catatan**  
Untuk memberikan izin SELECT pada tabel dalam Katalog Data yang diaktifkan Lake Formation untuk kueri, lakukan hal berikut:  
Daftarkan jalur untuk data di Formasi Danau. 
Berikan izin pengguna ke jalur itu di Formasi Danau. 
Tabel yang dibuat dapat ditemukan di jalur yang terdaftar di Formasi Danau. 

1. Pilih**Izin**.

**penting**  
Sebagai praktik terbaik, izinkan akses hanya ke objek Amazon S3 yang mendasarinya melalui izin Lake Formation. Untuk mencegah akses yang tidak disetujui, hapus izin yang diberikan kepada objek Amazon S3 di luar Danau Formation. Jika sebelumnya Anda mengakses objek Amazon S3 sebelum menyiapkan Lake Formation, hapus kebijakan IAM atau izin bucket yang sebelumnya telah disiapkan. Untuk informasi selengkapnya, lihat [ Mengupgrade AWS Glue Izin Data ke AWS Lake Formation Model ](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html) dan Izin Formasi [ Danau](https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html). 

## Langkah 2: Mengaitkan peran IAM dengan cluster Anda
<a name="c-getting-started-using-spectrum-add-role"></a>

Sekarang Anda memiliki peran IAM yang memberi wewenang kepada Amazon Redshift untuk mengakses Katalog Data eksternal dan Amazon S3 untuk Anda. Pada titik ini, Anda harus mengaitkan peran itu dengan cluster Amazon Redshift Anda.

**Untuk mengaitkan peran IAM dengan cluster**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Redshift di [ https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. Pada menu navigasi, pilih ** Cluster**, lalu pilih nama cluster yang ingin Anda perbarui. 

1. Untuk T ** ind ** akan, pilih ** Kelola peran ** IAM. **Halaman peran ** IAM muncul. 

1. Pilih ** Enter ARN ** lalu masukkan peran ARN atau IAM, atau pilih peran IAM dari daftar. Kemudian pilih ** Tambahkan peran IAM ** untuk menambahkannya ke daftar peran IAM ** Terlampir. ** 

1. Pilih ** Selesai ** untuk mengaitkan peran IAM dengan cluster. Cluster dimodifikasi untuk menyelesaikan perubahan. 

## Langkah 3: Buat skema eksternal dan tabel eksternal
<a name="c-getting-started-using-spectrum-create-external-table"></a>

Buat tabel eksternal dalam skema eksternal. Skema eksternal mereferensikan database dalam katalog data eksternal dan menyediakan peran IAM ARN yang mengotorisasi cluster Anda untuk mengakses Amazon S3 atas nama Anda. Anda dapat membuat database eksternal di Katalog Data Amazon Athena, AWS Glue Data Catalog, atau metastore Apache Hive, seperti Amazon EMR. Untuk contoh ini, Anda membuat database eksternal di Katalog Data Amazon Athena saat Anda membuat skema eksternal Amazon Redshift. Untuk informasi selengkapnya, lihat [Skema eksternal di Amazon Redshift Spectrum](c-spectrum-external-schemas.md). <a name="spectrum-get-started-create-external-table"></a>

**Untuk membuat skema eksternal dan tabel eksternal**

1. Untuk membuat skema eksternal, ganti peran IAM ARN dalam perintah berikut dengan peran ARN yang Anda buat pada [ langkah 1](#c-getting-started-using-spectrum-create-role). Kemudian jalankan perintah di klien SQL Anda.

   ```
   create external schema myspectrum_schema 
   from data catalog 
   database 'myspectrum_db' 
   iam_role 'arn:aws:iam::123456789012:role/myspectrum_role'
   create external database if not exists;
   ```

1. Untuk membuat tabel eksternal, jalankan perintah CREATE EXTERNAL TABLE berikut.
**catatan**  
Cluster Anda dan bucket Amazon S3 harus sama Wilayah AWS. Untuk contoh perintah CREATE EXTERNAL TABLE ini, bucket Amazon S3 dengan data sampel terletak di AS Timur (Virginia Utara) Wilayah AWS. Untuk melihat data sumber, unduh [`sales_ts.000` file](https://s3.amazonaws.com/redshift-downloads/tickit/spectrum/sales/sales_ts.000).   
Anda dapat memodifikasi contoh ini untuk berjalan di yang berbeda Wilayah AWS. Buat bucket Amazon S3 sesuai keinginan Anda Wilayah AWS. Salin data penjualan dengan perintah salin Amazon S3. Kemudian perbarui opsi lokasi dalam `CREATE EXTERNAL TABLE` perintah contoh ke bucket Anda.  

   ```
   aws s3 cp s3://redshift-downloads/tickit/spectrum/sales/ s3://{{bucket-name}}/tickit/spectrum/sales/ --copy-props none --recursive
   ```
Output dari perintah sal {{bucket-name}} in Amazon S3 mengonfirmasi bahwa file telah disalin ke yang Anda inginkan Wilayah AWS.  

   ```
   copy: s3://redshift-downloads/tickit/spectrum/sales/sales_ts.000 to s3://{{bucket-name}}/tickit/spectrum/sales/sales_ts.000
   ```

   ```
   create external table myspectrum_schema.sales(
   salesid integer,
   listid integer,
   sellerid integer,
   buyerid integer,
   eventid integer,
   dateid smallint,
   qtysold smallint,
   pricepaid decimal(8,2),
   commission decimal(8,2),
   saletime timestamp)
   row format delimited
   fields terminated by '\t'
   stored as textfile
   location 's3://redshift-downloads/tickit/spectrum/sales/'
   table properties ('numRows'='172000');
   ```

## Langkah 4: Kueri data Anda di Amazon S3
<a name="c-getting-started-using-spectrum-query-s3-data"></a>

Setelah tabel eksternal dibuat, Anda dapat menanyakan tabel tersebut menggunakan pernyataan SELECT yang sama yang Anda gunakan untuk menanyakan tabel Amazon Redshift lainnya. Kueri pernyataan SELECT ini termasuk menggabungkan tabel, mengumpulkan data, dan memfilter predikat. <a name="spectrum-get-started-query-s3-data"></a>

**Untuk menanyakan data Anda di Amazon S3**

1. Dapatkan jumlah baris dalam tabel MYSPECTRUM\_SCHEMA.SALES . 

   ```
   select count(*) from myspectrum_schema.sales;
   ```

   ```
   count 
   ------
   172462
   ```

1. Simpan tabel fakta yang lebih besar di Amazon S3 dan tabel dimensi yang lebih kecil di Amazon Redshift, sebagai praktik terbaik. Jika Anda memuat data sampel di [ Load data](https://docs.aws.amazon.com/redshift/latest/gsg/cm-dev-t-load-sample-data.html), Anda memiliki tabel bernama EVENT di database Anda. Jika tidak, buat tabel EVENT dengan menggunakan perintah berikut.

   ```
   create table event(
   eventid integer not null distkey,
   venueid smallint not null,
   catid smallint not null,
   dateid smallint not null sortkey,
   eventname varchar(200),
   starttime timestamp);
   ```

1. Muat tabel EVENT dengan mengganti peran IAM ARN dalam perintah COPY berikut dengan peran ARN yang Anda buat. [Langkah 1. Membuat peran IAM untuk Amazon Redshift](#c-getting-started-using-spectrum-create-role) Anda dapat secara opsional mengunduh dan melihat data [ sumber untuk `allevents_pipe.txt`](https://s3.amazonaws.com/redshift-downloads/tickit/allevents_pipe.txt) dari bucket Amazon S3 di Wilayah AWS `us-east-1`.

   ```
   copy event from 's3://redshift-downloads/tickit/allevents_pipe.txt' 
   iam_role 'arn:aws:iam::123456789012:role/myspectrum_role'
   delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS' region 'us-east-1';
   ```

   Contoh berikut menggabungkan tabel Amazon S3 eksternal MYSPECTRUM\_ SCHEMA.SALES dengan EVENT tabel Amazon Redshift lokal untuk menemukan total penjualan untuk 10 acara teratas.

   ```
   select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event
   where myspectrum_schema.sales.eventid = event.eventid
   and myspectrum_schema.sales.pricepaid > 30
   group by myspectrum_schema.sales.eventid
   order by 2 desc;
   ```

   ```
   eventid | sum     
   --------+---------
       289 | 51846.00
      7895 | 51049.00
      1602 | 50301.00
       851 | 49956.00
      7315 | 49823.00
      6471 | 47997.00
      2118 | 47863.00
       984 | 46780.00
      7851 | 46661.00
      5638 | 46280.00
   ```

1. Lihat rencana kueri untuk kueri sebelumnya. Perhatikan`S3 Seq Scan`,`S3 HashAggregate`, dan `S3 Query Scan` langkah-langkah yang dijalankan terhadap data di Amazon S3.

   ```
   explain
   select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) 
   from myspectrum_schema.sales, event
   where myspectrum_schema.sales.eventid = event.eventid
   and myspectrum_schema.sales.pricepaid > 30
   group by myspectrum_schema.sales.eventid
   order by 2 desc;
   ```

   ```
   QUERY PLAN                                                                                                                                                                                
   -----------------------------------------------------------------------------
   XN Limit  (cost=1001055770628.63..1001055770628.65 rows=10 width=31)                                                                                                                      
     ->  XN Merge  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                               
           Merge Key: sum(sales.derived_col2)                                                                                                                                                
           ->  XN Network  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                       
                 Send to leader                                                                                                                                                              
                 ->  XN Sort  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                    
                       Sort Key: sum(sales.derived_col2)                                                                                                                                     
                       ->  XN HashAggregate  (cost=1055770620.49..1055770620.99 rows=200 width=31)                                                                                           
                             ->  XN Hash Join DS_BCAST_INNER  (cost=3119.97..1055769620.49 rows=200000 width=31)                                                                             
                                   Hash Cond: ("outer".derived_col1 = "inner".eventid)                                                                                                       
                                   ->  XN S3 Query Scan sales  (cost=3010.00..5010.50 rows=200000 width=31)                                                                                  
                                         ->  S3 HashAggregate  (cost=3010.00..3010.50 rows=200000 width=16)                                                                                  
                                               ->  S3 Seq Scan myspectrum_schema.sales location:"s3://redshift-downloads/tickit/spectrum/sales" format:TEXT  (cost=0.00..2150.00 rows=172000 width=16)
                                                     Filter: (pricepaid > 30.00)                                                                                                             
                                   ->  XN Hash  (cost=87.98..87.98 rows=8798 width=4)                                                                                                        
                                         ->  XN Seq Scan on event  (cost=0.00..87.98 rows=8798 width=4)
   ```

## Luncurkan Anda AWS CloudFormation susun dan kemudian kueri data Anda di Amazon S3
<a name="c-getting-started-using-spectrum-query-s3-data-cfn"></a>

Setelah membuat cluster Amazon Redshift dan terhubung ke cluster, Anda dapat menginstal DataLake AWS CloudFormation template Redshift Spectrum dan kemudian menanyakan data Anda.

CloudFormation menginstal DataLake template Redshift Spectrum Getting Started dan membuat tumpukan yang mencakup hal-hal berikut: 
+ Peran bernama `myspectrum_role` terkait dengan cluster Redshift Anda
+ Skema eksternal bernama `myspectrum_schema`
+ Tabel eksternal yang diberi `sales` nama dalam bucket Amazon S3
+ Tabel Redshift bernama `event` dimuat dengan data

**Untuk meluncurkan tumpukan Redshift Spectrum Getting Started DataLake CloudFormation**

1. Pilih [** Luncurkan tumpukan CFN. **](https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DataLake&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataLake.yml) Kon CloudFormation sol terbuka dengan DataLake.yml template yang dipilih.

   Anda juga dapat mengunduh dan menyesuaikan template Redshift Spectrum Getting Star DataLake CloudFormation [ ted CFN](https://s3.amazonaws.com/redshift-downloads/docs-downloads/DataLake.yml), lalu buka CloudFormation console ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) dan buat tumpukan dengan template yang disesuaikan. 

1. Pilih **Berikutnya**.

1. Di bawah ** Parameter**, masukkan nama cluster Amazon Redshift, nama database, dan nama pengguna database Anda.

1. Pilih **Berikutnya**.

   Opsi tumpukan muncul.

1. Pilih ** Berikutnya ** untuk menerima pengaturan default.

1. Tinjau informasi dan di bawah ** Kemampuan**, dan pilih ** Saya mengakui bahwa AWS CloudFormation mungkin membuat sumber daya ** IAM.

1. Pilih **Buat tumpukan**.

Jika terjadi kesalahan saat tumpukan sedang dibuat, lihat informasi berikut:
+ Lihat ** tab CloudFormation ** Acara untuk informasi yang dapat membantu Anda mengatasi kesalahan.
+ Hapus DataLake CloudFormation tumpukan sebelum mencoba operasi lagi.
+ Pastikan Anda terhubung ke database Amazon Redshift Anda.
+ Pastikan Anda memasukkan informasi yang benar untuk nama cluster Amazon Redshift, nama database, dan nama pengguna database.

### Kueri data Anda di Amazon S3
<a name="c-getting-started-spectrum-cfn-query-s3-data"></a>

Anda menanyakan tabel eksternal menggunakan pernyataan SELECT yang sama yang Anda gunakan untuk menanyakan tabel Amazon Redshift lainnya. Kueri pernyataan SELECT ini termasuk menggabungkan tabel, mengumpulkan data, dan memfilter predikat. 

Kueri berikut mengembalikan jumlah baris dalam tabel `myspectrum_schema.sales` eksternal. 

```
select count(*) from myspectrum_schema.sales;
```

```
count 
------
172462
```

### Bergabunglah dengan tabel eksternal dengan tabel lokal
<a name="c-getting-started-spectrum-cfn-table-join"></a>

Contoh berikut menggabungkan tabel eksternal `myspectrum_schema.sales` dengan tabel lokal `event` untuk menemukan total penjualan untuk 10 acara teratas.

```
select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event
where myspectrum_schema.sales.eventid = event.eventid
and myspectrum_schema.sales.pricepaid > 30
group by myspectrum_schema.sales.eventid
order by 2 desc;
```

```
eventid | sum     
--------+---------
    289 | 51846.00
   7895 | 51049.00
   1602 | 50301.00
    851 | 49956.00
   7315 | 49823.00
   6471 | 47997.00
   2118 | 47863.00
    984 | 46780.00
   7851 | 46661.00
   5638 | 46280.00
```

### Lihat paket kueri
<a name="c-getting-started-spectrum-cfn-query-plan"></a>

Lihat rencana kueri untuk kueri sebelumnya. Perhatikan`S3 Seq Scan`,`S3 HashAggregate`, dan `S3 Query Scan` langkah-langkah yang dijalankan pada data di Amazon S3.

```
explain
select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) 
from myspectrum_schema.sales, event
where myspectrum_schema.sales.eventid = event.eventid
and myspectrum_schema.sales.pricepaid > 30
group by myspectrum_schema.sales.eventid
order by 2 desc;
```

```
QUERY PLAN                                                                                                                                                                                
-----------------------------------------------------------------------------
XN Limit  (cost=1001055770628.63..1001055770628.65 rows=10 width=31)                                                                                                                      
  ->  XN Merge  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                               
        Merge Key: sum(sales.derived_col2)                                                                                                                                                
        ->  XN Network  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                       
              Send to leader                                                                                                                                                              
              ->  XN Sort  (cost=1001055770628.63..1001055770629.13 rows=200 width=31)                                                                                                    
                    Sort Key: sum(sales.derived_col2)                                                                                                                                     
                    ->  XN HashAggregate  (cost=1055770620.49..1055770620.99 rows=200 width=31)                                                                                           
                          ->  XN Hash Join DS_BCAST_INNER  (cost=3119.97..1055769620.49 rows=200000 width=31)                                                                             
                                Hash Cond: ("outer".derived_col1 = "inner".eventid)                                                                                                       
                                ->  XN S3 Query Scan sales  (cost=3010.00..5010.50 rows=200000 width=31)                                                                                  
                                      ->  S3 HashAggregate  (cost=3010.00..3010.50 rows=200000 width=16)                                                                                  
                                            ->  S3 Seq Scan spectrum.sales location:"s3://redshift-downloads/tickit/spectrum/sales" format:TEXT  (cost=0.00..2150.00 rows=172000 width=16)
                                                  Filter: (pricepaid > 30.00)                                                                                                             
                                ->  XN Hash  (cost=87.98..87.98 rows=8798 width=4)                                                                                                        
                                      ->  XN Seq Scan on event  (cost=0.00..87.98 rows=8798 width=4)
```