

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

# Analitik
<a name="analytics-pattern-list"></a>

**Topics**
+ [Menganalisis data Amazon Redshift di Layanan Analisis Microsoft SQL Server](analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services.md)
+ [Analisis dan visualisasikan data JSON bersarang dengan Amazon Athena dan Amazon Quick Sight](analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.md)
+ [Otomatiskan konsumsi data dari AWS Data Exchange Amazon S3](automate-data-ingestion-from-aws-data-exchange-into-amazon-s3.md)
+ [Otomatiskan penegakan enkripsi di AWS Glue menggunakan templat AWS CloudFormation](automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.md)
+ [Membangun pipeline data untuk menyerap, mengubah, dan menganalisis data Google Analytics menggunakan AWS DataOps Development Kit](build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.md)
+ [Buat pipeline pemrosesan video dengan menggunakan Amazon Kinesis Video Streams dan AWS Fargate](build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate.md)
+ [Buat pipeline layanan ETL untuk memuat data secara bertahap dari Amazon S3 ke Amazon Redshift menggunakan AWS Glue](build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue.md)
+ [Membangun mesh data perusahaan dengan Amazon DataZone, AWS CDK, dan AWS CloudFormation](build-enterprise-data-mesh-amazon-data-zone.md)
+ [Hitung value at risk (VaR) dengan menggunakan layanan AWS](calculate-value-at-risk-var-by-using-aws-services.md)
+ [Konfigurasikan akses lintas akun ke Katalog Data AWS Glue bersama menggunakan Amazon Athena](configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.md)
+ [Mengonversi fitur temporal Teradata NORMALIZE ke Amazon Redshift SQL](convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.md)
+ [Mengonversi fitur Teradata RESET WHEN ke Amazon Redshift SQL](convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.md)
+ [Menerapkan dan mengelola data lake tanpa server di AWS Cloud dengan menggunakan infrastruktur sebagai kode](deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code.md)
+ [Menegakkan penandaan kluster EMR Amazon saat diluncurkan](enforce-tagging-of-amazon-emr-clusters-at-launch.md)
+ [Pastikan pencatatan EMR Amazon ke Amazon S3 diaktifkan saat peluncuran](ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch.md)
+ [Hasilkan data pengujian menggunakan pekerjaan AWS Glue dan Python](generate-test-data-using-an-aws-glue-job-and-python.md)
+ [Mengkonsumsi data IoT secara hemat biaya langsung ke Amazon S3 menggunakan AWS IoT Greengrass](cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.md)
+ [Luncurkan pekerjaan Spark di cluster EMR sementara menggunakan fungsi Lambda](launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function.md)
+ [Migrasikan beban kerja Apache Cassandra ke Amazon Keyspaces dengan menggunakan AWS Glue](migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.md)
+ [Migrasikan Oracle Business Intelligence 12c ke AWS Cloud dari server lokal](migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.md)
+ [Migrasi Tumpukan ELK ke Elastic Cloud di AWS](migrate-an-elk-stack-to-elastic-cloud-on-aws.md)
+ [Migrasi data ke AWS Cloud dengan menggunakan Starburst](migrate-data-to-the-aws-cloud-by-using-starburst.md)
+ [Optimalkan konsumsi ETL ukuran file input di AWS](optimize-the-etl-ingestion-of-input-file-size-on-aws.md)
+ [Mengatur pipeline ETL dengan validasi, transformasi, dan partisi menggunakan AWS Step Functions](orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.md)
+ [Lakukan analitik lanjutan menggunakan Amazon Redshift ML](perform-advanced-analytics-using-amazon-redshift-ml.md)
+ [Kueri tabel Amazon DynamoDB dengan SQL dengan menggunakan Amazon Athena](query-amazon-dynamodb-tables-sql-amazon-athena.md)
+ [Akses, kueri, dan gabungkan tabel Amazon DynamoDB menggunakan Athena](access-query-and-join-amazon-dynamodb-tables-using-athena.md)
+ [Siapkan penyortiran khusus bahasa untuk hasil kueri Amazon Redshift menggunakan UDF Python skalar](set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf.md)
+ [Berlangganan fungsi Lambda ke notifikasi acara dari bucket S3 di Wilayah AWS yang berbeda](subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions.md)
+ [Tiga jenis pekerjaan AWS Glue ETL untuk mengonversi data ke Apache Parquet](three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet.md)
+ [Visualisasikan log audit Amazon Redshift menggunakan Amazon Athena dan Amazon QuickSight](visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight.md)
+ [Visualisasikan laporan kredensi IAM untuk semua akun AWS menggunakan Amazon Quick Sight](visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.md)
+ [Lebih banyak pola](analytics-more-patterns-pattern-list.md)

# Menganalisis data Amazon Redshift di Layanan Analisis Microsoft SQL Server
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services"></a>

*Sunil Vora, Amazon Web Services*

## Ringkasan
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-summary"></a>

Pola ini menjelaskan cara menghubungkan dan menganalisis data Amazon Redshift di Microsoft SQL Server Analysis Services, dengan menggunakan Penyedia Intellisoft OLE DB atau CData Penyedia ADO.NET untuk akses database.

Amazon Redshift adalah layanan gudang data dengan skala petabyte yang terkelola penuh di cloud. SQL Server Analysis Services adalah alat pemrosesan analitik online (OLAP) yang dapat Anda gunakan untuk menganalisis data dari data mart dan gudang data seperti Amazon Redshift. Anda dapat menggunakan SQL Server Analysis Services untuk membuat kubus OLAP dari data Anda untuk analisis data yang cepat dan canggih.  

## Prasyarat dan batasan
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-prereqs"></a>

**Asumsi**
+ Pola ini menjelaskan cara menyiapkan SQL Server Analysis Services dan Intellisoft OLE DB Provider atau CData ADO.NET Provider untuk Amazon Redshift pada instans Amazon Elastic Compute Cloud (Amazon). EC2 Atau, Anda dapat menginstal keduanya pada host di pusat data perusahaan Anda.

**Prasyarat**
+ Akun AWS yang aktif
+ Cluster Amazon Redshift dengan kredensil

## Arsitektur
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-architecture"></a>

**Tumpukan teknologi sumber**
+ Klaster Amazon Redshift

**Tumpukan teknologi target**
+ Layanan Analisis Server Microsoft SQL

**Arsitektur sumber dan target**

![\[Menganalisis data Amazon Redshift di Layanan Analisis Microsoft SQL Server\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e444fec0-e00f-4cc6-acc6-4ffc61b654a0/images/6f29dab5-1ea7-452f-9b07-d1d23ae469a2.png)


## Alat
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-tools"></a>
+ [Microsoft Visual Studio 2019 (Edisi Komunitas)](https://visualstudio.microsoft.com/vs/)
+ Penyedia [Intellisoft OLE DB untuk Amazon Redshift (Uji Coba) atau [ CData Penyedia ADO.NET untuk Amazon](https://www.cdata.com/kb/tech/redshift-ado-ssas.rst) Redshift (Uji Coba)](https://www.pgoledb.com/index.php?option=com_filecabinet&view=files&id=1&Itemid=68)

## Epik
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-epics"></a>

### Menganalisis tabel
<a name="analyze-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menganalisis tabel dan data yang akan diimpor. | Identifikasi tabel Amazon Redshift yang akan diimpor dan ukurannya. | DBA | 

### Siapkan EC2 instans dan instal alat
<a name="set-up-ec2-instance-and-install-tools"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan sebuah EC2 instance. | Di akun AWS Anda, buat EC2 instance di subnet pribadi atau publik. | Administrator sistem | 
| Instal alat untuk akses database. | Unduh dan instal Penyedia [Intellisoft OLE DB untuk Amazon Redshift (atau [CData Penyedia ADO.NET untuk](https://www.cdata.com/kb/tech/redshift-ado-ssas.rst) Amazon Redshift](https://www.pgoledb.com/index.php?option=com_filecabinet&view=files&id=1&Itemid=68)).  | Administrator sistem | 
| Instal Visual Studio. | Unduh dan instal [Visual Studio 2019 (Edisi Komunitas)](https://visualstudio.microsoft.com/vs/).  | Administrator sistem | 
| Instal ekstensi. | Instal ekstensi **Microsoft Analysis Services Projects** di Visual Studio. | Administrator sistem | 
| Buat proyek. | Buat proyek model tabular baru di Visual Studio untuk menyimpan data Amazon Redshift Anda. Di Visual Studio, pilih opsi **Analysis Services Tabular Project** saat membuat proyek Anda. | DBA | 

### Buat sumber data dan impor tabel
<a name="create-data-source-and-import-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat sumber data Amazon Redshift. | Buat sumber data Amazon Redshift dengan menggunakan Penyedia DB Intellisoft OLE untuk Amazon Redshift (atau Penyedia ADO.NET CData untuk Amazon Redshift) dan kredensi Amazon Redshift Anda. | Pergeseran Merah Amazon, DBA | 
| Impor tabel. | Pilih dan impor tabel dan tampilan dari Amazon Redshift ke proyek SQL Server Analysis Services Anda. | Pergeseran Merah Amazon, DBA | 

### Bersihkan setelah migrasi
<a name="clean-up-after-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus EC2 instance. | Hapus EC2 instance yang Anda luncurkan sebelumnya. | Administrator sistem | 

## Sumber daya terkait
<a name="analyze-amazon-redshift-data-in-microsoft-sql-server-analysis-services-resources"></a>
+ [Amazon Redshift (dokumentasi](https://docs.aws.amazon.com/redshift/) AWS)
+ [Instal Layanan Analisis SQL Server](https://docs.microsoft.com/en-us/analysis-services/instances/install-windows/install-analysis-services?view=asallproducts-allversions) (dokumentasi Microsoft)
+ [Desainer Model Tabular](https://docs.microsoft.com/en-us/analysis-services/tabular-models/tabular-model-designer-ssas?view=asallproducts-allversions) (dokumentasi Microsoft)
+ [Ikhtisar kubus OLAP untuk analitik lanjutan](https://docs.microsoft.com/en-us/system-center/scsm/olap-cubes-overview?view=sc-sm-2019) (dokumentasi Microsoft)
+ [Microsoft Visual Studio 2019 (Edisi Komunitas)](https://visualstudio.microsoft.com/vs/)
+ [Penyedia Intellisoft OLE DB untuk Amazon Redshift (Uji Coba)](https://www.pgoledb.com/index.php?option=com_filecabinet&view=files&id=1&Itemid=68) 
+ [CData Penyedia ADO.NET untuk Amazon Redshift (Uji Coba)](https://www.cdata.com/kb/tech/redshift-ado-ssas.rst)

# Analisis dan visualisasikan data JSON bersarang dengan Amazon Athena dan Amazon Quick Sight
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight"></a>

*Anoop Singh, Amazon Web Services*

## Ringkasan
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-summary"></a>

Pola ini menjelaskan cara menerjemahkan struktur data berformat JSON yang bersarang ke dalam tampilan tabel dengan menggunakan Amazon Athena, dan kemudian memvisualisasikan data di Amazon Quick Sight.

Anda dapat menggunakan data berformat JSON untuk umpan data yang didukung API dari sistem operasional untuk membuat produk data. Data ini juga dapat membantu Anda memahami pelanggan Anda dan interaksi mereka dengan produk Anda dengan lebih baik, sehingga Anda dapat menyesuaikan pengalaman pengguna dan memprediksi hasil.

## Prasyarat dan batasan
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ File JSON yang mewakili struktur data bersarang (pola ini menyediakan file sampel)

**Keterbatasan:**
+ Fitur JSON terintegrasi dengan baik dengan fungsi berorientasi SQL yang ada di Athena. Namun, mereka tidak kompatibel dengan ANSI SQL, dan file JSON diharapkan membawa setiap catatan pada baris terpisah. Anda mungkin perlu menggunakan `ignore.malformed.json` properti di Athena untuk menunjukkan apakah catatan JSON yang salah bentuk harus diubah menjadi karakter nol atau menghasilkan kesalahan. Untuk informasi selengkapnya, lihat [Praktik terbaik untuk membaca data JSON](https://docs.aws.amazon.com/athena/latest/ug/parsing-JSON.html) di dokumentasi Athena.
+ Pola ini hanya mempertimbangkan data berformat JSON dalam jumlah sederhana dan kecil. Jika Anda ingin menggunakan konsep-konsep ini dalam skala besar, pertimbangkan untuk menerapkan partisi data dan mengkonsolidasikan data Anda ke dalam file yang lebih besar.

## Arsitektur
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-architecture"></a>

Diagram berikut menunjukkan arsitektur dan alur kerja untuk pola ini. Struktur data bersarang disimpan di Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dalam format JSON. Di Athena, data JSON dipetakan ke struktur data Athena. Anda kemudian membuat tampilan untuk menganalisis data, dan memvisualisasikan struktur data di Quick Sight.

![\[Menganalisis dan memvisualisasikan data JSON bersarang di AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e9ad39a1-e0a4-4429-bdc0-594b68707761/images/474e8747-626f-468c-9c27-c007af79bf2d.png)


## Alat
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-tools"></a>

**Layanan AWS**
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data. Pola ini menggunakan Amazon S3 untuk menyimpan file JSON.
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar. Pola ini menggunakan Athena untuk query dan mengubah data JSON. Dengan beberapa tindakan di dalamnya Konsol Manajemen AWS, Anda dapat mengarahkan Athena ke data Anda di Amazon S3 dan menggunakan SQL standar untuk menjalankan kueri satu kali. Athena tanpa server, jadi tidak ada infrastruktur untuk mengatur atau mengelola, dan Anda hanya membayar untuk kueri yang Anda jalankan. Athena menskalakan secara otomatis dan menjalankan kueri secara paralel, sehingga hasilnya cepat, bahkan dengan kumpulan data besar dan kueri yang kompleks.     
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda di satu dasbor. Quick Sight memungkinkan Anda dengan mudah membuat dan mempublikasikan dasbor interaktif yang menyertakan wawasan pembelajaran mesin (ML). Anda dapat mengakses dasbor ini dari perangkat apa pun, dan menyematkannya ke aplikasi, portal, dan situs web Anda.

**Contoh kode**

File JSON berikut menyediakan struktur data bersarang yang dapat Anda gunakan dalam pola ini.

```
{
  "symbol": "AAPL",
  "financials": [
    {
      "reportDate": "2017-03-31",
      "grossProfit": 20591000000,
      "costOfRevenue": 32305000000,
      "operatingRevenue": 52896000000,
      "totalRevenue": 52896000000,
      "operatingIncome": 14097000000,
      "netIncome": 11029000000,
      "researchAndDevelopment": 2776000000,
      "operatingExpense": 6494000000,
      "currentAssets": 101990000000,
      "totalAssets": 334532000000,
      "totalLiabilities": 200450000000,
      "currentCash": 15157000000,
      "currentDebt": 13991000000,
      "totalCash": 67101000000,
      "totalDebt": 98522000000,
      "shareholderEquity": 134082000000,
      "cashChange": -1214000000,
      "cashFlow": 12523000000,
      "operatingGainsLosses": null
    }
  ]
}
```

## Epik
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-epics"></a>

### Siapkan ember S3
<a name="set-up-an-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Untuk membuat bucket untuk menyimpan file JSON, masuk ke Konsol Manajemen AWS, buka konsol [Amazon S3](https://console.aws.amazon.com/s3/), lalu **pilih** Buat bucket. Untuk informasi selengkapnya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di dokumentasi Amazon S3.  | Administrator sistem | 
| Tambahkan data JSON bersarang. | Unggah file JSON Anda ke bucket S3. Untuk contoh file JSON, lihat bagian sebelumnya. Untuk petunjuk, lihat [Mengunggah objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) dalam dokumentasi Amazon S3. | Administrator sistem | 

### Analisis data di Athena
<a name="analyze-data-in-ate"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel untuk memetakan data JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html)Untuk informasi selengkapnya tentang membuat tabel, lihat dokumentasi [Athena](https://docs.aws.amazon.com/athena/latest/ug/creating-tables.html). | Developer | 
| Buat tampilan untuk analisis data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html)Untuk informasi selengkapnya tentang membuat tampilan, lihat dokumentasi [Athena](https://docs.aws.amazon.com/athena/latest/ug/create-view.html). | Developer | 
| Menganalisis dan memvalidasi data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html) | Developer | 

### Visualisasikan data dalam Quick Sight
<a name="visualize-data-in-qsight"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan Athena sebagai sumber data di Quick Sight. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html) | Administrator sistem | 
| Visualisasikan data dalam Quick Sight. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight.html) | Analis data | 

## Sumber daya terkait
<a name="analyze-and-visualize-nested-json-data-with-amazon-athena-and-amazon-quicksight-resources"></a>
+ [Dokumentasi Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html)
+ [Tutorial Penglihatan Cepat Amazon](https://docs.aws.amazon.com/quicksuite/latest/userguide/example-analysis.html)
+ [Bekerja dengan JSON bersarang](https://aws.amazon.com/blogs/big-data/create-tables-in-amazon-athena-from-nested-json-and-mappings-using-jsonserde/) (posting blog)

# Otomatiskan konsumsi data dari AWS Data Exchange Amazon S3
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3"></a>

*Adnan Alvee dan Manikanta Gona, Amazon Web Services*

## Ringkasan
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-summary"></a>

Pola ini menyediakan CloudFormation template yang memungkinkan Anda untuk secara otomatis menyerap data dari AWS Data Exchange danau data Anda di Amazon Simple Storage Service (Amazon S3). 

AWS Data Exchange adalah layanan yang memudahkan pertukaran kumpulan data berbasis file dengan aman di AWS Cloud. AWS Data Exchange kumpulan data berbasis langganan. Sebagai pelanggan, Anda juga dapat mengakses revisi kumpulan data saat penyedia mempublikasikan data baru. 

 CloudFormation Template membuat acara di Amazon CloudWatch Events dan sebuah AWS Lambda fungsi. Acara ini mengawasi pembaruan apa pun pada kumpulan data yang telah Anda langgani. Jika ada pembaruan, CloudWatch memulai fungsi Lambda, yang menyalin data ke bucket S3 yang Anda tentukan. Ketika data telah berhasil disalin, Lambda mengirimkan pemberitahuan Amazon Simple Notification Service (Amazon SNS) kepada Anda.

## Prasyarat dan batasan
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Berlangganan ke kumpulan data di AWS Data Exchange

**Batasan**
+  CloudFormation Template harus digunakan secara terpisah untuk setiap set data berlangganan. AWS Data Exchange

## Arsitektur
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-architecture"></a>

**Tumpukan teknologi target**
+ AWS Lambda
+ Amazon S3
+ AWS Data Exchange
+ Amazon CloudWatch
+ Amazon SNS

**Arsitektur target**

![\[CloudWatch memulai fungsi Lambda untuk menyalin data ke bucket S3 dan mengirim notifikasi Amazon SNS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/059816dc-5a71-4942-9c7f-ac977072eebc/images/ec021620-47c1-4fb5-95a9-3b8985accc56.png)


**Otomatisasi dan skala**

Anda dapat menggunakan CloudFormation template beberapa kali untuk kumpulan data yang ingin Anda konsumsi ke dalam danau data.

## Alat
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-tools"></a>
+ [AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/what-is.html)memudahkan AWS pelanggan untuk bertukar kumpulan data berbasis file dengan aman di. AWS Cloud Sebagai pelanggan, Anda dapat menemukan dan berlangganan ratusan produk dari penyedia data yang memenuhi syarat. Kemudian, Anda dapat dengan cepat mengunduh kumpulan data atau menyalinnya ke Amazon S3 untuk digunakan di berbagai layanan AWS analisis dan pembelajaran mesin. Siapa pun yang memiliki Akun AWS dapat menjadi AWS Data Exchange pelanggan.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) memungkinkan Anda menjalankan kode tanpa server provisioning atau pengelolaan. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda konsumsi; tidak ada biaya ketika kode Anda tidak berjalan. Dengan Lambda, Anda dapat menjalankan kode untuk hampir semua jenis aplikasi atau layanan backend tanpa administrasi. Lambda menjalankan kode Anda pada infrastruktur komputasi ketersediaan tinggi dan mengelola semua sumber daya komputasi, termasuk pemeliharaan server dan sistem operasi, penyediaan kapasitas dan penskalaan otomatis, pemantauan kode, dan pencatatan.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) menyediakan penyimpanan untuk internet. Anda dapat menggunakan Amazon S3 untuk menyimpan dan mengambil data sebanyak apa pun kapan pun, dari mana pun di web.
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) memberikan aliran peristiwa sistem yang mendekati real-time yang menjelaskan perubahan AWS sumber daya. Dengan menggunakan aturan sederhana yang dapat Anda atur dengan cepat, Anda dapat mencocokkan acara dan mengarahkannya ke satu atau lebih fungsi atau aliran target. CloudWatch Peristiwa menjadi sadar akan perubahan operasional saat terjadi. Ini menanggapi perubahan operasional ini dan mengambil tindakan korektif seperlunya, dengan mengirim pesan untuk menanggapi lingkungan, mengaktifkan fungsi, membuat perubahan, dan menangkap informasi negara. **Anda juga dapat menggunakan CloudWatch Acara untuk menjadwalkan tindakan otomatis yang dimulai sendiri pada waktu-waktu tertentu menggunakan ekspresi **cron** atau rate.**
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) memungkinkan aplikasi, pengguna akhir, dan perangkat untuk langsung mengirim dan menerima notifikasi dari cloud. Amazon SNS menyediakan topik (saluran komunikasi) untuk pengiriman pesan dengan throughput tinggi, berbasis push. many-to-many Menggunakan topik Amazon SNS, penerbit dapat mendistribusikan pesan ke sejumlah besar pelanggan untuk pemrosesan paralel, termasuk antrian Amazon Simple Queue Service (Amazon SQS), fungsi Lambda, dan webhook. HTTP/S Anda juga dapat menggunakan Amazon SNS untuk mengirim notifikasi kepada pengguna akhir menggunakan push seluler, SMS, dan email.

## Epik
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-epics"></a>

### Berlangganan kumpulan data
<a name="subscribe-to-a-data-set"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Berlangganan kumpulan data. | Di AWS Data Exchange konsol, berlangganan dataset. Untuk petunjuk, lihat [Berlangganan produk data AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/subscribe-to-data-sets.html) dalam AWS dokumentasi. | AWS Umum | 
| Perhatikan atribut kumpulan data. | Perhatikan Wilayah AWS, ID, dan ID revisi untuk kumpulan data. Anda akan membutuhkan ini untuk CloudFormation template di langkah berikutnya. | AWS Umum | 

### Menyebarkan template CloudFormation
<a name="deploy-the-cfn-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember dan folder S3. | Jika Anda sudah memiliki data lake di Amazon S3, buat folder untuk menyimpan data untuk dicerna. AWS Data Exchange Jika Anda menerapkan template untuk tujuan pengujian, buat bucket S3 baru, dan catat nama bucket dan awalan folder untuk langkah berikutnya. | AWS Umum | 
| Menyebarkan CloudFormation template. | Terapkan CloudFormation template yang disediakan sebagai lampiran ke pola ini. Untuk instruksi, lihat [CloudFormation dokumentasi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).**Konfigurasikan parameter berikut agar sesuai dengan pengaturan bucket Akun AWS, kumpulan data, dan S3 Anda: **Dataset Wilayah AWS**, ID **Dataset, ID** **Revisi**, **Nama Bucket S3** (misalnya,`DOC-EXAMPLE-BUCKET`), **Awalan Folder** (misalnya,), dan Email untuk Pemberitahuan `myfolder/` SNS.** Anda dapat mengatur parameter **Nama Dataset ke nama** apa pun. Saat Anda menerapkan template, ia menjalankan fungsi Lambda untuk secara otomatis menyerap kumpulan data pertama yang tersedia di kumpulan data. Konsumsi selanjutnya kemudian terjadi secara otomatis, karena data baru tiba di kumpulan data. | AWS Umum | 

## Sumber daya terkait
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-resources"></a>
+ [Berlangganan produk data pada AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/subscribe-to-data-sets.html) (AWS Data Exchange dokumentasi)

## Lampiran
<a name="attachments-059816dc-5a71-4942-9c7f-ac977072eebc"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/059816dc-5a71-4942-9c7f-ac977072eebc/attachments/attachment.zip)

# Otomatiskan penegakan enkripsi di AWS Glue menggunakan templat AWS CloudFormation
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template"></a>

*Diogo Guedes, Amazon Web Services*

## Ringkasan
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-summary"></a>

Pola ini menunjukkan kepada Anda cara mengatur dan mengotomatiskan penegakan enkripsi di AWS Glue dengan menggunakan CloudFormation templat AWS. Template membuat semua konfigurasi dan sumber daya yang diperlukan untuk menegakkan enkripsi. Sumber daya ini mencakup konfigurasi awal, kontrol pencegahan yang dibuat oleh EventBridge aturan Amazon, dan fungsi AWS Lambda.

## Prasyarat dan batasan
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Izin untuk menyebarkan CloudFormation template dan sumber dayanya

**Batasan**

Kontrol keamanan ini bersifat regional. Anda harus menerapkan kontrol keamanan di setiap Wilayah AWS tempat Anda ingin mengatur penegakan enkripsi di AWS Glue.

## Arsitektur
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-architecture"></a>

**Tumpukan teknologi target**
+  CloudWatch Log Amazon (dari AWS Lambda)
+  EventBridge Aturan Amazon
+ AWS CloudFormation tumpukan
+ AWS CloudTrail
+ Peran dan kebijakan yang dikelola AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)
+ Alias AWS KMS
+ Fungsi AWS Lambda
+ AWS Systems Manager Parameter Store

**Arsitektur target**

Diagram berikut menunjukkan cara mengotomatiskan penegakan enkripsi di AWS Glue.

![\[Diagram menunjukkan cara mengotomatiskan penegakan enkripsi di AWS Glue menggunakan CloudFormation templat.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d50d0659-5592-44d0-8fcb-7a2983712640/images/272a7fb2-ecbc-41f7-a556-d555e4e39a59.png)


Diagram menunjukkan alur kerja berikut:

1. [CloudFormation Template](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml) membuat semua sumber daya, termasuk konfigurasi awal dan kontrol detektif untuk penegakan enkripsi di AWS Glue.

1.  EventBridge Aturan mendeteksi perubahan status dalam konfigurasi enkripsi.

1. Fungsi Lambda dipanggil untuk evaluasi dan pencatatan melalui Log. CloudWatch Untuk deteksi yang tidak sesuai, Parameter Store dipulihkan dengan Amazon Resource Name (ARN) untuk kunci AWS KMS. Layanan ini diperbaiki ke status yang sesuai dengan enkripsi diaktifkan.

**Otomatisasi dan skala**

Jika Anda menggunakan [AWS Organizations](https://aws.amazon.com/organizations/), Anda dapat menggunakan [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) untuk menerapkan template ini di beberapa akun tempat Anda ingin mengaktifkan penegakan enkripsi di AWS Glue.

## Alat
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-tools"></a>
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) membantu Anda memantau metrik sumber daya AWS Anda dan aplikasi yang Anda jalankan di AWS secara real time.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, fungsi Lambda, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di akun AWS lainnya.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) membantu Anda mengaktifkan audit operasional dan risiko, tata kelola, dan kepatuhan akun AWS Anda.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) membantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan manajemen aplikasi dan sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola sumber daya AWS Anda dengan aman dalam skala besar.

**Kode**

Kode untuk pola ini tersedia di repositori GitHub [aws-custom-guardrail-event-driven](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml).

## Praktik terbaik
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-best-practices"></a>

AWS Glue mendukung enkripsi data saat istirahat untuk [membuat pekerjaan di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html) dan [mengembangkan skrip menggunakan titik akhir pengembangan](https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint.html).

Pertimbangkan praktik terbaik berikut:
+ Konfigurasikan pekerjaan ETL dan titik akhir pengembangan untuk menggunakan kunci AWS KMS untuk menulis data terenkripsi saat istirahat.
+ Enkripsi metadata yang disimpan dalam [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) dengan menggunakan kunci yang Anda kelola melalui AWS KMS.
+ Gunakan kunci AWS KMS untuk mengenkripsi bookmark pekerjaan dan log yang dihasilkan oleh [crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) dan pekerjaan ETL.

## Epik
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-epics"></a>

### Luncurkan CloudFormation template
<a name="launch-the-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan CloudFormation template. | Unduh `aws-custom-guardrail-event-driven.yaml` template dari GitHub [repositori](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml), lalu [gunakan](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/deploy/index.html) template. `CREATE_COMPLETE`Status menunjukkan bahwa template Anda berhasil di-deploy.Template tidak memerlukan parameter input. | Arsitek awan | 

### Verifikasi pengaturan enkripsi di AWS Glue
<a name="verify-the-encryption-settings-in-aws-glue"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa konfigurasi kunci AWS KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html) | Arsitek awan | 

### Uji penegakan enkripsi
<a name="test-the-encryption-enforcement"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi pengaturan enkripsi di CloudFormation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html) | Arsitek awan | 
| Alihkan infrastruktur yang disediakan ke status tidak patuh. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html)Pagar pembatas mendeteksi status tidak sesuai di AWS Glue setelah Anda mengosongkan kotak centang, lalu memberlakukan kepatuhan dengan memulihkan kesalahan konfigurasi enkripsi secara otomatis. Akibatnya, kotak centang enkripsi harus dipilih kembali setelah Anda me-refresh halaman. | Arsitek awan | 

## Sumber daya terkait
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-resources"></a>
+ [Membuat tumpukan di CloudFormation konsol AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) ( CloudFormation dokumentasi AWS)
+ [Membuat aturan CloudWatch Peristiwa yang dipicu pada panggilan AWS API menggunakan AWS CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) ( CloudWatch dokumentasi Amazon)
+ [Menyiapkan enkripsi di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/set-up-encryption.html) (dokumentasi AWS Glue)

# Membangun pipeline data untuk menyerap, mengubah, dan menganalisis data Google Analytics menggunakan AWS DataOps Development Kit
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit"></a>

*Anton Kukushkin dan Rudy Puig, Amazon Web Services*

## Ringkasan
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-summary"></a>

Pola ini menjelaskan cara membuat pipeline data untuk menyerap, mengubah, dan menganalisis data Google Analytics dengan menggunakan AWS DataOps Development Kit (AWS DDK) dan lainnya. Layanan AWS AWS DDK adalah kerangka kerja pengembangan sumber terbuka yang membantu Anda membangun alur kerja data dan arsitektur data modern. AWS Salah satu tujuan utama AWS DDK adalah untuk menghemat waktu dan upaya yang biasanya dikhususkan untuk tugas-tugas pipa data padat karya, seperti mengatur jaringan pipa, membangun infrastruktur, dan menciptakan infrastruktur di balik itu. DevOps Anda dapat menurunkan tugas-tugas padat karya ini ke AWS DDK sehingga Anda dapat fokus pada penulisan kode dan aktivitas bernilai tinggi lainnya.

## Prasyarat dan batasan
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+  AppFlow Konektor Amazon untuk Google Analytics, [dikonfigurasi](https://docs.aws.amazon.com/appflow/latest/userguide/google-analytics.html)
+ [Python](https://www.python.org/downloads/) dan [pip (manajer](https://pip.pypa.io/en/stable/cli/pip_download/) paket Python)
+ Git, diinstal dan [dikonfigurasi](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup)
+ AWS Command Line Interface (AWS CLI), [diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ AWS Cloud Development Kit (AWS CDK), [dipasang](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)

**Versi produk**
+ Python 3.7 atau yang lebih baru
+ pip 9.0.3 atau yang lebih baru

## Arsitektur
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-architecture"></a>

**Tumpukan teknologi**
+ Amazon AppFlow
+ Amazon Athena
+ Amazon CloudWatch
+ Amazon EventBridge
+ Amazon Simple Storage Service (Amazon S3)
+ Amazon Simple Queue Service (Amazon SQS)
+ AWS DataOps Kit Pengembangan (AWS DDK)
+ AWS Lambda

**Arsitektur target**

Diagram berikut menunjukkan proses berbasis peristiwa yang menyerap, mengubah, dan menganalisis data Google Analytics.

![\[Menyerap, mengubah, dan menganalisis data Google Analytics dengan layanan AWS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/edf40222-2867-4d4a-9153-ab29785b6662/images/8c38b472-153b-4497-982c-8efb97d2f7a5.png)


Diagram menunjukkan alur kerja berikut:

1. Aturan acara CloudWatch terjadwal Amazon memanggil Amazon AppFlow.

1. Amazon AppFlow menyerap data Google Analytics ke dalam bucket S3.

1. Setelah data dicerna oleh bucket S3, notifikasi peristiwa akan EventBridge dibuat, ditangkap oleh aturan CloudWatch Peristiwa, dan kemudian dimasukkan ke dalam antrean Amazon SQS.

1. Fungsi Lambda mengkonsumsi peristiwa dari antrian Amazon SQS, membaca objek S3 masing-masing, mengubah objek ke format Apache Parquet, menulis objek yang diubah ke bucket S3, dan kemudian membuat atau memperbarui definisi tabel. AWS Glue Data Catalog 

1. Kueri Athena berjalan melawan tabel.

## Alat
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-tools"></a>

**AWS alat**
+ [Amazon AppFlow](https://docs.aws.amazon.com/appflow/latest/userguide/what-is-appflow.html) adalah layanan integrasi yang dikelola sepenuhnya yang memungkinkan Anda bertukar data dengan aman antara aplikasi perangkat lunak sebagai layanan (SaaS).
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) membantu Anda memantau metrik sumber AWS daya Anda dan aplikasi yang Anda jalankan AWS secara real time.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Simple Queue Service (Amazon Simple Queue Service](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)adalah kerangka kerja untuk mendefinisikan infrastruktur cloud dalam kode dan menyediakannya. CloudFormation
+ [AWS DataOps Development Kit (AWS DDK)](https://github.com/awslabs/aws-ddk) adalah kerangka kerja pengembangan sumber terbuka untuk membantu Anda membangun alur kerja data dan arsitektur data modern. AWS

**Kode**

Kode untuk pola ini tersedia di GitHub [AWS DataOps Development Kit (AWS DDK)](https://github.com/awslabs/aws-ddk) dan [Menganalisis data Google Analytics dengan repositori Amazon AppFlow, Amazon Athena, AWS DataOps dan Development](https://github.com/aws-samples/aws-ddk-examples/tree/main/google-analytics-data-using-appflow/python) Kit.

## Epik
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-epics"></a>

### Siapkan lingkungan
<a name="prepare-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning kode sumber. | Untuk mengkloning kode sumber, jalankan perintah berikut:<pre>git clone https://github.com/aws-samples/aws-ddk-examples.git</pre> | DevOps insinyur | 
| Buat lingkungan virtual. | Arahkan ke direktori kode sumber, lalu jalankan perintah berikut untuk membuat lingkungan virtual:<pre>cd google-analytics-data-using-appflow/python && python3 -m venv .venv</pre> | DevOps insinyur | 
| Instal dependensi. | Untuk mengaktifkan lingkungan virtual dan menginstal dependensi, jalankan perintah berikut:<pre>source .venv/bin/activate && pip install -r requirements.txt</pre> | DevOps insinyur | 

### Menerapkan aplikasi yang menggunakan pipeline data Anda
<a name="deploy-the-application-that-uses-your-data-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bootstrap lingkungan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.html) | DevOps insinyur | 
| Menyebarkan data. | Untuk menyebarkan pipa data, jalankan `cdk deploy --profile [AWS_PROFILE]` perintah. | DevOps insinyur | 

### Uji deployment
<a name="test-the-deployment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi status tumpukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.html) | DevOps insinyur | 

## Pemecahan masalah
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Penerapan gagal selama pembuatan `AWS::AppFlow::Flow` sumber daya dan Anda menerima kesalahan berikut: `Connector Profile with name ga-connection does not exist` | Konfirmasikan bahwa Anda membuat AppFlow konektor Amazon untuk Google Analytics dan menamakannya`ga-connection`.Untuk petunjuk, lihat [Google Analytics](https://docs.aws.amazon.com/appflow/latest/userguide/google-analytics.html) di AppFlow dokumentasi Amazon. | 

## Sumber daya terkait
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-resources"></a>
+ [AWS DataOps Kit Pengembangan (AWS DDK) (GitHub)](https://github.com/awslabs/aws-ddk)
+ [AWS Contoh DDK](https://github.com/aws-samples/aws-ddk-examples) () GitHub

## Informasi tambahan
<a name="build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit-additional"></a>

AWS Pipa data DDK terdiri dari satu atau banyak tahapan. Dalam contoh kode berikut, Anda gunakan `AppFlowIngestionStage` untuk menyerap data dari Google Analytics, `SqsToLambdaStage` menangani transformasi data, dan `AthenaSQLStage` menjalankan kueri Athena.

Pertama, transformasi data dan tahap konsumsi dibuat, seperti contoh kode berikut menunjukkan:

```
        appflow_stage = AppFlowIngestionStage(
            self,
            id="appflow-stage",
            flow_name=flow.flow_name,
        )
        sqs_lambda_stage = SqsToLambdaStage(
            self,
            id="lambda-stage",
            lambda_function_props={
                "code": Code.from_asset("./ddk_app/lambda_handlers"),
                "handler": "handler.lambda_handler",
                "layers": [
                    LayerVersion.from_layer_version_arn(
                        self,
                        id="layer",
                        layer_version_arn=f"arn:aws:lambda:{self.region}:336392948345:layer:AWSDataWrangler-Python39:1",
                    )
                ],
                "runtime": Runtime.PYTHON_3_9,
            },
        )
        # Grant lambda function S3 read & write permissions
        bucket.grant_read_write(sqs_lambda_stage.function)
        # Grant Glue database & table permissions
        sqs_lambda_stage.function.add_to_role_policy(
            self._get_glue_db_iam_policy(database_name=database.database_name)
        )
        athena_stage = AthenaSQLStage(
            self,
            id="athena-sql",
            query_string=[
                (
                    "SELECT year, month, day, device, count(user_count) as cnt "
                    f"FROM {database.database_name}.ga_sample "
                    "GROUP BY year, month, day, device "
                    "ORDER BY cnt DESC "
                    "LIMIT 10; "
                )
            ],
            output_location=Location(
                bucket_name=bucket.bucket_name, object_key="query-results/"
            ),
            additional_role_policy_statements=[
                self._get_glue_db_iam_policy(database_name=database.database_name)
            ],
        )
```

Selanjutnya, `DataPipeline` konstruksi digunakan untuk “menghubungkan” tahapan bersama-sama dengan menggunakan EventBridge aturan, seperti contoh kode berikut menunjukkan:

```
        (
            DataPipeline(self, id="ingestion-pipeline")
            .add_stage(
                stage=appflow_stage,
                override_rule=Rule(
                    self,
                    "schedule-rule",
                    schedule=Schedule.rate(Duration.hours(1)),
                    targets=appflow_stage.targets,
                ),
            )
            .add_stage(
                stage=sqs_lambda_stage,
                # By default, AppFlowIngestionStage stage emits an event after the flow run finishes successfully
                # Override rule below changes that behavior to call the the stage when data lands in the bucket instead
                override_rule=Rule(
                    self,
                    "s3-object-created-rule",
                    event_pattern=EventPattern(
                        source=["aws.s3"],
                        detail={
                            "bucket": {"name": [bucket.bucket_name]},
                            "object": {"key": [{"prefix": "ga-data"}]},
                        },
                        detail_type=["Object Created"],
                    ),
                    targets=sqs_lambda_stage.targets,
                ),
            )
            .add_stage(stage=athena_stage)
        )
```

Untuk contoh kode lainnya, lihat GitHub [Menganalisis data Google Analytics dengan Amazon AppFlow, Amazon Athena, dan repositori AWS DataOps Development Kit](https://github.com/aws-samples/aws-ddk-examples/tree/main/google-analytics-data-using-appflow/python).

# Buat pipeline pemrosesan video dengan menggunakan Amazon Kinesis Video Streams dan AWS Fargate
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate"></a>

*Piotr Chotkowski dan Pushparaju Thangavel, Amazon Web Services*

## Ringkasan
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-summary"></a>

Pola ini menunjukkan cara menggunakan [Amazon Kinesis Video Streams dan](https://aws.amazon.com/kinesis/video-streams/) [AWS Fargate](https://aws.amazon.com/fargate) untuk mengekstrak bingkai dari aliran video dan menyimpannya sebagai file gambar untuk diproses lebih lanjut di [Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)). 

Pola ini menyediakan contoh aplikasi dalam bentuk proyek Java Maven. Aplikasi ini mendefinisikan infrastruktur AWS dengan menggunakan AWS [Cloud Development Kit](https://aws.amazon.com/cdk/) (AWS CDK). Baik logika pemrosesan bingkai dan definisi infrastruktur ditulis dalam bahasa pemrograman Java. Anda dapat menggunakan aplikasi sampel ini sebagai dasar untuk mengembangkan pipa pemrosesan video real-time Anda sendiri atau untuk membangun langkah pra-pemrosesan video dari pipa pembelajaran mesin. 

## Prasyarat dan batasan
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Kit Pengembangan Java SE (JDK) 11, diinstal
+ [Apache Maven](https://maven.apache.org/), diinstal
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html), diinstal
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)) versi 2, diinstal
+ [Docker](https://docs.docker.com/get-docker/) (diperlukan untuk membuat gambar Docker untuk digunakan dalam definisi tugas AWS Fargate), diinstal

**Batasan**

Pola ini dimaksudkan sebagai bukti konsep, atau sebagai dasar untuk pengembangan lebih lanjut. Seharusnya tidak digunakan dalam bentuknya saat ini dalam penyebaran produksi.

**Versi produk**
+ [Pola ini diuji dengan AWS CDK versi 1.77.0 (lihat versi AWS CDK)](https://docs.aws.amazon.com/cdk/api/latest/versions.html)
+ JDK 11
+ AWS CLI versi 2

## Arsitektur
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-architecture"></a>

**Tumpukan teknologi target**
+ Amazon Kinesis Video Streams
+ Tugas AWS Fargate
+ Antrean Amazon Simple Queue Service (Amazon SQS)
+ Buket Amazon S3

**Arsitektur target**

![\[Arsitektur untuk menggunakan Kinesis Video Streams dan Fargate untuk membangun pipeline pemrosesan video.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9d1442c2-f3ee-47fd-8cce-90d9206ce4d4/images/a60e585f-27be-4dd6-897b-c38adf1d283f.png)


Pengguna membuat aliran video Kinesis, mengunggah video, dan mengirimkan pesan JSON yang berisi rincian tentang input Kinesis video stream dan output S3 bucket ke antrian SQS. AWS Fargate, yang menjalankan aplikasi utama dalam wadah, menarik pesan dari antrian SQS dan mulai mengekstrak bingkai. Setiap frame disimpan dalam file gambar dan disimpan di bucket S3 target.

**Otomatisasi dan skala**

Aplikasi sampel dapat menskalakan baik secara horizontal maupun vertikal dalam satu Wilayah AWS. Penskalaan horizontal dapat dicapai dengan meningkatkan jumlah tugas AWS Fargate yang diterapkan yang dibaca dari antrian SQS. Penskalaan vertikal dapat dicapai dengan meningkatkan jumlah utas pemecahan bingkai dan penerbitan gambar dalam aplikasi. Pengaturan ini diteruskan sebagai variabel lingkungan ke aplikasi dalam definisi [QueueProcessingFargateService](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ecs-patterns.QueueProcessingFargateService.html)sumber daya di AWS CDK. Karena sifat penerapan tumpukan AWS CDK, Anda dapat menerapkan aplikasi ini di beberapa Wilayah AWS dan akun tanpa upaya tambahan.

## Alat
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-tools"></a>

**Alat**
+ [AWS CDK](https://aws.amazon.com/cdk/) adalah kerangka kerja pengembangan perangkat lunak untuk mendefinisikan infrastruktur dan sumber daya cloud Anda dengan menggunakan bahasa pemrograman seperti TypeScript,, JavaScript Python, Java, dan C \$1/.Net.
+ [Amazon Kinesis Video](https://aws.amazon.com/kinesis/video-streams/) Streams adalah layanan AWS yang dikelola sepenuhnya yang dapat Anda gunakan untuk melakukan streaming video langsung dari perangkat ke AWS Cloud, atau membuat aplikasi untuk pemrosesan video real-time atau analitik video berorientasi batch.
+ [AWS Fargate](https://aws.amazon.com/fargate) adalah mesin komputasi tanpa server untuk kontainer. Fargate menghilangkan kebutuhan untuk menyediakan dan mengelola server, dan memungkinkan Anda fokus pada pengembangan aplikasi Anda.
+ [Amazon S3](https://aws.amazon.com/s3/) adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja.
+ [Amazon SQS](https://aws.amazon.com/sqs/) adalah layanan antrian pesan yang dikelola sepenuhnya yang memungkinkan Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server.

**Kode**
+ File.zip dari proyek aplikasi sampel (`frame-splitter-code.zip`) dilampirkan.

## Epik
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-epics"></a>

### Menyebarkan infrastruktur
<a name="deploy-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai daemon Docker. | Mulai daemon Docker di sistem lokal Anda. AWS CDK menggunakan Docker untuk membuat image yang digunakan dalam tugas AWS Fargate. Anda harus menjalankan Docker sebelum melanjutkan ke langkah berikutnya. | Pengembang, DevOps insinyur | 
| Bangun proyek. | Unduh aplikasi `frame-splitter-code` sampel (terlampir) dan ekstrak isinya ke dalam folder di mesin lokal Anda. Sebelum Anda dapat menyebarkan infrastruktur, Anda harus membangun proyek [Java Maven](https://maven.apache.org/). Pada prompt perintah, navigasikan ke direktori root proyek, dan buat proyek dengan menjalankan perintah: <pre>mvn clean install</pre> | Pengembang, DevOps insinyur | 
| Bootstrap AWS CDK. | (Hanya pengguna AWS CDK pertama kali) Jika ini adalah pertama kalinya Anda menggunakan AWS CDK, Anda mungkin harus mem-bootstrap lingkungan dengan menjalankan perintah AWS CLI:<pre>cdk bootstrap --profile "$AWS_PROFILE_NAME" </pre>dimana `$AWS_PROFILE_NAME` memegang nama profil AWS dari kredensi AWS Anda. Atau, Anda dapat menghapus parameter ini untuk menggunakan profil default. Untuk informasi selengkapnya, lihat [dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html). | Pengembang, DevOps insinyur | 
| Menerapkan tumpukan AWS CDK. | Pada langkah ini, Anda membuat sumber daya infrastruktur yang diperlukan (antrean SQS, bucket S3, definisi tugas AWS Fargate) di akun AWS Anda, membuat image Docker yang diperlukan untuk tugas AWS Fargate, dan menerapkan aplikasi. Pada prompt perintah, arahkan ke direktori root proyek, dan jalankan perintah:<pre>cdk deploy --profile "$AWS_PROFILE_NAME" --all </pre>dimana `$AWS_PROFILE_NAME` memegang nama profil AWS dari kredensi AWS Anda. Atau, Anda dapat menghapus parameter ini untuk menggunakan profil default. Konfirmasikan penyebaran. Perhatikan nilai **QueueUrl**dan **Bucket** dari keluaran penyebaran CDK; Anda akan memerlukannya di langkah selanjutnya. AWS CDK membuat aset, mengunggahnya ke akun AWS Anda, dan membuat semua sumber daya infrastruktur. Anda dapat mengamati proses pembuatan sumber daya di [ CloudFormation konsol AWS](https://console.aws.amazon.com/cloudformation/). Untuk informasi selengkapnya, lihat [ CloudFormation dokumentasi AWS dan dokumentasi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) [AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#hello_world_tutorial_deploy). | Pengembang, DevOps insinyur | 
| Buat aliran video. | Pada langkah ini, Anda membuat aliran video Kinesis yang akan berfungsi sebagai aliran input untuk pemrosesan video. Pastikan AWS CLI telah diinstal dan dikonfigurasi. Di AWS CLI, jalankan:<pre>aws kinesisvideo --profile "$AWS_PROFILE_NAME" create-stream --stream-name "$STREAM_NAME" --data-retention-in-hours "24" </pre>dimana `$AWS_PROFILE_NAME` memegang nama profil AWS dari kredensyal AWS Anda (atau hapus parameter ini untuk menggunakan profil default) dan `$STREAM_NAME` merupakan nama aliran yang valid. Atau, Anda dapat membuat aliran video dengan menggunakan konsol Kinesis dengan mengikuti langkah-langkah dalam dokumentasi [Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/gs-createstream.html#gs-createstream-console). Perhatikan AWS Resource Name (ARN) dari aliran yang dibuat; Anda akan membutuhkannya nanti. | Pengembang, DevOps insinyur | 

### Jalankan contoh
<a name="run-an-example"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah video ke streaming. | Di folder proyek untuk `frame-splitter-code` aplikasi sampel, buka `ProcessingTaskTest.java` file di `src/test/java/amazon/awscdk/examples/splitter` folder. Ganti `streamName`**** variabel `profileName`**** dan dengan nilai yang Anda gunakan pada langkah sebelumnya. Untuk mengunggah contoh video ke aliran video Kinesis yang Anda buat pada langkah sebelumnya, jalankan:  <pre>amazon.awscdk.examples.splitter.ProcessingTaskTest#testExample test</pre>Atau, Anda dapat mengunggah video Anda dengan menggunakan salah satu metode yang dijelaskan dalam dokumentasi [Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk.html). | Pengembang, DevOps insinyur | 
| Memulai pemrosesan video. | Sekarang setelah Anda mengunggah video ke aliran video Kinesis, Anda dapat mulai memprosesnya. Untuk memulai logika pemrosesan, Anda harus mengirim pesan dengan detail ke antrian SQS yang dibuat AWS CDK selama penerapan. Untuk mengirim pesan menggunakan AWS CLI, jalankan:<pre>aws sqs --profile "$AWS_PROFILE_NAME" send-message --queue-url QUEUE_URL --message-body MESSAGE </pre>dimana `$AWS_PROFILE_NAME` memegang nama profil AWS dari kredensyal AWS Anda (hapus parameter ini untuk menggunakan profil default), `QUEUE_URL` adalah **QueueUrl**nilai dari output AWS CDK, dan `MESSAGE` merupakan string JSON dalam format berikut: <pre>{ "streamARN": "STREAM_ARN", "bucket": "BUCKET_NAME", "s3Directory": "test-output" }</pre>di `STREAM_ARN` mana ARN dari aliran video yang Anda buat pada langkah sebelumnya dan `BUCKET_NAME` merupakan nilai **Bucket dari output** AWS CDK. Mengirim pesan ini memulai pemrosesan video. Atau, Anda dapat mengirim pesan menggunakan konsol Amazon SQS, seperti yang dijelaskan dalam dokumentasi [Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-send-messages.html). | Pengembang, DevOps insinyur | 
| Lihat gambar bingkai video. | Anda dapat melihat gambar yang dihasilkan di bucket `s3://BUCKET_NAME/test-output` keluaran S3 yang `BUCKET_NAME` merupakan nilai **Bucket** dari output AWS CDK. | Pengembang, DevOps insinyur | 

## Sumber daya terkait
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-resources"></a>
+ [Dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/home.html)
+ [Referensi AWS CDK API](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-construct-library.html)
+ [Lokakarya pengantar AWS CDK](https://cdkworkshop.com/)
+ [Dokumentasi Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html)
+ [Contoh: Mengidentifikasi Objek dalam Streaming Video Menggunakan SageMaker](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-sagemaker.html)
+ [Contoh: Mengurai dan Merender Fragmen Aliran Video Kinesis](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-renderer.html)
+ [Analisis video langsung dalam skala secara real time menggunakan Amazon Kinesis Video Streams SageMaker](https://aws.amazon.com/blogs/machine-learning/analyze-live-video-at-scale-in-real-time-using-amazon-kinesis-video-streams-and-amazon-sagemaker/) dan Amazon (postingan blog AWS Machine Learning)
+ [AWS Fargate Memulai](https://aws.amazon.com/fargate/getting-started/)

## Informasi tambahan
<a name="build-a-video-processing-pipeline-by-using-amazon-kinesis-video-streams-and-aws-fargate-additional"></a>

**Memilih IDE**

Kami menyarankan Anda menggunakan IDE Java favorit Anda untuk membangun dan menjelajahi proyek ini.  

**Membersihkan**

Setelah Anda selesai menjalankan contoh ini, hapus semua sumber daya yang diterapkan untuk menghindari biaya infrastruktur AWS tambahan. 

Untuk menghapus infrastruktur dan aliran video, gunakan dua perintah ini di AWS CLI:

```
cdk destroy --profile "$AWS_PROFILE_NAME" --all
```

```
aws kinesisvideo --profile "$AWS_PROFILE_NAME" delete-stream --stream-arn "$STREAM_ARN"
```

Atau, Anda dapat menghapus sumber daya secara manual dengan menggunakan CloudFormation konsol AWS untuk menghapus CloudFormation tumpukan AWS, dan konsol Kinesis untuk menghapus aliran video Kinesis. Perhatikan bahwa `cdk destroy` tidak menghapus bucket S3 keluaran atau gambar di repositori Amazon Elastic Container Registry (Amazon ECR) (). `aws-cdk/assets` Anda harus menghapusnya secara manual.

## Lampiran
<a name="attachments-9d1442c2-f3ee-47fd-8cce-90d9206ce4d4"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/9d1442c2-f3ee-47fd-8cce-90d9206ce4d4/attachments/attachment.zip)

# Buat pipeline layanan ETL untuk memuat data secara bertahap dari Amazon S3 ke Amazon Redshift menggunakan AWS Glue
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue"></a>

*Rohan Jamadagni dan Arunabha Datta, Amazon Web Services*

## Ringkasan
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-summary"></a>

Pola ini memberikan panduan tentang cara mengonfigurasi Amazon Simple Storage Service (Amazon S3) untuk kinerja data lake yang optimal, lalu memuat perubahan data tambahan dari Amazon S3 ke Amazon Redshift dengan menggunakan AWS Glue, melakukan operasi ekstrak, transformasi, dan pemuatan (ETL). 

File sumber di Amazon S3 dapat memiliki format yang berbeda, termasuk nilai yang dipisahkan koma (CSV), XML, dan file JSON. Pola ini menjelaskan bagaimana Anda dapat menggunakan AWS Glue untuk mengonversi file sumber menjadi format yang dioptimalkan biaya dan dioptimalkan kinerja seperti Apache Parquet. Anda dapat menanyakan file Parket langsung dari Amazon Athena dan Amazon Redshift Spectrum. Anda juga dapat memuat file Parket ke Amazon Redshift, menggabungkannya, dan membagikan data agregat dengan konsumen, atau memvisualisasikan data dengan menggunakan Amazon Quick Sight.

## Prasyarat dan batasan
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Bucket sumber S3 yang memiliki hak istimewa yang tepat dan berisi file CSV, XHTML, atau JSON.

**Asumsi**
+ File sumber CSV, XHTML, atau JSON sudah dimuat ke Amazon S3 dan dapat diakses dari akun tempat AWS Glue dan Amazon Redshift dikonfigurasi.
+ Praktik terbaik untuk memuat file, memisahkan file, kompresi, dan menggunakan manifes diikuti, seperti yang dibahas dalam dokumentasi [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-S3.html).
+ Struktur file sumber tidak berubah.
+ Sistem sumber dapat menelan data ke Amazon S3 dengan mengikuti struktur folder yang ditentukan di Amazon S3.
+ Cluster Amazon Redshift mencakup satu Availability Zone. (Arsitektur ini sesuai karena AWS Lambda, AWS Glue, dan Amazon Athena tidak memiliki server.) Untuk ketersediaan tinggi, snapshot cluster diambil pada frekuensi reguler.

**Batasan**
+ Format file terbatas pada format yang [saat ini didukung oleh AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html).
+ Pelaporan hilir real-time tidak didukung.

## Arsitektur
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-architecture"></a>

**Tumpukan teknologi sumber**
+ Bucket S3 dengan file CSV, XML, atau JSON

**Tumpukan teknologi target**
+ Danau data S3 (dengan penyimpanan file Parket yang dipartisi)
+ Amazon Redshift

**Arsitektur target**

![\[Arsitektur untuk memuat perubahan tambahan dari Amazon S3 ke Amazon Redshift menggunakan AWS Glue.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/105b58ec-56c1-464a-8e69-f625360caa14/images/626aa365-e6e6-4874-a873-1c71adbe5306.png)


 

**Aliran data**

![\[Alur data untuk memuat perubahan tambahan dari Amazon S3 ke Amazon Redshift menggunakan AWS Glue.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/105b58ec-56c1-464a-8e69-f625360caa14/images/29569e48-9f2d-4f48-bc59-1f33949d01ca.png)


## Alat
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-tools"></a>
+ [Amazon S3 - Amazon Simple Storage](https://aws.amazon.com/s3/) Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel. Amazon S3 dapat digunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan data lake.
+ [AWS Lambda](https://aws.amazon.com/lambda/) — AWS Lambda memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. AWS Lambda adalah layanan berbasis peristiwa; Anda dapat mengatur kode untuk memulai secara otomatis dari layanan AWS lainnya.
+ [Amazon Redshift](https://aws.amazon.com/redshift/) — Amazon Redshift adalah layanan gudang data skala petabyte yang dikelola sepenuhnya. Dengan Amazon Redshift, Anda dapat menanyakan petabyte data terstruktur dan semi-terstruktur di seluruh gudang data dan data lake menggunakan SQL standar.
+ [AWS Glue](https://aws.amazon.com/glue/) — AWS Glue adalah layanan ETL yang dikelola sepenuhnya yang memudahkan penyiapan dan pemuatan data untuk analitik. AWS Glue menemukan data Anda dan menyimpan metadata terkait (misalnya, definisi tabel dan skema) di AWS Glue Data Catalog. Data katalog Anda segera dapat dicari, dapat ditanyakan, dan tersedia untuk ETL.
+ [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) — AWS Secrets Manager memfasilitasi perlindungan dan pengelolaan rahasia terpusat yang diperlukan untuk akses aplikasi atau layanan. Layanan ini menyimpan kredensi database, kunci API, dan rahasia lainnya, dan menghilangkan kebutuhan untuk hardcode informasi sensitif dalam format teks biasa. Secrets Manager juga menawarkan rotasi kunci untuk memenuhi kebutuhan keamanan dan kepatuhan. Ini memiliki integrasi bawaan untuk Amazon Redshift, Amazon Relational Database Service (Amazon RDS), dan Amazon DocumentDB. Anda dapat menyimpan dan mengelola rahasia secara terpusat dengan menggunakan konsol Secrets Manager, antarmuka baris perintah (CLI), atau Secrets Manager API dan. SDKs
+ [Amazon Athena](https://aws.amazon.com/athena/) - Amazon Athena adalah layanan kueri interaktif yang memudahkan untuk menganalisis data yang disimpan di Amazon S3. Athena tanpa server dan terintegrasi dengan AWS Glue, sehingga dapat langsung menanyakan data yang dikatalogkan menggunakan AWS Glue. Athena diskalakan secara elastis untuk memberikan kinerja kueri interaktif.

## Epik
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-epics"></a>

### Buat bucket S3 dan struktur folder
<a name="create-the-s3-buckets-and-folder-structure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menganalisis sistem sumber untuk struktur dan atribut data. | Lakukan tugas ini untuk setiap sumber data yang berkontribusi ke danau data Amazon S3. | Insinyur data | 
| Tentukan partisi dan strategi akses. | Strategi ini harus didasarkan pada frekuensi pengambilan data, pemrosesan delta, dan kebutuhan konsumsi. Pastikan bucket S3 tidak terbuka untuk umum dan akses dikendalikan oleh kebijakan berbasis peran layanan tertentu saja. Untuk informasi lebih lanjut, lihat [Dokumentasi Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html). | Insinyur data | 
| Buat bucket S3 terpisah untuk setiap tipe sumber data dan bucket S3 terpisah per sumber untuk data yang diproses (Parket). | Buat bucket terpisah untuk setiap sumber, lalu buat struktur folder yang didasarkan pada frekuensi penyerapan data sistem sumber; misalnya,. `s3://source-system-name/date/hour` Untuk file yang diproses (dikonversi ke format Parket), buat struktur yang serupa; misalnya,`s3://source-processed-bucket/date/hour`. Untuk informasi selengkapnya tentang membuat bucket S3, lihat dokumentasi [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html). | Insinyur data | 

### Buat gudang data di Amazon Redshift
<a name="create-a-data-warehouse-in-amazon-redshift"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan klaster Amazon Redshift dengan grup parameter serta strategi pemeliharaan dan pencadangan yang sesuai. | Gunakan rahasia database Secrets Manager untuk kredensi pengguna admin saat membuat klaster Amazon Redshift. Untuk informasi tentang membuat dan mengukur cluster Amazon Redshift, lihat dokumentasi Amazon Redshift dan [whitepaper Sizing Cloud](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-redshift-cluster.html) [Data Warehouses](https://d1.awsstatic.com/whitepapers/Size-Cloud-Data-Warehouse-on-AWS.pdf). | Insinyur data | 
| Buat dan lampirkan peran layanan IAM ke cluster Amazon Redshift. | Peran layanan AWS Identity and Access Management (IAM) memastikan akses ke Secrets Manager dan bucket S3 sumber. Untuk informasi selengkapnya, lihat dokumentasi AWS tentang [otorisasi](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) dan [penambahan peran](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-add-role.html). | Insinyur data | 
| Buat skema database. | Ikuti praktik terbaik Amazon Redshift untuk desain tabel. Berdasarkan kasus penggunaan, pilih kunci pengurutan dan distribusi yang sesuai, dan pengkodean kompresi terbaik. Untuk praktik terbaik, lihat [dokumentasi AWS](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html). | Insinyur data | 
| Konfigurasikan manajemen beban kerja. | Konfigurasi antrian manajemen beban kerja (WLM), akselerasi kueri pendek (SQA), atau penskalaan konkurensi, tergantung pada kebutuhan Anda. Untuk informasi selengkapnya, lihat [Menerapkan manajemen beban kerja](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html) di dokumentasi Amazon Redshift. | Insinyur data | 

### Buat rahasia di Secrets Manager
<a name="create-a-secret-in-secrets-manager"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat rahasia baru untuk menyimpan kredenal masuk Amazon Redshift di Secrets Manager. | Rahasia ini menyimpan kredensil untuk pengguna admin serta pengguna layanan database individu. Untuk petunjuk, lihat [dokumentasi Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). Pilih **Amazon Redshift Cluster** sebagai tipe rahasia. Selain itu, pada halaman **rotasi Rahasia**, nyalakan rotasi. Ini akan membuat pengguna yang sesuai di cluster Amazon Redshift dan akan memutar rahasia kunci pada interval yang ditentukan. | Insinyur data | 
| Buat kebijakan IAM untuk membatasi akses Secrets Manager. | Batasi akses Secrets Manager hanya ke administrator Amazon Redshift dan AWS Glue. | Insinyur data | 

### Konfigurasikan AWS Glue
<a name="configure-aws-glue"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Di AWS Glue Data Catalog, tambahkan koneksi untuk Amazon Redshift. | Untuk petunjuk, lihat [dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html). | Insinyur data | 
| Buat dan lampirkan peran layanan IAM untuk AWS Glue untuk mengakses Secrets Manager, Amazon Redshift, dan bucket S3. | Untuk informasi selengkapnya, lihat [dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-service-policy.html). | Insinyur data | 
| Tentukan AWS Glue Data Catalog untuk sumbernya. | Langkah ini melibatkan pembuatan database dan tabel yang diperlukan di AWS Glue Data Catalog. Anda dapat menggunakan crawler untuk membuat katalog tabel di database AWS Glue, atau mendefinisikannya sebagai tabel eksternal Amazon Athena. Anda juga dapat mengakses tabel eksternal yang ditentukan di Athena melalui AWS Glue Data Catalog. Lihat dokumentasi AWS untuk informasi selengkapnya tentang [mendefinisikan Katalog Data](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html) dan [membuat tabel eksternal](https://docs.aws.amazon.com/athena/latest/ug/creating-tables.html) di Athena. | Insinyur data | 
| Buat pekerjaan AWS Glue untuk memproses data sumber. | Pekerjaan AWS Glue dapat berupa shell Python atau PySpark untuk menstandarisasi, menghapus duplikasi, dan membersihkan file data sumber. Untuk mengoptimalkan kinerja dan menghindari keharusan menanyakan seluruh bucket sumber S3, partisi bucket S3 berdasarkan tanggal, dipecah berdasarkan tahun, bulan, hari, dan jam sebagai predikat pushdown untuk pekerjaan AWS Glue. Untuk informasi selengkapnya, lihat [dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-partitions.html). Muat data yang diproses dan diubah ke partisi bucket S3 yang diproses dalam format Parket. Anda dapat menanyakan file Parket dari Athena. | Insinyur data | 
| Buat pekerjaan AWS Glue untuk memuat data ke Amazon Redshift. | Pekerjaan AWS Glue dapat berupa shell Python atau PySpark memuat data dengan meningkatkan data, diikuti dengan penyegaran lengkap. Untuk detailnya, lihat [dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job.html) dan bagian *Informasi tambahan*. | Insinyur data | 
| (Opsional) Jadwalkan pekerjaan AWS Glue dengan menggunakan pemicu seperlunya. | Pemuatan data tambahan terutama didorong oleh peristiwa Amazon S3 yang menyebabkan fungsi AWS Lambda memanggil pekerjaan AWS Glue. Gunakan penjadwalan berbasis pemicu AWS Glue untuk setiap pemuatan data yang menuntut berbasis waktu, bukan penjadwalan berbasis peristiwa. | Insinyur data | 

### Buat fungsi Lambda
<a name="create-a-lambda-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan lampirkan peran terkait layanan IAM untuk AWS Lambda untuk mengakses bucket S3 dan pekerjaan AWS Glue. | Buat peran terkait layanan IAM untuk AWS Lambda dengan kebijakan untuk membaca objek dan bucket Amazon S3, serta kebijakan untuk mengakses AWS Glue API untuk memulai pekerjaan AWS Glue. Untuk informasi lebih lanjut, lihat [Pusat Pengetahuan](https://aws.amazon.com/premiumsupport/knowledge-center/lambda-execution-role-s3-bucket/). | Insinyur data | 
| Buat fungsi Lambda untuk menjalankan pekerjaan AWS Glue berdasarkan peristiwa Amazon S3 yang ditentukan. | Fungsi Lambda harus dimulai dengan pembuatan file manifes Amazon S3. Fungsi Lambda harus meneruskan lokasi folder Amazon S3 (misalnya, bucket/year/month/date/hour source\$1) ke pekerjaan AWS Glue sebagai parameter. Pekerjaan AWS Glue akan menggunakan parameter ini sebagai predikat pushdown untuk mengoptimalkan akses file dan kinerja pemrosesan pekerjaan. Untuk informasi selengkapnya, lihat [dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html). | Insinyur data | 
| Buat event objek PUT Amazon S3 untuk mendeteksi pembuatan objek, dan panggil fungsi Lambda masing-masing. | Peristiwa objek PUT Amazon S3 harus dimulai hanya dengan pembuatan file manifes. File manifes mengontrol fungsi Lambda dan konkurensi pekerjaan AWS Glue, dan memproses beban sebagai batch alih-alih memproses file individual yang tiba di partisi spesifik bucket sumber S3. Untuk informasi selengkapnya, lihat dokumentasi [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Insinyur data | 

## Sumber daya terkait
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-resources"></a>
+ [Dokumentasi Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html)
+ [Dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)
+ [Dokumentasi Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [AWS Lambda](https://aws.amazon.com/lambda/)
+ [Amazon Athena](https://aws.amazon.com/athena/)
+ [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)

## Informasi tambahan
<a name="build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue-additional"></a>

**Pendekatan terperinci untuk upsert dan refresh lengkap**

**Upsert**: Ini untuk kumpulan data yang memerlukan agregasi historis, tergantung pada kasus penggunaan bisnis. Ikuti salah satu pendekatan yang dijelaskan dalam [Memperbarui dan menyisipkan data baru](https://docs.aws.amazon.com/redshift/latest/dg/t_updating-inserting-using-staging-tables-.html) (dokumentasi Amazon Redshift) berdasarkan kebutuhan bisnis Anda.

**Penyegaran lengkap**: Ini untuk kumpulan data kecil yang tidak memerlukan agregasi historis. Ikuti salah satu pendekatan ini:

1. Memangkas tabel Amazon Redshift.

1. Muat partisi saat ini dari area pementasan

atau:

1. Buat tabel sementara dengan data partisi saat ini.

1. Jatuhkan tabel Amazon Redshift target.

1. Ganti nama tabel sementara menjadi tabel target.

# Membangun mesh data perusahaan dengan Amazon DataZone, AWS CDK, dan AWS CloudFormation
<a name="build-enterprise-data-mesh-amazon-data-zone"></a>

*Dhrubajyoti Mukherjey, Ravi Kumar, Weizhou Sun, dan Adjoa Taylor, Amazon Web Services*

## Ringkasan
<a name="build-enterprise-data-mesh-amazon-data-zone-summary"></a>

Di Amazon Web Services (AWS), pelanggan memahami bahwa data adalah kunci untuk mempercepat inovasi dan mendorong nilai bisnis bagi perusahaan mereka. Untuk mengelola data besar ini, Anda dapat mengadopsi arsitektur terdesentralisasi seperti data mesh. Arsitektur data mesh memfasilitasi pemikiran produk, pola pikir yang memperhitungkan pelanggan, tujuan, dan pasar. Data mesh juga membantu membangun model tata kelola federasi yang menyediakan akses cepat dan aman ke data Anda.

[Strategi untuk membangun solusi perusahaan berbasis data mesh AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-mesh/introduction.html) membahas bagaimana Anda dapat menggunakan Kerangka Strategi Data Mesh untuk merumuskan dan menerapkan strategi data mesh untuk organisasi Anda. Dengan menggunakan Kerangka Strategi Data Mesh, Anda dapat mengoptimalkan organisasi tim dan interaksinya untuk mempercepat perjalanan data mesh Anda.

Dokumen ini memberikan panduan tentang cara membangun mesh data perusahaan dengan [Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/what-is-datazone.html). Amazon DataZone adalah layanan manajemen data untuk membuat katalog, menemukan, berbagi, dan mengatur data yang disimpan di seluruh, di tempat AWS, dan sumber pihak ketiga. Pola ini mencakup artefak kode yang membantu Anda menyebarkan infrastruktur solusi data berbasis mesh data menggunakan dan. AWS Cloud Development Kit (AWS CDK) AWS CloudFormation Pola ini ditujukan untuk arsitek dan DevOps insinyur cloud.

Untuk informasi tentang tujuan pola ini dan ruang lingkup solusi, lihat bagian [Informasi tambahan](#build-enterprise-data-mesh-amazon-data-zone-additional).

## Prasyarat dan batasan
<a name="build-enterprise-data-mesh-amazon-data-zone-prereqs"></a>

**Prasyarat**
+ Minimal dua aktif Akun AWS: satu untuk akun tata kelola pusat dan satu lagi untuk akun anggota
+ AWS kredensi administrator untuk akun tata kelola pusat di lingkungan pengembangan Anda
+ AWS Command Line Interface (AWS CLI) [diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) untuk mengelola Anda Layanan AWS dari baris perintah
+ Node.js dan Node Package Manager (npm) [diinstal](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) untuk mengelola aplikasi AWS CDK 
+ AWS CDK Toolkit [diinstal](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) secara global di lingkungan pengembangan Anda dengan menggunakan npm, untuk mensintesis dan menyebarkan aplikasi AWS CDK 

  ```
  npm install -g aws-cdk
  ```
+ Python versi 3.12 diinstal di lingkungan pengembangan Anda
+ TypeScript diinstal di lingkungan pengembangan Anda atau diinstal secara global dengan menggunakan kompiler npm:

  ```
  npm install -g typescript
  ```
+ Docker diinstal di lingkungan pengembangan Anda
+ Sistem kontrol versi seperti Git untuk mempertahankan kode sumber solusi (disarankan)
+ Lingkungan pengembangan terintegrasi (IDE) atau editor teks dengan dukungan untuk Python dan TypeScript (sangat disarankan)

**Batasan**
+ Solusinya telah diuji hanya pada mesin yang menjalankan Linux atau macOS.
+ Dalam versi saat ini, solusinya tidak mendukung integrasi Amazon DataZone dan secara AWS IAM Identity Center default. Namun, Anda dapat mengonfigurasinya untuk mendukung integrasi ini.

**Versi produk**
+ Python versi 3.12

## Arsitektur
<a name="build-enterprise-data-mesh-amazon-data-zone-architecture"></a>

Diagram berikut menunjukkan arsitektur referensi data mesh. Arsitekturnya didasarkan pada Amazon DataZone dan menggunakan Amazon Simple Storage Service (Amazon S3) AWS Glue Data Catalog dan sebagai sumber data. Layanan AWS Yang Anda gunakan dengan Amazon DataZone dalam implementasi mesh data Anda mungkin berbeda, berdasarkan persyaratan organisasi Anda.

![\[Alur kerja lima langkah untuk akun anggota dan akun tata kelola pusat.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/79056dd9-e669-4302-afb8-21e3e0e8a136/images/eacbffca-4f25-405a-a7c8-f89d0fee5682.png)


1. Dalam akun produsen, data mentah cocok untuk konsumsi dalam bentuk saat ini atau diubah untuk konsumsi dengan menggunakan AWS Glue. Metadata teknis untuk data disimpan di Amazon S3 dan dievaluasi menggunakan perayap data. AWS Glue Kualitas data diukur dengan menggunakan [Kualitas AWS Glue Data](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html). Database sumber dalam Katalog Data terdaftar sebagai aset dalam DataZone katalog Amazon. DataZone Katalog Amazon di-host di akun tata kelola pusat menggunakan pekerjaan sumber DataZone data Amazon.

1. Akun tata kelola pusat menampung DataZone domain Amazon dan portal DataZone data Amazon. Produsen data dan konsumen terkait dengan DataZone domain Amazon. Akun AWS DataZone Proyek Amazon dari produsen data dan konsumen diatur di bawah unit DataZone domain Amazon yang sesuai.

1. Pengguna akhir aset data masuk ke portal DataZone data Amazon dengan menggunakan kredensialnya AWS Identity and Access Management (IAM) atau sistem masuk tunggal (dengan integrasi melalui Pusat Identitas IAM). Mereka mencari, memfilter, dan melihat informasi aset (misalnya, informasi kualitas data atau metadata bisnis dan teknis) di katalog DataZone data Amazon.

1. Setelah pengguna akhir menemukan aset data yang mereka inginkan, mereka menggunakan fitur DataZone langganan Amazon untuk meminta akses. Pemilik data di tim produsen menerima pemberitahuan dan mengevaluasi permintaan berlangganan di portal DataZone data Amazon. Pemilik data menyetujui atau menolak permintaan berlangganan berdasarkan validitasnya.

1. Setelah permintaan berlangganan dikabulkan dan dipenuhi, aset diakses di akun konsumen untuk kegiatan berikut:
   + Pengembangan model AI/ML dengan menggunakan Amazon AI SageMaker 
   + Analisis dan pelaporan dengan menggunakan Amazon Athena dan Amazon Quick

## Alat
<a name="build-enterprise-data-mesh-amazon-data-zone-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) dengan menggunakan SQL standar.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)adalah kerangka pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan AWS Cloud infrastruktur dalam kode.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
+ [Amazon DataZone](https://docs.aws.amazon.com/datazone/latest/userguide/what-is-datazone.html) adalah layanan manajemen data yang membantu Anda membuat katalog, menemukan, berbagi, dan mengatur data yang disimpan di seluruh AWS, di tempat, dan di sumber pihak ketiga.
+ [Amazon Quick](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) adalah layanan pembelajaran mesin terkelola (ML) yang membantu Anda membangun dan melatih model ML, lalu menerapkannya ke lingkungan host yang siap produksi.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Simple Queue Service (Amazon Simple Queue Service](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Repositori kode**

Solusinya tersedia di repositori GitHub [data-mesh-datazone-cdk-cloudformation](https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation).

## Epik
<a name="build-enterprise-data-mesh-amazon-data-zone-epics"></a>

### Mengatur lingkungan
<a name="set-up-the-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori. | Untuk mengkloning repositori, jalankan perintah berikut di lingkungan pengembangan lokal Anda (Linux atau macOS):<pre>git clone https://github.com/aws-samples/data-mesh-datazone-cdk-cloudformation</pre> | Arsitek awan, DevOps insinyur | 
| Buat lingkungan. | Untuk membuat lingkungan virtual Python, jalankan perintah berikut:<pre> python3 -m venv .venv<br /> source .venv/bin/activate<br /> pip install -r requirements.txt</pre> | Arsitek awan, DevOps insinyur | 
| Bootstrap akun. | Untuk mem-bootstrap akun tata kelola pusat dengan menggunakan AWS CDK, jalankan perintah berikut:<pre>cdk bootstrap aws://<GOVERNANCE_ACCOUNT_ID>/<AWS_REGION></pre>Masuk ke Konsol Manajemen AWS, buka konsol akun tata kelola pusat, dan dapatkan Nama Sumber Daya Amazon (ARN) dari peran eksekusi AWS CDK . | Arsitek awan, DevOps insinyur | 
| Membangun `DzDataMeshMemberStackSet.yaml` file. | Untuk membangun `DzDataMeshMemberStackSet.yaml` file, dari direktori root repositori, memulai skrip bash berikut:<pre>./lib/scripts/create_dz_data_mesh_member_stack_set.sh</pre> | Arsitek awan, DevOps insinyur | 
| Konfirmasikan pembuatan template. | Pastikan bahwa file CloudFormation template dibuat di `lib/cfn-templates/DzDataMeshMemberStackSet.yaml` lokasi. | Arsitek awan, DevOps insinyur | 

### Menyebarkan sumber daya di akun tata kelola pusat
<a name="deploy-resources-in-the-central-governance-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah konfigurasi. | Dalam `config/Config.ts` file, ubah parameter berikut:<pre>DZ_APPLICATION_NAME - Name of the application.<br />DZ_STAGE_NAME - Name of the stage. <br />DZ_DOMAIN_NAME - Name of the Amazon DataZone domain<br />DZ_DOMAIN_DESCRIPTION - Description of the Amazon DataZone domain<br />DZ_DOMAIN_TAG - Tag of the Amazon DataZone domain<br />DZ_ADMIN_PROJECT_NAME - Name of the Amazon DataZone project for administrators<br />DZ_ADMIN_PROJECT_DESCRIPTION - Description of the Amazon DataZone project for administrators<br />CDK_EXEC_ROLE_ARN - ARN of the cdk execution role<br />DZ_ADMIN_ROLE_ARN - ARN of the administrator role</pre>Biarkan parameter yang tersisa kosong. | Arsitek awan, DevOps insinyur | 
| Perbarui konfigurasi DataZone glosarium Amazon. | Untuk memperbarui konfigurasi DataZone glosarium Amazon dalam `lib/utils/glossary_config.json` file, gunakan konfigurasi contoh berikut:<pre>{<br />    "GlossaryName": "PII Data",<br />    "GlossaryDescription": "If data source contains PII attributes",<br />    "GlossaryTerms": [{<br />            "Name": "Yes",<br />            "ShortDescription": "Yes",<br />            "LongDescription": "Yes Glossary Term"<br />        },<br />        {<br />            "Name": "No",<br />            "ShortDescription": "No",<br />            "LongDescription": "No Glossary Term"<br />        }<br />    ]<br />}</pre> | Arsitek awan, DevOps insinyur | 
| Perbarui konfigurasi formulir DataZone metadata Amazon. | Untuk memperbarui konfigurasi formulir DataZone metadata Amazon di`lib/utils/metadata_form_config.json file`, gunakan konfigurasi contoh berikut:<pre>{<br />    "FormName": "ScheduleDataRefresh",<br />    "FormDescription": "Form for data refresh schedule",<br />    "FormSmithyModel": "@amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\nstructure ScheduleDataRefresh {\n    @documentation(\"Schedule of Data Refresh\")\n    @required\n    @amazon.datazone#searchable\n    @amazon.datazone#displayname(defaultName: \"Data Refresh Schedule\")\n    data_refresh_schedule: String\n}"<br />}</pre> | Arsitek awan, DevOps insinyur | 
| Ekspor AWS kredensialnya. | Untuk mengekspor AWS kredensyal ke lingkungan pengembangan Anda untuk peran IAM dengan izin administratif, gunakan format berikut:<pre>export AWS_ACCESS_KEY_ID=<br />export AWS_SECRET_ACCESS_KEY=<br />export AWS_SESSION_TOKEN=</pre> | Arsitek awan, DevOps insinyur | 
| Sintesis template. | Untuk mensintesis CloudFormation template, jalankan perintah berikut:<pre>npx cdk synth</pre> | Arsitek awan, DevOps insinyur | 
| Menyebarkan solusinya. | Untuk menerapkan solusi, jalankan perintah berikut:<pre>npx cdk deploy --all</pre> | Arsitek awan, DevOps insinyur | 

### Konfigurasikan akun anggota baru
<a name="configure-new-member-accounts"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan template. | Menyebarkan CloudFormation template yang terletak di `lib/cfn-templates/DzDataMeshCfnStackSetExecutionRole.yaml` dalam akun anggota dengan parameter input berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Arsitek awan, DevOps insinyur | 
| Perbarui ARNs. | Untuk memperbarui daftar peran CloudFormation StackSet ARNs eksekusi akun anggota, gunakan kode berikut:<pre>DZ_MEMBER_STACK_SET_EXEC_ROLE_LIST  - List of Stack set execution role arns for the member accounts.</pre> | Arsitek awan, DevOps insinyur | 
| Sintesis dan terapkan. | Untuk mensintesis CloudFormation template dan menerapkan solusi, jalankan perintah berikut:<pre>npx cdk synth<br />npx cdk deploy --all</pre> | Arsitek awan, DevOps insinyur | 
| Kaitkan akun anggota. | Untuk mengaitkan akun anggota dengan akun tata kelola pusat, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Arsitek awan, DevOps insinyur | 
| Perbarui parameter. | Untuk memperbarui parameter spesifik akun anggota dalam file konfigurasi di`config/Config.ts`, gunakan format berikut:<pre>export const DZ_MEMBER_ACCOUNT_CONFIG: memberAccountConfig = {<br />  '123456789012' : {<br />    PROJECT_NAME: 'TEST-PROJECT-123456789012',<br />    PROJECT_DESCRIPTION: 'TEST-PROJECT-123456789012',<br />    PROJECT_EMAIL: 'user@xyz.com'<br />  }<br />}</pre> | Arsitek awan, DevOps insinyur | 
| Sintesis dan gunakan template. | Untuk mensintesis CloudFormation template dan menerapkan solusi, jalankan perintah berikut:<pre>npx cdk synth<br />npx cdk deploy --all</pre> | Arsitek awan, DevOps insinyur | 
| Tambahkan akun anggota. | Untuk membuat dan mengonfigurasi akun anggota tambahan dalam solusi data, ulangi langkah sebelumnya untuk setiap akun anggota.Solusi ini tidak membedakan antara produsen data dan konsumen. | Arsitek awan, DevOps insinyur | 

### Bersihkan
<a name="clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Putuskan hubungan akun anggota. | Untuk memisahkan akun, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Arsitek awan, DevOps insinyur | 
| Hapus instance tumpukan. | Untuk menghapus instance CloudFormation tumpukan, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Arsitek awan, DevOps insinyur | 
| Hancurkan semua sumber daya. | Untuk menghancurkan sumber daya, terapkan langkah-langkah berikut di lingkungan pengembangan lokal Anda (Linux atau macOS):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/build-enterprise-data-mesh-amazon-data-zone.html) | Arsitek awan, DevOps insinyur | 

## Sumber daya terkait
<a name="build-enterprise-data-mesh-amazon-data-zone-resources"></a>
+ [Amazon DataZone mulai cepat dengan data AWS Glue](https://docs.aws.amazon.com/datazone/latest/userguide/quickstart-glue.html)
+ [Tutorial: Buat AWS CDK aplikasi pertama Anda](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html)
+ [Memulai dengan CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.html)
+ [Strategi untuk membangun solusi perusahaan berbasis data mesh AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-mesh/introduction.html)

## Informasi tambahan
<a name="build-enterprise-data-mesh-amazon-data-zone-additional"></a>

**Tujuan**

Menerapkan pola ini mencapai hal berikut:
+ **Kepemilikan data yang terdesentralisasi** - Alihkan kepemilikan data dari tim pusat ke tim yang mewakili sistem sumber, unit bisnis, atau kasus penggunaan organisasi Anda.
+ **Pemikiran produk** — Memperkenalkan pola pikir berbasis produk yang mencakup pelanggan, pasar, dan faktor lain ketika mempertimbangkan aset data dalam organisasi Anda.
+ **Tata kelola federasi** - Meningkatkan pagar pembatas keamanan, kontrol, dan kepatuhan di seluruh produk data organisasi Anda.
+ Dukungan **multi-akun dan multi-proyek - Mendukung** berbagi data dan kolaborasi yang efisien dan aman di seluruh unit bisnis atau proyek organisasi Anda.
+ **Pemantauan dan pemberitahuan terpusat** - Pantau sumber daya cloud mesh data Anda dengan menggunakan Amazon CloudWatch, dan beri tahu pengguna saat akun anggota baru dikaitkan.
+ **Skalabilitas dan ekstensibilitas** - Tambahkan kasus penggunaan baru ke dalam mesh data saat organisasi Anda berkembang.

**Lingkup solusi**

Ketika Anda menggunakan solusi ini, Anda dapat memulai dari yang kecil dan skala saat Anda maju dalam perjalanan data mesh Anda. Seringkali, ketika akun anggota mengadopsi solusi data, itu berisi konfigurasi akun khusus untuk organisasi, proyek, atau unit bisnis. Solusi ini mengakomodasi beragam Akun AWS konfigurasi ini dengan mendukung fitur-fitur berikut:
+ AWS Glue Data Catalog sebagai sumber data untuk Amazon DataZone
+ Manajemen domain DataZone data Amazon dan portal data terkait
+ Manajemen penambahan akun anggota dalam solusi data berbasis data mesh data
+ Manajemen DataZone proyek dan lingkungan Amazon
+ Pengelolaan DataZone glosarium Amazon dan formulir metadata
+ Pengelolaan peran IAM yang sesuai dengan pengguna solusi data berbasis jaringan data
+ Pemberitahuan pengguna solusi data berbasis data mesh
+ Pemantauan infrastruktur cloud yang disediakan

  Solusi ini menggunakan AWS CDK dan CloudFormation menyebarkan infrastruktur cloud. Ini digunakan CloudFormation untuk melakukan hal berikut:
  + Tentukan dan terapkan sumber daya cloud pada tingkat abstraksi yang lebih rendah.
  + Menyebarkan sumber daya cloud dari. Konsol Manajemen AWS Dengan menggunakan pendekatan ini, Anda dapat menerapkan infrastruktur tanpa lingkungan pengembangan.

  Solusi data mesh digunakan AWS CDK untuk mendefinisikan sumber daya pada tingkat abstraksi yang lebih tinggi. Hasilnya, solusi ini menyediakan pendekatan terpisah, modular, dan terukur dengan memilih alat yang relevan untuk menyebarkan sumber daya cloud.

**Langkah selanjutnya**

Anda dapat menghubungi AWS[para ahli](https://aws.amazon.com/professional-services) untuk mendapatkan panduan tentang membangun data mesh dengan Amazon DataZone.

Sifat modular dari solusi ini mendukung membangun solusi manajemen data dengan arsitektur yang berbeda, seperti data fabric dan data lake. Selain itu, berdasarkan persyaratan organisasi Anda, Anda dapat memperluas solusi ke sumber DataZone data Amazon lainnya.

# Hitung value at risk (VaR) dengan menggunakan layanan AWS
<a name="calculate-value-at-risk-var-by-using-aws-services"></a>

*Sumon Samanta, Amazon Web Services*

## Ringkasan
<a name="calculate-value-at-risk-var-by-using-aws-services-summary"></a>

Pola ini menjelaskan cara menerapkan sistem perhitungan value at risk (VaR) dengan menggunakan layanan AWS. Di lingkungan lokal, sebagian besar sistem VaR menggunakan infrastruktur khusus yang besar dan perangkat lunak penjadwalan jaringan internal atau komersial untuk menjalankan proses batch. Pola ini menyajikan arsitektur yang sederhana, andal, dan dapat diskalakan untuk menangani pemrosesan VaR di AWS Cloud. Ini membangun arsitektur tanpa server yang menggunakan Amazon Kinesis Data Streams sebagai layanan streaming, Amazon Simple Queue Service (Amazon SQS) sebagai layanan antrian terkelola, Amazon sebagai layanan caching, dan AWS Lambda untuk ElastiCache memproses pesanan dan menghitung risiko.

VaR adalah ukuran statistik yang digunakan pedagang dan manajer risiko untuk memperkirakan potensi kerugian dalam portofolio mereka di luar tingkat kepercayaan tertentu. Sebagian besar sistem VaR melibatkan menjalankan sejumlah besar perhitungan matematika dan statistik dan menyimpan hasilnya. Perhitungan ini membutuhkan sumber daya komputasi yang signifikan, sehingga proses batch VaR harus dipecah menjadi set tugas komputasi yang lebih kecil. Memisahkan batch besar menjadi tugas yang lebih kecil dimungkinkan karena tugas-tugas ini sebagian besar independen (yaitu, perhitungan untuk satu tugas tidak bergantung pada tugas lain). 

Persyaratan penting lainnya untuk arsitektur VaR adalah skalabilitas komputasi. Pola ini menggunakan arsitektur tanpa server yang secara otomatis menskalakan masuk atau keluar berdasarkan beban komputasi. Karena permintaan komputasi batch atau online sulit diprediksi, penskalaan dinamis diperlukan untuk menyelesaikan proses dalam garis waktu yang ditentukan oleh perjanjian tingkat layanan (SLA). Selain itu, arsitektur yang dioptimalkan biaya harus dapat menurunkan setiap sumber daya komputasi segera setelah tugas pada sumber daya tersebut selesai. 

Layanan AWS sangat cocok untuk perhitungan VaR karena menawarkan kapasitas komputasi dan penyimpanan yang dapat diskalakan, layanan analitik untuk diproses dengan cara yang dioptimalkan biaya, dan berbagai jenis penjadwal untuk menjalankan alur kerja manajemen risiko Anda. Selain itu, Anda hanya membayar untuk sumber daya komputasi dan penyimpanan yang Anda gunakan di AWS.

## Prasyarat dan batasan
<a name="calculate-value-at-risk-var-by-using-aws-services-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Masukkan file, yang tergantung pada kebutuhan bisnis Anda. Kasus penggunaan tipikal melibatkan file input berikut:
  + File data pasar (masukan ke mesin perhitungan VaR)
  + File data perdagangan (kecuali data perdagangan datang melalui aliran).
  + File data konfigurasi (model dan data konfigurasi statis lainnya)
  + File model mesin perhitungan (pustaka kuantitatif)
  + File data deret waktu (untuk data historis seperti harga saham selama lima tahun terakhir)
+ Jika data pasar atau input lain masuk melalui aliran, Amazon Kinesis Data Streams disiapkan, dan Amazon Identity and Access Management (IAM) and Access Management (IAM) dikonfigurasi untuk menulis ke aliran.  

Pola ini membangun arsitektur di mana data perdagangan ditulis dari sistem perdagangan ke aliran data Kinesis. Alih-alih menggunakan layanan streaming, Anda dapat menyimpan data perdagangan Anda dalam file batch kecil, menyimpannya di bucket Amazon Simple Storage Service (Amazon S3), dan memanggil acara untuk mulai memproses data.

**Batasan**
+ Pengurutan aliran data Kinesis dijamin pada setiap pecahan, sehingga pesanan perdagangan yang ditulis ke beberapa pecahan tidak dijamin akan dikirimkan dalam urutan yang sama dengan operasi penulisan.
+ Batas runtime AWS Lambda saat ini adalah 15 menit. (Untuk informasi lebih lanjut, lihat [FAQ Lambda](https://aws.amazon.com/lambda/faqs/).)

## Arsitektur
<a name="calculate-value-at-risk-var-by-using-aws-services-architecture"></a>

**Arsitektur target**

Diagram arsitektur berikut menampilkan layanan AWS dan alur kerja untuk sistem penilaian risiko.

![\[Sistem perhitungan VaR dengan layanan AWS\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/eb615fc5-3cc3-445a-af2c-8446ee7b5276/images/c60aec03-ff6c-410c-8ee8-f1f6efa22cf7.png)


Diagram ini menggambarkan hal sebagai berikut:

1. Aliran perdagangan dari sistem manajemen pesanan.

1. Fungsi Lambda *jaring posisi tiket* memproses pesanan dan menulis pesan terkonsolidasi untuk setiap ticker ke antrian risiko di Amazon SQS.

1. *Mesin penghitung risiko* Fungsi Lambda memproses pesan dari Amazon SQS, melakukan perhitungan risiko, dan memperbarui informasi laba rugi (PnL) VaR di cache risiko di Amazon. ElastiCache

1. Fungsi Lambda * ElastiCache data baca* mengambil hasil risiko dari ElastiCache dan menyimpannya dalam database dan bucket S3.

Untuk informasi selengkapnya tentang layanan dan langkah-langkah ini, lihat bagian *Epik*.

**Otomatisasi dan skala**

Anda dapat menerapkan seluruh arsitektur dengan menggunakan AWS Cloud Development Kit (AWS CDK) atau templat CloudFormation AWS. Arsitektur dapat mendukung pemrosesan batch dan pemrosesan intraday (real-time).

Penskalaan dibangun ke dalam arsitektur. Karena lebih banyak perdagangan ditulis ke dalam aliran data Kinesis dan menunggu untuk diproses, fungsi Lambda tambahan dapat dipanggil untuk memproses perdagangan tersebut dan kemudian dapat menurunkan skala setelah pemrosesan selesai. Memproses melalui beberapa antrian perhitungan risiko Amazon SQS juga merupakan pilihan. Jika pemesanan atau konsolidasi yang ketat diperlukan di seluruh antrian, pemrosesan tidak dapat diparalelkan. Namun, untuk end-of-the-day batch atau batch intraday mini, fungsi Lambda dapat memproses secara paralel dan menyimpan hasil akhir. ElastiCache 

## Alat
<a name="calculate-value-at-risk-var-by-using-aws-services-tools"></a>

**Layanan AWS**
+ [Amazon Aurora MySQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html) adalah mesin database relasional MySQL yang dikelola sepenuhnya dan kompatibel dengan MySQL yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan MySQL. Pola ini menggunakan MySQL sebagai contoh, tetapi Anda dapat menggunakan sistem RDBMS apa pun untuk menyimpan data.
+ [Amazon ElastiCache](https://docs.aws.amazon.com/elasticache/) membantu Anda mengatur, mengelola, dan menskalakan lingkungan cache dalam memori terdistribusi di AWS Cloud.
+ [Amazon Kinesis Data](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) Streams membantu Anda mengumpulkan dan memproses aliran besar catatan data secara real time.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Simple Queue Service (Amazon Simple Queue Service](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Kode**

Pola ini memberikan contoh arsitektur untuk sistem VaR di AWS Cloud dan menjelaskan bagaimana Anda dapat menggunakan fungsi Lambda untuk perhitungan VaR. [Untuk membuat fungsi Lambda Anda, lihat contoh kode dalam dokumentasi Lambda.](https://docs.aws.amazon.com/lambda/latest/dg/service_code_examples.html) Untuk bantuan, hubungi [AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Praktik terbaik
<a name="calculate-value-at-risk-var-by-using-aws-services-best-practices"></a>
+ Pertahankan setiap tugas komputasi VaR sekecil dan seringan mungkin. Bereksperimenlah dengan jumlah perdagangan yang berbeda di setiap tugas komputasi untuk melihat mana yang paling dioptimalkan untuk waktu dan biaya komputasi.
+ Simpan objek yang dapat digunakan kembali di Amazon ElastiCache. Gunakan kerangka kerja seperti Apache Arrow untuk mengurangi serialisasi dan deserialisasi.
+ Pertimbangkan batasan waktu Lambda. Jika menurut Anda tugas komputasi Anda mungkin melebihi 15 menit, cobalah untuk memecahnya menjadi tugas yang lebih kecil untuk menghindari batas waktu Lambda. Jika ini tidak memungkinkan, Anda dapat mempertimbangkan solusi orkestrasi kontainer dengan AWS Fargate, Amazon Elastic Container Service (Amazon ECS), dan Amazon Elastic Kubernetes Service (Amazon EKS).

## Epik
<a name="calculate-value-at-risk-var-by-using-aws-services-epics"></a>

### Aliran perdagangan ke sistem risiko
<a name="trade-flow-to-risk-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai menulis perdagangan.  | Perdagangan baru, diselesaikan, atau sebagian diselesaikan ditulis dari sistem manajemen pesanan ke aliran risiko. Pola ini menggunakan Amazon Kinesis sebagai layanan streaming terkelola. Hash ticker order perdagangan digunakan untuk menempatkan pesanan perdagangan di beberapa pecahan. | Amazon Kinesis | 

### Jalankan fungsi Lambda untuk pemrosesan pesanan
<a name="run-lambda-functions-for-order-processing"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai pemrosesan risiko dengan Lambda. | Jalankan fungsi AWS Lambda untuk pesanan baru. Berdasarkan jumlah order perdagangan yang tertunda, Lambda akan secara otomatis menskalakan. Setiap instans Lambda memiliki satu atau lebih pesanan dan mengambil posisi terbaru untuk setiap ticker dari Amazon. ElastiCache (Anda dapat menggunakan ID CUSIP, nama Kurva, atau nama indeks untuk produk derivatif keuangan lainnya sebagai kunci untuk menyimpan dan mengambil data dari.) ElasticCache Dalam ElastiCache, total posisi (kuantitas) dan pasangan kunci-nilai < *ticker*, posisi bersih>, di mana **posisi bersih** adalah faktor penskalaan, diperbarui satu kali untuk setiap ticker.  | Amazon Kinesis, AWS Lambda, Amazon ElastiCache | 

### Menulis pesan untuk setiap ticker ke dalam antrian
<a name="write-messages-for-each-ticker-into-queue"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tulis pesan konsolidasi ke antrian risiko. | Tulis pesan ke antrian. Pola ini menggunakan Amazon SQS sebagai layanan antrian terkelola. Satu instance Lambda mungkin mendapatkan batch mini pesanan perdagangan pada waktu tertentu, tetapi hanya akan menulis satu pesan untuk setiap ticker ke Amazon SQS. Faktor penskalaan dihitung: (*posisi bersih lama\$1posisi* *saat ini*) */posisi bersih lama*. | Amazon SQS, AWS Lambda | 

### Memohon mesin risiko
<a name="invoke-risk-engine"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai perhitungan risiko. | Fungsi Lambda untuk lambda mesin risiko dipanggil. Setiap posisi diproses oleh satu fungsi Lambda. Namun, untuk tujuan pengoptimalan, setiap fungsi Lambda dapat memproses beberapa pesan dari Amazon SQS. | Amazon SQS, AWS Lambda | 

### Mengambil hasil risiko dari cache
<a name="retrieve-risk-results-from-cache"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ambil dan perbarui cache risiko. | Lambda mengambil posisi bersih saat ini untuk setiap ticker dari. ElastiCache Ini juga mengambil array laba dan rugi (PnL) VaR untuk setiap ticker dari. ElastiCache Jika array PnL sudah ada, fungsi Lambda memperbarui array dan VaR dengan skala, yang berasal dari pesan Amazon SQS yang ditulis oleh fungsi Lambda jaring. Jika array PnL tidak masuk ElasticCache, PnL dan VaR baru dihitung dengan menggunakan data seri harga ticker simulasi. | Amazon SQS, AWS Lambda, Amazon ElastiCache | 

### Perbarui data di Elastic Cache dan simpan dalam database
<a name="update-data-in-elastic-cache-and-store-in-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyimpan hasil risiko. | Setelah nomor VaR dan PnL diperbarui ElastiCache, fungsi Lambda baru dipanggil setiap lima menit. Fungsi ini membaca semua data yang disimpan dari ElastiCache dan menyimpannya dalam database yang kompatibel dengan Aurora MySQL dan dalam ember S3. | AWS Lambda, Amazon ElastiCache | 

## Sumber daya terkait
<a name="calculate-value-at-risk-var-by-using-aws-services-resources"></a>
+ [Kerangka Basel VaR](https://www.bis.org/basel_framework/chapter/DIS/50.htm)

# Konfigurasikan akses lintas akun ke Katalog Data AWS Glue bersama menggunakan Amazon Athena
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena"></a>

*Denis Avdonin, Amazon Web Services*

## Ringkasan
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-summary"></a>

Pola ini memberikan step-by-step petunjuk, termasuk contoh kebijakan AWS Identity and Access Management (IAM), untuk mengonfigurasi berbagi lintas akun dari kumpulan data yang disimpan dalam bucket Amazon Simple Storage Service (Amazon S3) dengan menggunakan AWS Glue Data Catalog. Anda dapat menyimpan dataset dalam bucket S3. Metadata dikumpulkan oleh crawler AWS Glue dan dimasukkan ke dalam AWS Glue Data Catalog. Bucket S3 dan AWS Glue Data Catalog berada di akun AWS yang disebut sebagai akun *data*. *Anda dapat memberikan akses ke prinsipal IAM di akun AWS lain yang disebut sebagai akun konsumen.* Pengguna dapat menanyakan data di akun konsumen dengan menggunakan mesin kueri tanpa server Amazon Athena.

## Prasyarat dan batasan
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-prereqs"></a>

**Prasyarat**
+ Dua [akun AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-creating.html) aktif
+ [Bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di salah satu akun AWS
+ [Mesin Athena versi 2](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference.html#engine-versions-reference-0002)
+ AWS Command Line Interface (AWS CLI)[,](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) diinstal [dan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) dikonfigurasi (atau [AWS](https://aws.amazon.com/cloudshell/) untuk menjalankan perintah CloudShell AWS CLI)

**Versi produk**

Pola ini bekerja dengan mesin [Athena versi 2 dan mesin](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference-0002.html) [Athena](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference-0003.html) versi 3 saja. Kami menyarankan Anda meningkatkan ke mesin Athena versi 3. Jika Anda tidak dapat meningkatkan dari mesin Athena versi 1 ke mesin Athena versi 3, ikuti pendekatan yang dibahas dalam Akses [Katalog Data AWS Glue Lintas akun dengan Amazon Athena](https://aws.amazon.com/blogs/big-data/cross-account-aws-glue-data-catalog-access-with-amazon-athena/) di AWS Big Data Blog.

## Arsitektur
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-architecture"></a>

**Tumpukan teknologi target**
+ Amazon Athena
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Glue
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)

Diagram berikut menunjukkan arsitektur yang menggunakan izin IAM untuk berbagi data dalam bucket S3 di satu akun AWS (akun data) dengan akun AWS lain (akun konsumen) melalui AWS Glue Data Catalog.

![\[Berbagi kumpulan data dalam bucket S3 antara akun data dan akun konsumen menggunakan AWS Glue Data Catalog.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/4ee1d6f5-f8e1-4acb-8a9c-7601c832a87d/images/e73a2b47-c0b1-49f1-be66-9c563c11c9f9.png)


Diagram menunjukkan alur kerja berikut:

1. Kebijakan bucket S3 di akun data memberikan izin ke peran IAM di akun konsumen dan peran layanan crawler AWS Glue di akun data.

1. Kebijakan kunci AWS KMS di akun data memberikan izin untuk peran IAM di akun konsumen dan peran layanan crawler AWS Glue di akun data.

1. Crawler AWS Glue di akun data menemukan skema data yang disimpan di bucket S3.

1. Kebijakan sumber daya Katalog Data AWS Glue di akun data memberikan akses ke peran IAM di akun konsumen.

1. Pengguna membuat referensi katalog bernama di akun konsumen dengan menggunakan perintah AWS CLI.

1. Kebijakan IAM memberikan peran IAM dalam akses akun konsumen ke sumber daya di akun data. Kebijakan kepercayaan peran IAM memungkinkan pengguna di akun konsumen untuk mengambil peran IAM.

1. Seorang pengguna di akun konsumen mengasumsikan peran IAM dan mengakses objek dalam katalog data dengan menggunakan kueri SQL.

1.  Mesin tanpa server Athena menjalankan kueri SQL.

**catatan**  
[Praktik terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) [merekomendasikan agar Anda memberikan izin untuk peran IAM dan menggunakan federasi identitas.](https://aws.amazon.com/identity/federation/)

## Alat
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-tools"></a>
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk melindungi data Anda.

## Epik
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-epics"></a>

### Mengatur izin di akun data
<a name="set-up-permissions-in-the-data-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Berikan akses ke data di bucket S3. | [Buat kebijakan bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) berdasarkan template berikut dan tetapkan kebijakan ke bucket tempat data disimpan.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                     "arn:aws:iam::<consumer account id>:role/<role name>",<br />                     "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />                ]<br />            },<br />            "Action": "s3:GetObject",<br />            "Resource": "arn:aws:s3:::data-bucket/*"<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                      "arn:aws:iam::<consumer account id>:role/<role name>",<br />                      "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />                ]<br />            },<br />            "Action": "s3:ListBucket",<br />            "Resource": "arn:aws:s3:::data-bucket"<br />        }<br />    ]<br />}</pre>Kebijakan bucket memberikan izin untuk peran IAM di akun konsumen dan peran layanan crawler AWS Glue di akun data. | Administrator awan | 
| (Jika diperlukan) Berikan akses ke kunci enkripsi data. | Jika bucket S3 dienkripsi oleh kunci AWS KMS, berikan `kms:Decrypt` izin pada kunci peran IAM di akun konsumen dan peran layanan crawler AWS Glue di akun data.Perbarui [kebijakan kunci](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dengan pernyataan berikut:<pre>{<br />    "Effect": "Allow",<br />    "Principal": {<br />        "AWS": [<br />            "arn:aws:iam::<consumer account id>:role/<role name>",<br />            "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />        ]<br />    },<br />    "Action": "kms:Decrypt",<br />    "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>"<br />}</pre> | Administrator awan | 
| Berikan akses crawler ke data. | Lampirkan kebijakan IAM berikut ke peran layanan crawler:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": "s3:GetObject",<br />            "Resource": "arn:aws:s3:::data-bucket/*"<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Action": "s3:ListBucket",<br />            "Resource": "arn:aws:s3:::data-bucket"<br />        }<br />    ]<br />} </pre> | Administrator awan | 
| (Jika diperlukan) Berikan akses crawler ke kunci enkripsi data. | Jika bucket S3 dienkripsi oleh kunci AWS KMS, berikan `kms:Decrypt` izin pada kunci tersebut ke peran layanan crawler dengan melampirkan kebijakan berikut padanya:<pre>{<br />    "Effect": "Allow",<br />    "Action": "kms:Decrypt",<br />    "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>"<br />}</pre> | Administrator awan | 
| Berikan peran IAM di akun konsumen dan akses crawler ke katalog data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.html)<pre>{<br />    "Version" : "2012-10-17",<br />    "Statement" : [ <br />        {<br />            "Effect" : "Allow",<br />            "Principal" : {<br />                "AWS" : [<br />                     "arn:aws:iam::<consumer account id>:role/<role name>",<br />                    "arn:aws:iam::<data account id>:role/service-role/AWSGlueServiceRole-data-bucket-crawler"<br />                ]<br />            },<br />            "Action" : "glue:*",<br />            "Resource" : [ <br />                 "arn:aws:glue:<region>:<data account id>:catalog", <br />                 "arn:aws:glue:<region>:<data account id>:database/*", <br />                 "arn:aws:glue:<region>:<data account id>:table/*" <br />            ]<br />        } <br />    ]<br />}</pre>Kebijakan ini memungkinkan semua tindakan AWS Glue pada semua database dan tabel di akun data. Anda dapat menyesuaikan kebijakan agar hanya memberikan izin yang diperlukan kepada prinsipal konsumen. Misalnya, Anda dapat memberikan akses hanya-baca ke tabel atau tampilan tertentu dalam database. | Administrator awan | 

### Akses data dari akun konsumen
<a name="access-data-from-the-consumer-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat referensi bernama untuk katalog data. | Untuk membuat referensi katalog data bernama, gunakan [CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/getting-started.html)atau AWS CLI yang diinstal secara lokal untuk menjalankan perintah berikut:<pre>aws athena create-data-catalog --name <shared catalog name> --type GLUE --parameters catalog-id=<data account id></pre> | Administrator awan | 
| Berikan peran IAM dalam akses akun konsumen ke data. | Lampirkan kebijakan berikut ke peran IAM di akun konsumen untuk memberikan akses lintas akun peran ke data:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />        {<br />             "Effect": "Allow",<br />             "Action": "s3:GetObject",<br />             "Resource": "arn:aws:s3:::data-bucket/*"<br />        },<br />        {<br />             "Effect": "Allow",<br />             "Action": "s3:ListBucket",<br />             "Resource": "arn:aws:s3:::data-bucket"<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Action": "glue:*",<br />            "Resource": [<br />                 "arn:aws:glue:<region>:<data account id>:catalog",<br />                 "arn:aws:glue:<region>:<data account id>:database/*",<br />                 "arn:aws:glue:<region>:<data account id>:table/*"<br />            ]<br />        }<br />    ]<br />}</pre>Selanjutnya, gunakan templat berikut untuk menentukan apa yang pengguna dapat menerima peran IAM dalam kebijakan kepercayaannya:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />       {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": "arn:aws:iam::<consumer account id>:user/<IAM user>"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre>Terakhir, berikan izin pengguna untuk mengambil peran IAM dengan melampirkan kebijakan yang sama ke grup pengguna tempat mereka berada. | Administrator awan | 
| (Jika diperlukan) Berikan peran IAM dalam akses akun konsumen ke kunci enkripsi data. | Jika bucket S3 dienkripsi oleh kunci AWS KMS, berikan `kms:Decrypt` izin pada kunci peran IAM di akun konsumen dengan melampirkan kebijakan berikut padanya:<pre>{<br />     "Effect": "Allow",<br />     "Action": "kms:Decrypt",<br />     "Resource": "arn:aws:kms:<region>:<data account id>:key/<key id>"<br />}</pre> | Administrator awan | 
| Beralih ke peran IAM di akun konsumen untuk mengakses data. | Sebagai konsumen data, [beralihlah ke peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) untuk mengakses data di akun data. | Konsumen data | 
| Akses datanya. | Kueri data menggunakan Athena. Misalnya, buka editor kueri Athena dan jalankan kueri berikut:<pre>SELECT *<br />  FROM <shared catalog name>.<database name>.<table name></pre>Alih-alih menggunakan referensi katalog bernama, Anda juga dapat merujuk ke katalog dengan Nama Sumber Daya Amazon (ARN).Jika Anda menggunakan referensi katalog dinamis dalam kueri atau tampilan, kelilingi referensi dengan tanda kutip ganda yang diloloskan (\$1”). Contoh:<pre>SELECT * <br />  FROM \"glue:arn:aws:glue:<region>:<data account id>:catalog\".<database name>.<table name></pre>Untuk informasi selengkapnya, lihat [Akses lintas akun ke katalog data AWS Glue di Panduan](https://docs.aws.amazon.com/athena/latest/ug/security-iam-cross-account-glue-catalog-access.html) Pengguna Amazon Athena. | Konsumen data | 

## Sumber daya terkait
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-resources"></a>
+ [Akses lintas akun ke katalog data AWS Glue (dokumentasi Athena)](https://docs.aws.amazon.com/athena/latest/ug/security-iam-cross-account-glue-catalog-access.html)
+ [(AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/athena/create-data-catalog.html) (Referensi create-data-catalog Perintah AWS CLI)
+ [Akses Katalog Data AWS Glue lintas akun dengan Amazon Athena](https://aws.amazon.com/blogs/big-data/cross-account-aws-glue-data-catalog-access-with-amazon-athena/) (AWS Big Data Blog)
+ [Praktik terbaik keamanan dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (dokumentasi IAM)

## Informasi tambahan
<a name="configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena-additional"></a>

**Menggunakan Lake Formation sebagai alternatif untuk berbagi lintas akun**

Anda juga dapat menggunakan AWS Lake Formation untuk berbagi akses ke objek katalog AWS Glue di seluruh akun. Lake Formation menyediakan kontrol akses berbutir halus pada tingkat kolom dan baris, kontrol akses berbasis tag, tabel yang diatur untuk transaksi ACID, dan fungsionalitas lainnya. Meskipun Lake Formation terintegrasi dengan baik dengan Athena, itu memang memerlukan konfigurasi tambahan dibandingkan dengan pendekatan IAM-only pola ini. Kami menyarankan Anda mempertimbangkan keputusan untuk menggunakan Lake Formation atau kontrol akses khusus IAM dalam konteks yang lebih luas dari keseluruhan arsitektur solusi Anda. Pertimbangan mencakup layanan lain apa yang terlibat dan bagaimana mereka berintegrasi dengan kedua pendekatan tersebut.

# Mengonversi fitur temporal Teradata NORMALIZE ke Amazon Redshift SQL
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql"></a>

*Po Hong, Amazon Web Services*

## Ringkasan
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-summary"></a>

**NORMALIZE** adalah ekstensi Teradata ke standar ANSI SQL. Ketika tabel SQL menyertakan kolom yang memiliki tipe data **PERIODE**, **NORMALIZE** menggabungkan nilai yang bertemu atau tumpang tindih di kolom itu, untuk membentuk satu periode yang mengkonsolidasikan beberapa nilai periode individual. Untuk menggunakan **NORMALIZE**, setidaknya satu kolom dalam daftar SQL **SELECT** harus dari tipe data **PERIODE** temporal Teradata. Untuk informasi selengkapnya tentang **NORMALIZE**, lihat dokumentasi [Teradata](https://docs.teradata.com/reader/2_MC9vCtAJRlKle2Rpb0mA/MIGI5UMEwgERC3Un7tEZ6g). 

Amazon Redshift tidak mendukung **NORMALIZE**, tetapi Anda dapat menerapkan fungsi ini dengan menggunakan sintaks SQL asli dan fungsi jendela **LAG** di Amazon Redshift. Pola ini berfokus pada penggunaan ekstensi Teradata **NORMALIZE** dengan kondisi **ON MEETS OR OVERLAPS**, yang merupakan format paling populer. Ini menjelaskan bagaimana fitur ini bekerja di Teradata dan bagaimana hal itu dapat diubah menjadi sintaks SQL asli Amazon Redshift.

## Prasyarat dan batasan
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-prereqs"></a>

**Prasyarat**
+ Pengetahuan dan pengalaman SQL Teradata dasar
+ Pengetahuan dan pengalaman Amazon Redshift

## Arsitektur
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-architecture"></a>

**Tumpukan teknologi sumber**
+ Gudang data Teradata

**Tumpukan teknologi target**
+ Amazon Redshift

**Arsitektur target**

Untuk arsitektur tingkat tinggi untuk memigrasikan database Teradata ke Amazon Redshift, lihat pola [Memigrasikan database Teradata ke Amazon Redshift](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html) menggunakan agen ekstraksi data AWS SCT. Migrasi tidak secara otomatis mengonversi frasa Teradata **NORMALIZE** ke Amazon Redshift SQL. Anda dapat mengonversi ekstensi Teradata ini dengan mengikuti pedoman dalam pola ini.

## Alat
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-tools"></a>

**Kode**

Untuk mengilustrasikan konsep dan fungsionalitas **NORMALIZE**, pertimbangkan definisi tabel berikut di Teradata:

```
CREATE TABLE systest.project
     (    emp_id        INTEGER,
          project_name  VARCHAR(20),
          dept_id       INTEGER,
          duration      PERIOD(DATE)
     );
```

Jalankan kode SQL berikut untuk memasukkan data sampel ke dalam tabel:

```
BEGIN TRANSACTION;

INSERT INTO systest.project VALUES (10, 'First Phase', 1000,  PERIOD(DATE '2010-01-10', DATE '2010-03-20') );
INSERT INTO systest.project VALUES (10, 'First Phase', 2000,  PERIOD(DATE '2010-03-20', DATE '2010-07-15') );

INSERT INTO systest.project VALUES (10, 'Second Phase', 2000,  PERIOD(DATE '2010-06-15', DATE '2010-08-18') );
INSERT INTO systest.project VALUES (20, 'First Phase', 2000,  PERIOD(DATE '2010-03-10', DATE '2010-07-20') );

INSERT INTO systest.project VALUES (20, 'Second Phase', 1000,  PERIOD(DATE '2020-05-10', DATE '2020-09-20') );

END TRANSACTION;
```

Hasil:

```
select * from systest.project order by 1,2,3;
 
 *** Query completed. 4 rows found. 4 columns returned.
 *** Total elapsed time was 1 second.
 
     emp_id  project_name              dept_id  duration
-----------  --------------------  -----------  ------------------------
         10  First Phase                  1000  ('10/01/10', '10/03/20')        
         10  First Phase                  2000  ('10/03/20', '10/07/15')
         10  Second Phase                 2000  ('10/06/15', '10/08/18')
         20  First Phase                  2000  ('10/03/10', '10/07/20')
         20  Second Phase                 1000  ('20/05/10', '20/09/20')
```

*Kasus penggunaan Teradata NORMALIZE*

**Sekarang tambahkan klausa Teradata **NORMALIZE** SQL ke pernyataan SELECT:**

```
SELECT NORMALIZE ON MEETS OR OVERLAPS emp_id, duration 
FROM systest.project 
ORDER BY 1,2;
```

Operasi **NORMALIZE** ini dilakukan pada satu kolom (`emp_id`). Untuk`emp_id=10`, tiga nilai periode yang tumpang tindih dalam durasi menyatu menjadi nilai periode tunggal, sebagai berikut:  

```
     emp_id  duration
-----------  ------------------------
         10  ('10/01/10', '10/08/18')
         20  ('10/03/10', '10/07/20')
         20  ('20/05/10', '20/09/20')
```

Pernyataan **SELECT** berikut melakukan operasi **NORMALIZE** pada `project_name` dan`dept_id`. Perhatikan bahwa daftar **SELECT** hanya berisi satu kolom **PERIODE**,`duration`.

```
SELECT NORMALIZE project_name, dept_id, duration 
FROM systest.project;
```

Output:

```
project_name              dept_id  duration
--------------------  -----------  ------------------------
First Phase                  1000  ('10/01/10', '10/03/20')
Second Phase                 1000  ('20/05/10', '20/09/20')
First Phase                  2000  ('10/03/10', '10/07/20')
Second Phase                 2000  ('10/06/15', '10/08/18')
```

*SQL setara Amazon Redshift*

Amazon Redshift saat ini tidak mendukung tipe data **PERIODE** dalam tabel. Sebagai gantinya, Anda perlu membagi bidang data **Periode** Teradata menjadi dua bagian:`start_date, end_date`, sebagai berikut:  

```
CREATE TABLE systest.project
     (    emp_id        INTEGER,
          project_name  VARCHAR(20),
          dept_id       INTEGER,
          start_date  DATE,
          end_date    DATE
     );
```

Masukkan data sampel ke dalam tabel:

```
BEGIN TRANSACTION;
 
INSERT INTO systest.project VALUES (10, 'First Phase', 1000,  DATE '2010-01-10', DATE '2010-03-20' );
INSERT INTO systest.project VALUES (10, 'First Phase', 2000,  DATE '2010-03-20', DATE '2010-07-15');
 
INSERT INTO systest.project VALUES (10, 'Second Phase', 2000,  DATE '2010-06-15', DATE '2010-08-18' );
INSERT INTO systest.project VALUES (20, 'First Phase', 2000,  DATE '2010-03-10', DATE '2010-07-20' );
 
INSERT INTO systest.project VALUES (20, 'Second Phase', 1000,  DATE '2020-05-10', DATE '2020-09-20' );
 
END TRANSACTION;
```

Output:

```
 emp_id | project_name | dept_id | start_date |  end_date
--------+--------------+---------+------------+------------
     10 | First Phase  |    1000 | 2010-01-10 | 2010-03-20
     10 | First Phase  |    2000 | 2010-03-20 | 2010-07-15
     10 | Second Phase |    2000 | 2010-06-15 | 2010-08-18
     20 | First Phase  |    2000 | 2010-03-10 | 2010-07-20
     20 | Second Phase |    1000 | 2020-05-10 | 2020-09-20
(5 rows)
```

Untuk menulis ulang klausa **NORMALIZE** Teradata, Anda dapat menggunakan fungsi [jendela LAG di Amazon](https://docs.aws.amazon.com/redshift/latest/dg/r_WF_LAG.html) Redshift. Fungsi ini mengembalikan nilai-nilai untuk baris pada offset tertentu di atas (sebelum) baris saat ini di partisi.

Anda dapat menggunakan fungsi **LAG** untuk mengidentifikasi setiap baris yang memulai periode baru dengan menentukan apakah suatu periode bertemu atau tumpang tindih dengan periode sebelumnya (0 jika ya dan 1 jika tidak). Ketika bendera ini diringkas secara kumulatif, ia menyediakan pengidentifikasi grup yang dapat digunakan di klausa **Grup By** luar untuk sampai pada hasil yang diinginkan di Amazon Redshift.  

Berikut contoh pernyataan Amazon Redshift SQL yang menggunakan **LAG** ():

```
SELECT emp_id, start_date, end_date, 
            (CASE WHEN start_date <= LAG(end_date) OVER (PARTITION BY emp_id ORDER BY start_date, end_date) THEN 0 ELSE 1 END) AS GroupStartFlag
FROM systest.project 
ORDER BY 1,2;
```

Output:

```
 emp_id | start_date |  end_date  | groupstartflag
--------+------------+------------+----------------
     10 | 2010-01-10 | 2010-03-20 |              1
     10 | 2010-03-20 | 2010-07-15 |              0
     10 | 2010-06-15 | 2010-08-18 |              0
     20 | 2010-03-10 | 2010-07-20 |              1
     20 | 2020-05-10 | 2020-09-20 |              1
(5 rows)
```

Pernyataan Amazon Redshift SQL berikut hanya dinormalisasi pada kolom: `emp_id`

```
SELECT T2.emp_id, MIN(T2.start_date) as new_start_date, MAX(T2.end_date) as new_end_date
FROM 
( SELECT T1.*, SUM(GroupStartFlag) OVER (PARTITION BY emp_id ORDER BY start_date ROWS UNBOUNDED PRECEDING) As GroupID
FROM ( SELECT emp_id, start_date, end_date, 
            (CASE WHEN start_date <= LAG(end_date) OVER (PARTITION BY emp_id ORDER BY start_date, end_date) THEN 0 ELSE 1 END) AS GroupStartFlag
FROM systest.project ) T1
) T2
GROUP BY T2.emp_id, T2.GroupID
ORDER BY 1,2;
```

Output:  

```
 emp_id | new_start_date | new_end_date
--------+----------------+------------------------------------
     10 | 2010-01-10     | 2010-08-18
     20 | 2010-03-10     | 2010-07-20
     20 | 2020-05-10     | 2020-09-20
(3 rows)
```

** **

Pernyataan Amazon Redshift SQL berikut dinormalisasi pada kolom dan kolom: `project_name` `dept_id`

```
SELECT T2.project_name, T2.dept_id, MIN(T2.start_date) as new_start_date, MAX(T2.end_date) as new_end_date
FROM 
( SELECT T1.*, SUM(GroupStartFlag) OVER (PARTITION BY project_name, dept_id ORDER BY start_date ROWS UNBOUNDED PRECEDING) As GroupID
FROM ( SELECT project_name, dept_id, start_date, end_date, 
            (CASE WHEN start_date <= LAG(end_date) OVER (PARTITION BY project_name, dept_id ORDER BY start_date, end_date) THEN 0 ELSE 1 END) AS GroupStartFlag
FROM systest.project ) T1
) T2
GROUP BY T2.project_name, T2.dept_id, T2.GroupID
ORDER BY 1,2,3;
```

Output:

```
 project_name | dept_id | new_start_date | new_end_date
--------------+---------+----------------+--------------
 First Phase  |    1000 | 2010-01-10     | 2010-03-20
 First Phase  |    2000 | 2010-03-10     | 2010-07-20
 Second Phase |    1000 | 2020-05-10     | 2020-09-20
 Second Phase |    2000 | 2010-06-15     | 2010-08-18
(4 rows)
```

## Epik
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-epics"></a>

### Konversi NORMALIZE ke Amazon Redshift SQL
<a name="convert-normalize-to-amazon-redshift-sql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kode SQL Teradata Anda. | Gunakan frasa NORMALIZE sesuai dengan kebutuhan Anda. | Developer SQL | 
| Konversi kode ke Amazon Redshift SQL. | Untuk mengonversi kode Anda, ikuti panduan di bagian “Alat” dari pola ini. | Developer SQL | 
| Jalankan kode di Amazon Redshift. | Buat tabel Anda, muat data ke dalam tabel, dan jalankan kode Anda di Amazon Redshift. | Developer SQL | 

## Sumber daya terkait
<a name="convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql-resources"></a>

**Referensi**
+ [Teradata NORMALIZE fitur temporal (dokumentasi](https://docs.teradata.com/reader/2_MC9vCtAJRlKle2Rpb0mA/MIGI5UMEwgERC3Un7tEZ6g) Teradata)
+ [Fungsi jendela LAG](https://docs.aws.amazon.com/redshift/latest/dg/r_WF_LAG.html) (dokumentasi Amazon Redshift)
+ [Bermigrasi ke Amazon](https://aws.amazon.com/redshift/data-warehouse-migration/) Redshift (situs web AWS)
+ [Migrasikan database Teradata ke Amazon Redshift menggunakan agen ekstraksi data AWS SCT (AWS Prescriptive Guidance](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html))
+ [Mengonversi fitur Teradata RESET WHEN ke Amazon Redshift](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.html) SQL (AWS Prescriptive Guidance)

**Alat**
+ [Alat Konversi Skema AWS (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/)

**Mitra**
+ [Mitra Kompetensi Migrasi AWS](https://aws.amazon.com/migration/partner-solutions/#delivery)

# Mengonversi fitur Teradata RESET WHEN ke Amazon Redshift SQL
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql"></a>

*Po Hong, Amazon Web Services*

## Ringkasan
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-summary"></a>

**RESET WHEN** adalah fitur Teradata yang digunakan dalam fungsi jendela analitik SQL. Ini adalah perpanjangan dari standar ANSI SQL. **RESET** WHEN menentukan partisi di mana fungsi jendela SQL beroperasi berdasarkan beberapa kondisi tertentu. Jika kondisi dievaluasi ke **TRUE**, sub-partisi dinamis baru dibuat di dalam partisi jendela yang ada. Untuk informasi selengkapnya tentang **RESET KAPAN**, lihat dokumentasi [Teradata](https://docs.teradata.com/reader/1DcoER_KpnGTfgPinRAFUw/b7wL86OoMTPno6hrSPNdDg).

Amazon Redshift tidak mendukung **RESET WHEN dalam fungsi** jendela SQL. Untuk mengimplementasikan fungsionalitas ini, Anda harus mengonversi **RESET** WHEN ke sintaks SQL asli di Amazon Redshift, dan menggunakan beberapa fungsi bersarang. Pola ini menunjukkan bagaimana Anda dapat menggunakan fitur Teradata **RESET** WHEN dan bagaimana Anda dapat mengonversinya ke sintaks Amazon Redshift SQL. 

## Prasyarat dan batasan
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-prereqs"></a>

**Prasyarat**
+ Pengetahuan dasar gudang data Teradata dan sintaks SQL-nya
+ Pemahaman yang baik tentang Amazon Redshift dan sintaks SQL-nya

## Arsitektur
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-architecture"></a>

**Tumpukan teknologi sumber**
+ Gudang data Teradata

**Tumpukan teknologi target**
+ Amazon Redshift

**Arsitektur **

Untuk arsitektur tingkat tinggi untuk memigrasikan database Teradata ke Amazon Redshift, lihat pola [Memigrasikan database Teradata ke Amazon Redshift](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html) menggunakan agen ekstraksi data AWS SCT. Migrasi tidak secara otomatis mengonversi frasa Teradata **RESET WHEN** ke Amazon Redshift SQL. Anda dapat mengonversi ekstensi Teradata ini dengan mengikuti panduan di bagian berikutnya.

## Alat
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-tools"></a>

**Kode**

Untuk mengilustrasikan konsep **RESET WHEN**, pertimbangkan definisi tabel berikut di Teradata:

```
create table systest.f_account_balance                                
( account_id integer NOT NULL,
  month_id integer,
  balance integer )
unique primary index (account_id, month_id);
```

Jalankan kode SQL berikut untuk memasukkan data sampel ke dalam tabel:

```
BEGIN TRANSACTION;
Insert Into systest.f_account_balance values (1,1,60);
Insert Into systest.f_account_balance values (1,2,99);
Insert Into systest.f_account_balance values (1,3,94);
Insert Into systest.f_account_balance values (1,4,90);
Insert Into systest.f_account_balance values (1,5,80);
Insert Into systest.f_account_balance values (1,6,88);
Insert Into systest.f_account_balance values (1,7,90);
Insert Into systest.f_account_balance values (1,8,92);
Insert Into systest.f_account_balance values (1,9,10);
Insert Into systest.f_account_balance values (1,10,60);
Insert Into systest.f_account_balance values (1,11,80);
Insert Into systest.f_account_balance values (1,12,10);
END TRANSACTION;
```

Tabel sampel memiliki data berikut:


| 
| 
| account\$1id | bulan\$1id | keseimbangan | 
| --- |--- |--- |
| 1 | 1 | 60 | 
| 1 | 2 | 99 | 
| 1 | 3 | 94 | 
| 1 | 4 | 90 | 
| 1 | 5 | 80 | 
| 1 | 6 | 88 | 
| 1 | 7 | 90 | 
| 1 | 8 | 92 | 
| 1 | 9 | 10 | 
| 1 | 10 | 60 | 
| 1 | 11 | 80 | 
| 1 | 12 | 10 | 

Untuk setiap akun, katakanlah Anda ingin menganalisis urutan kenaikan saldo bulanan berturut-turut. Ketika saldo satu bulan kurang dari, atau sama dengan, saldo bulan sebelumnya, persyaratannya adalah mengatur ulang penghitung ke nol dan memulai kembali.

*Teradata RESET SAAT menggunakan kasus*

Untuk menganalisis data ini, Teradata SQL menggunakan fungsi jendela dengan agregat bersarang dan frase **RESET WHEN, sebagai berikut**:

```
SELECT account_id, month_id, balance,
 ( ROW_NUMBER() OVER (PARTITION BY account_id ORDER BY month_id
RESET WHEN balance <= SUM(balance) over (PARTITION BY account_id ORDER BY month_id ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) ) -1 ) as balance_increase
FROM systest.f_account_balance
ORDER BY 1,2;
```

Output:


| 
| 
|  account\$1id | bulan\$1id | keseimbangan | balance\$1increase | 
| --- |--- |--- |--- |
| 1 | 1 | 60 | 0 | 
| 1 | 2 | 99 | 1 | 
| 1 | 3 | 94 | 0 | 
| 1 | 4 | 90 | 0 | 
| 1 | 5 | 80 | 0 | 
| 1 | 6 | 88 | 1 | 
| 1 | 7 | 90 | 2 | 
| 1 | 8 | 92 | 3 | 
| 1 | 9 | 10 | 0 | 
| 1 | 10 | 60 | 1 | 
| 1 | 11 | 80 | 2 | 
| 1 | 12 | 10 | 0 | 

Kueri diproses sebagai berikut di Teradata:

1. Fungsi agregat **SUM (saldo)** menghitung jumlah semua saldo untuk akun tertentu dalam bulan tertentu.

1. Kami memeriksa untuk melihat apakah saldo dalam bulan tertentu (untuk akun tertentu) lebih besar dari saldo bulan sebelumnya.

1. Jika saldo meningkat, kami melacak nilai hitungan kumulatif. **Jika kondisi RESET** WHEN dievaluasi menjadi **false**, yang berarti saldo telah meningkat selama beberapa bulan berturut-turut, kami terus meningkatkan hitungan.

1. Fungsi analitis berurutan **ROW\$1NUMBER ()** menghitung nilai hitungan. Ketika kita mencapai bulan yang saldo kurang dari, atau sama dengan, saldo bulan sebelumnya, kondisi **RESET WHEN** dievaluasi menjadi **benar**. Jika demikian, kita memulai partisi baru dan **ROW\$1NUMBER ()** memulai ulang hitungan dari 1. Kami menggunakan **ROWS BETWEEN 1 PRECEDING DAN 1 PRECEDING** untuk mengakses nilai baris sebelumnya.

1. Kami mengurangi 1 untuk memastikan bahwa nilai hitungan dimulai dengan 0.

*SQL setara Amazon Redshift*

Amazon Redshift tidak mendukung frase **RESET WHEN** dalam fungsi jendela analitik SQL.  Untuk menghasilkan hasil yang sama, Anda harus menulis ulang Teradata SQL menggunakan sintaks SQL asli Amazon Redshift dan sub-kueri bersarang, sebagai berikut: 

```
SELECT account_id, month_id, balance,
   (ROW_NUMBER() OVER(PARTITION BY account_id, new_dynamic_part ORDER BY month_id) -1) as balance_increase
FROM
( SELECT account_id, month_id, balance, prev_balance,
SUM(dynamic_part) OVER (PARTITION BY account_id ORDER BY month_id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) As new_dynamic_part
FROM ( SELECT account_id, month_id, balance,
SUM(balance) over (PARTITION BY account_id ORDER BY month_id ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as prev_balance,
(CASE When balance <= prev_balance Then 1 Else 0 END) as dynamic_part
FROM systest.f_account_balance ) A
) B
ORDER BY 1,2;
```

Karena Amazon Redshift tidak mendukung fungsi jendela bersarang di klausa **SELECT** dari satu pernyataan SQL, Anda harus menggunakan dua sub-kueri bersarang.
+ Dalam sub-query bagian dalam (alias A), indikator partisi dinamis (**dynamic\$1part**) dibuat dan diisi. **dynamic\$1part** diatur ke 1 jika saldo satu bulan kurang dari atau sama dengan saldo bulan sebelumnya; jika tidak, itu diatur ke 0. 
+ **Di lapisan berikutnya (alias B), atribut **new\$1dynamic\$1part** dihasilkan sebagai hasil dari fungsi jendela SUM.** 
+ Akhirnya, Anda menambahkan **new\$1dynamic\$1part** sebagai atribut partisi baru (partisi **dinamis) ke atribut partisi** yang ada (**account\$1id) dan menerapkan fungsi jendela ROW\$1NUMBER** **() yang sama seperti di Teradata (dan minus satu)**. 

Setelah perubahan ini, Amazon Redshift SQL menghasilkan output yang sama dengan Teradata.

## Epik
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-epics"></a>

### Konversi RESET WHEN ke Amazon Redshift SQL
<a name="convert-reset-when-to-amazon-redshift-sql"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat fungsi jendela Teradata Anda. | Gunakan agregat bersarang dan frase RESET WHEN sesuai dengan kebutuhan Anda. | Developer SQL | 
| Konversi kode ke Amazon Redshift SQL. | Untuk mengonversi kode Anda, ikuti panduan di bagian “Alat” dari pola ini. | Developer SQL | 
| Jalankan kode di Amazon Redshift. | Buat tabel Anda, muat data ke dalam tabel, dan jalankan kode Anda di Amazon Redshift. | Developer SQL | 

## Sumber daya terkait
<a name="convert-the-teradata-reset-when-feature-to-amazon-redshift-sql-resources"></a>

**Referensi**
+ [RESET WHEN Phrase](https://docs.teradata.com/reader/1DcoER_KpnGTfgPinRAFUw/b7wL86OoMTPno6hrSPNdDg) (dokumentasi Teradata)
+ [RESET SAAT penjelasan](https://stackoverflow.com/questions/53344536/teradata-reset-when-partition-by-order-by) (Stack Overflow)
+ [Bermigrasi ke Amazon](https://aws.amazon.com/redshift/data-warehouse-migration/) Redshift (situs web AWS)
+ [Migrasikan database Teradata ke Amazon Redshift menggunakan agen ekstraksi data AWS SCT (AWS Prescriptive Guidance](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-a-teradata-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.html))
+ [Mengonversi fitur temporal Teradata NORMALIZE ke Amazon Redshift](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.html) SQL (AWS Prescriptive Guidance)

**Alat**
+ [Alat Konversi Skema AWS (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/)

**Mitra**
+ [Mitra Kompetensi Migrasi AWS](https://aws.amazon.com/migration/partner-solutions/#delivery)

# Menerapkan dan mengelola data lake tanpa server di AWS Cloud dengan menggunakan infrastruktur sebagai kode
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code"></a>

*Kirankumar Chandrashekar dan Abdel Jaidi, Amazon Web Services*

## Ringkasan
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-summary"></a>

Pola ini menjelaskan cara menggunakan [komputasi tanpa server](https://aws.amazon.com/serverless/) dan [infrastruktur sebagai kode](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html) (IAc) untuk mengimplementasikan dan mengelola data lake di Amazon Web Services (AWS) Cloud. Pola ini didasarkan pada lokakarya [kerangka kerja data lake tanpa server (SDLF) yang dikembangkan oleh AWS](https://sdlf.workshop.aws/).

SDLF adalah kumpulan sumber daya yang dapat digunakan kembali yang mempercepat pengiriman data lake perusahaan di AWS Cloud dan membantu penyebaran yang lebih cepat ke produksi. Ini digunakan untuk mengimplementasikan struktur dasar danau data dengan mengikuti praktik terbaik.

SDLF mengimplementasikan proses integrasi/penerapan berkelanjutan (CI/CD) di seluruh penerapan kode dan infrastruktur dengan menggunakan layanan AWS seperti AWS, AWS, dan AWS. CodePipeline CodeBuild CodeCommit

Pola ini menggunakan beberapa layanan tanpa server AWS untuk menyederhanakan pengelolaan data lake. Ini termasuk Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dan Amazon DynamoDB untuk penyimpanan, AWS Lambda dan AWS Glue untuk komputasi, CloudWatch dan Amazon Events, Amazon Simple Queue Service (Amazon SQS), dan AWS Step Functions untuk orkestrasi.

Layanan kode AWS CloudFormation dan AWS bertindak sebagai lapisan IAc untuk menyediakan penerapan yang dapat direproduksi dan cepat dengan pengoperasian dan administrasi yang mudah.

## Prasyarat dan batasan
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)), diinstal dan dikonfigurasi. 
+ Klien Git, diinstal dan dikonfigurasi.
+ [Lokakarya SDLF](https://sdlf.workshop.aws/), terbuka di jendela browser web dan siap digunakan. 

## Arsitektur
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-architecture"></a>

![\[Menerapkan dan mengelola data lake di AWS Cloud.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f4fc3ad2-1c4f-45ea-bc86-2db13105a173/images/e0cfff30-f0f8-4fc1-8e84-a152ef615c58.png)


 Diagram arsitektur menggambarkan proses yang digerakkan oleh peristiwa dengan langkah-langkah berikut. 

1. Setelah file ditambahkan ke bucket S3 data mentah, pemberitahuan peristiwa Amazon S3 ditempatkan dalam antrean SQS. Setiap notifikasi dikirimkan sebagai file JSON, yang berisi metadata seperti nama bucket S3, kunci objek, atau stempel waktu.

1. Pemberitahuan ini digunakan oleh fungsi Lambda yang merutekan peristiwa ke proses ekstraksi, transformasi, dan pemuatan (ETL) yang benar berdasarkan metadata. Fungsi Lambda juga dapat menggunakan konfigurasi kontekstual yang disimpan dalam tabel Amazon DynamoDB. Langkah ini memungkinkan decoupling dan scaling ke beberapa aplikasi di data lake.

1. Acara ini diarahkan ke fungsi Lambda pertama dalam proses ETL, yang mengubah dan memindahkan data dari area data mentah ke area pementasan untuk danau data. Langkah pertama adalah memperbarui katalog komprehensif. Ini adalah tabel DynamoDB yang berisi semua metadata file dari data lake. Setiap baris dalam tabel ini menyimpan metadata operasional tentang satu objek yang disimpan di Amazon S3. Panggilan sinkron dibuat ke fungsi Lambda yang melakukan transformasi cahaya, yang merupakan operasi komputasi yang murah (seperti mengonversi file dari satu format ke format lainnya), pada objek S3. Karena objek baru telah ditambahkan ke bucket S3 pementasan, katalog komprehensif diperbarui dan pesan dikirim ke antrian SQS menunggu fase berikutnya di ETL.

1. Aturan CloudWatch Peristiwa memicu fungsi Lambda setiap 5 menit. Fungsi ini memeriksa apakah pesan dikirim ke antrian SQS dari fase ETL sebelumnya. Jika pesan terkirim, fungsi Lambda memulai fungsi kedua dari [AWS Step Functions dalam proses](https://docs.aws.amazon.com/step-functions/latest/dg/sample-start-workflow.html) ETL.

1. Transformasi berat kemudian diterapkan pada sekumpulan file. Transformasi berat ini adalah operasi yang mahal secara komputasi, seperti panggilan sinkron ke pekerjaan AWS Glue, tugas AWS Fargate, langkah EMR Amazon, atau notebook Amazon. SageMaker Metadata tabel diekstraksi dari file output dengan menggunakan crawler AWS Glue, yang memperbarui katalog AWS Glue. Metadata file juga ditambahkan ke tabel katalog komprehensif di DynamoDB. Akhirnya, langkah kualitas data yang memanfaatkan [Deequ](https://github.com/awslabs/deequ) juga dijalankan.

**Tumpukan teknologi**
+  CloudWatch Acara Amazon
+ AWS CloudFormation
+ AWS CodePipeline
+ AWS CodeBuild
+ AWS CodeCommit
+ Amazon DynamoDB
+ AWS Glue
+ AWS Lambda
+ Amazon S3
+ Amazon SQS
+ AWS Step Functions

## Alat
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-tools"></a>
+ [ CloudWatch Acara Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — CloudWatch Acara menghadirkan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan sumber daya AWS.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — CloudFormation membantu membuat dan menyediakan penerapan infrastruktur AWS secara dapat diprediksi dan berulang kali.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) — CodeBuild adalah layanan build terkelola penuh yang mengompilasi kode sumber Anda, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) — CodeCommit adalah layanan kontrol versi yang dihosting oleh AWS yang dapat Anda gunakan untuk menyimpan dan mengelola aset secara pribadi (seperti kode sumber dan file biner).
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) — CodePipeline adalah layanan pengiriman berkelanjutan yang dapat Anda gunakan untuk memodelkan, memvisualisasikan, dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak Anda secara terus menerus.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) - DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat dan dapat diprediksi dengan skalabilitas. 
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) — AWS Glue adalah layanan ETL yang dikelola sepenuhnya yang memudahkan penyiapan dan pemuatan data untuk analitik.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — Lambda mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. 
+ [Amazon S3 - Amazon Simple Storage](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel. Amazon S3 dapat digunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan data lake.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) - AWS Step Functions adalah orkestrator fungsi tanpa server yang memudahkan untuk mengurutkan fungsi AWS Lambda dan beberapa layanan AWS ke dalam aplikasi penting bisnis.
+ [Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) — Amazon Simple Queue Service (Amazon SQS) adalah layanan antrian pesan yang dikelola sepenuhnya yang membantu Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server.
+ [Deequ](https://github.com/awslabs/deequ) - Deequ adalah alat yang membantu Anda menghitung metrik kualitas data untuk kumpulan data besar, menentukan dan memverifikasi kendala kualitas data, dan tetap mendapat informasi tentang perubahan dalam distribusi data.

**Repositori kode**

Kode sumber dan sumber daya untuk SDLF tersedia di repositori [AWS Labs GitHub ](https://github.com/awslabs/aws-serverless-data-lake-framework/).

## Epik
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-epics"></a>

### Siapkan CI/CD pipeline untuk menyediakan IAc
<a name="set-up-the-ci-cd-pipeline-to-provision-iac"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan CI/CD pipeline untuk mengelola IAc untuk data lake. | Masuk ke AWS Management Console dan ikuti langkah-langkah dari bagian [Penyiapan awal](https://sdlf.workshop.aws/en/10-deployment/100-setup.html) bengkel SDLF. Ini menciptakan CI/CD sumber daya awal, seperti CodeCommit repositori, CodeBuild lingkungan, dan CodePipeline saluran pipa yang menyediakan dan mengelola IAc untuk data lake. | DevOps insinyur | 

### Kontrol versi IAc
<a name="version-control-the-iac"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning CodeCommit repositori pada mesin lokal Anda. | Ikuti langkah-langkah dari bagian [Deploying the foundation](https://sdlf.workshop.aws/en/10-deployment/200-foundations.html) dari lokakarya SDLF. Ini membantu Anda mengkloning repositori Git yang menghosting IAc ke lingkungan lokal Anda. Untuk informasi selengkapnya, lihat [Menghubungkan ke CodeCommit repositori](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html) dari dokumentasi. CodeCommit  | DevOps insinyur | 
| Ubah CloudFormation template. | Gunakan workstation lokal Anda dan editor kode untuk memodifikasi CloudFormation template sesuai dengan kasus penggunaan atau persyaratan Anda. Komit mereka ke repositori Git yang dikloning secara lokal. Untuk informasi selengkapnya, lihat [Bekerja dengan CloudFormation templat AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) dari CloudFormation dokumentasi AWS. | DevOps insinyur | 
| Dorong perubahan ke CodeCommit repositori.  | Kode infrastruktur Anda sekarang berada di bawah kontrol versi dan modifikasi pada basis kode Anda dilacak. Saat Anda mendorong perubahan ke CodeCommit repositori, CodePipeline secara otomatis menerapkannya ke infrastruktur Anda dan mengirimkannya ke. CodeBuild Jika Anda menggunakan AWS SAM CLI di CodeBuild, jalankan perintah `sam package` dan`sam deploy`. Jika Anda menggunakan AWS CLI, jalankan perintah `aws cloudformation package` and`aws cloudformation deploy`. | DevOps insinyur | 

## Sumber daya terkait
<a name="deploy-and-manage-a-serverless-data-lake-on-the-aws-cloud-by-using-infrastructure-as-code-resources"></a>

**Siapkan CI/CD pipeline untuk menyediakan IAc**
+ [Lokakarya SDLF - Pengaturan awal](https://sdlf.workshop.aws/en/10-deployment/100-setup.html)

**Kontrol versi IAc**
+ [Lokakarya SDLF — Menyebarkan fondasi](https://sdlf.workshop.aws/en/10-deployment/200-foundations.html)
+ [Menghubungkan ke CodeCommit repositori](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html)
+ [Bekerja dengan CloudFormation templat AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)

**Sumber daya lainnya**
+ [Arsitektur referensi saluran analisis data tanpa server AWS](https://aws.amazon.com/blogs/big-data/aws-serverless-data-analytics-pipeline-reference-architecture/)
+ [Dokumentasi SDLF](https://sdlf.readthedocs.io/en/latest/)

# Menegakkan penandaan kluster EMR Amazon saat diluncurkan
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch"></a>

*Priyanka Chaudhary, Amazon Web Services*

## Ringkasan
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-summary"></a>

Pola ini memberikan kontrol keamanan yang memastikan bahwa klaster EMR Amazon diberi tag saat dibuat. 

Amazon EMR adalah layanan Amazon Web Services (AWS) untuk memproses dan menganalisis data dalam jumlah besar. Amazon EMR menawarkan layanan konfigurasi rendah yang dapat diperluas sebagai alternatif yang lebih mudah untuk menjalankan komputasi cluster internal. Anda dapat menggunakan penandaan untuk mengkategorikan sumber daya AWS dengan berbagai cara, seperti berdasarkan tujuan, pemilik, atau lingkungan. Misalnya, Anda dapat menandai kluster EMR Amazon Anda dengan menetapkan metadata khusus untuk setiap cluster. Tag terdiri dari kunci dan nilai yang Anda tentukan. Kami menyarankan Anda membuat kumpulan tag yang konsisten untuk memenuhi persyaratan organisasi Anda. Saat Anda menambahkan tag ke kluster EMR Amazon, tag tersebut juga disebarkan ke setiap instans Amazon Elastic Compute Cloud (Amazon EC2) aktif yang terkait dengan cluster. Demikian pula, saat Anda menghapus tag dari kluster EMR Amazon, tag tersebut juga akan dihapus dari setiap EC2 instance aktif yang terkait.

Kontrol detektif memantau panggilan API dan memulai CloudWatch acara Amazon Events untuk [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html),, [AddTags[RemoveTags](https://docs.aws.amazon.com/emr/latest/APIReference/API_RemoveTags.html)](https://docs.aws.amazon.com/emr/latest/APIReference/API_AddTags.html), dan. [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html) APIs Acara ini memanggil AWS Lambda, yang menjalankan skrip Python. Fungsi Python mendapatkan ID cluster EMR Amazon dari input JSON dari acara dan melakukan pemeriksaan berikut:
+ Periksa apakah klaster EMR Amazon dikonfigurasi dengan nama tag yang Anda tentukan.
+ Jika tidak, kirim notifikasi Amazon Simple Notification Service (Amazon SNS) kepada pengguna dengan informasi yang relevan: nama klaster Amazon EMR, detail pelanggaran, Wilayah AWS, akun AWS, dan Nama Sumber Daya Amazon (ARN) untuk Lambda tempat notifikasi ini berasal.

## Prasyarat dan batasan
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Bucket Amazon Simple Storage Service (Amazon S3) untuk mengunggah kode Lambda yang disediakan. Atau, Anda dapat membuat bucket S3 untuk tujuan ini, seperti yang dijelaskan di bagian *Epik*.
+ Alamat email aktif tempat Anda ingin menerima pemberitahuan pelanggaran.
+ Daftar tag wajib yang ingin Anda periksa.

**Batasan**
+ Kontrol keamanan ini bersifat regional. Anda harus menerapkannya di setiap Wilayah AWS yang ingin Anda pantau.

**Versi produk**
+ Amazon EMR merilis 4.8.0 dan yang lebih baru.

## Arsitektur
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-architecture"></a>

**Arsitektur alur kerja**

![\[Peluncuran cluster, pemantauan menggunakan APIs, pembuatan acara, panggilan fungsi Lambda, pemberitahuan dikirim.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb/images/0d95c414-69d1-4f29-a9e7-09f202e27014.png)


**Otomatisasi dan skala**
+ Jika Anda menggunakan [AWS Organizations](https://aws.amazon.com/organizations/), Anda dapat menggunakan [AWS Cloudformation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) untuk menerapkan template ini di beberapa akun yang ingin Anda pantau.

## Alat
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-tools"></a>

**Layanan AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — AWS CloudFormation membantu Anda memodelkan dan menyiapkan sumber daya AWS Anda, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya. Anda dapat menggunakan template untuk mendeskripsikan sumber daya Anda dan dependensinya, dan meluncurkan dan mengonfigurasinya bersama-sama sebagai tumpukan, alih-alih mengelola sumber daya secara individual. Anda dapat mengelola dan menyediakan tumpukan di beberapa akun AWS dan Wilayah AWS.
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) - Amazon CloudWatch Events menghadirkan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan sumber daya AWS.
+ [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) - Amazon EMR adalah layanan web yang menyederhanakan menjalankan kerangka kerja data besar dan memproses sejumlah besar data secara efisien. 
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service adalah layanan penyimpanan objek. Anda dapat menggunakan Amazon S3 untuk menyimpan dan mengambil data sebanyak apa pun kapan pun, dari mana pun di web.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) mengoordinasikan dan mengelola pengiriman atau pengiriman pesan antara penerbit dan klien, termasuk server web dan alamat email. Pelanggan menerima semua pesan yang dipublikasikan ke topik tempat mereka berlangganan, dan semua pelanggan ke suatu topik menerima pesan yang sama.

**Kode**

Pola ini mencakup lampiran berikut:
+ `EMRTagValidation.zip`— Kode Lambda untuk kontrol keamanan.
+ `EMRTagValidation.yml`— CloudFormation Template yang mengatur acara dan fungsi Lambda.

## Epik
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-epics"></a>

### Siapkan ember S3
<a name="set-up-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan bucket S3. | Di [konsol Amazon S3](https://console.aws.amazon.com/s3/), pilih atau buat bucket S3 untuk meng-host file kode Lambda .zip. Bucket S3 ini harus berada di Wilayah AWS yang sama dengan cluster EMR Amazon yang ingin Anda pantau. Nama bucket Amazon S3 unik secara global, dan namespace-nya digunakan bersama oleh semua akun AWS. Nama bucket S3 tidak dapat menyertakan garis miring terdepan. | Arsitek awan | 
| Unggah kode Lambda. | Unggah file kode Lambda .zip yang disediakan di bagian *Lampiran* ke bucket S3.                                               | Arsitek awan | 

### Menerapkan template AWS CloudFormation
<a name="deploy-the-aws-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Luncurkan CloudFormation template AWS. | Buka [ CloudFormation konsol AWS](https://console.aws.amazon.com/cloudformation/.) di Wilayah AWS yang sama dengan bucket S3 Anda dan terapkan template. Untuk informasi selengkapnya tentang penerapan CloudFormation templat AWS, lihat [Membuat tumpukan di CloudFormation konsol AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) dalam CloudFormation dokumentasi. | Arsitek awan | 
| Lengkapi parameter dalam template. | Ketika Anda meluncurkan template, Anda akan diminta untuk informasi berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/enforce-tagging-of-amazon-emr-clusters-at-launch.html) | Arsitek awan | 

### Konfirmasi langganan.
<a name="confirm-the-subscription"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfirmasi langganan. | Ketika CloudFormation template berhasil digunakan, ia mengirimkan email berlangganan ke alamat email yang Anda berikan. Anda harus mengonfirmasi langganan email ini untuk mulai menerima pemberitahuan pelanggaran. | Arsitek awan | 

## Sumber daya terkait
<a name="enforce-tagging-of-amazon-emr-clusters-at-launch-resources"></a>
+ [Panduan pengembang AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
+ [Menandai cluster di Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html)

## Lampiran
<a name="attachments-1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/1a4fc0f8-b0c9-4391-9c79-9eb3898d6ecb/attachments/attachment.zip)

# Pastikan pencatatan EMR Amazon ke Amazon S3 diaktifkan saat peluncuran
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch"></a>

*Priyanka Chaudhary, Amazon Web Services*

## Ringkasan
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-summary"></a>

Pola ini menyediakan kontrol keamanan yang memantau konfigurasi logging untuk klaster EMR Amazon yang berjalan di Amazon Web Services (AWS).

Amazon EMR adalah alat AWS untuk pemrosesan dan analisis data besar. Amazon EMR menawarkan layanan konfigurasi rendah yang dapat diperluas sebagai alternatif untuk menjalankan komputasi cluster internal. Amazon EMR menyediakan dua jenis cluster EMR.
+ Cluster **EMR Amazon sementara: Kluster** EMR Amazon sementara secara otomatis mati dan berhenti mengeluarkan biaya saat pemrosesan selesai.
+ Cluster **EMR Amazon yang persisten: Cluster** EMR Amazon yang persisten terus berjalan setelah pekerjaan pemrosesan data selesai.

Amazon EMR dan Hadoop menghasilkan berkas log yang melaporkan status pada klaster. Secara default, ini ditulis ke node master di direktori **mnt/var/log//**. Bergantung pada bagaimana Anda mengonfigurasi cluster saat meluncurkannya, Anda juga dapat menyimpan log ini ke Amazon Simple Storage Service (Amazon S3) dan melihatnya melalui alat debugging grafis. Perhatikan bahwa pencatatan Amazon S3 hanya dapat ditentukan saat cluster diluncurkan. Dengan konfigurasi ini, log dikirim dari node utama ke lokasi Amazon S3 setiap 5 menit. Untuk cluster sementara, pencatatan Amazon S3 penting karena cluster menghilang saat pemrosesan selesai, dan file log ini dapat digunakan untuk men-debug pekerjaan yang gagal.

Pola ini menggunakan CloudFormation template AWS untuk menerapkan kontrol keamanan yang memantau panggilan API dan memulai CloudWatch Acara Amazon di "RunJobFlow.” Pemicunya memanggil AWS Lambda, yang menjalankan skrip Python. Fungsi Lambda mengambil ID cluster EMR dari input JSON peristiwa dan juga memeriksa URI log Amazon S3. Jika URI Amazon S3 tidak ditemukan, fungsi Lambda mengirimkan notifikasi Amazon Simple Notification Service (Amazon SNS) Simple Notification Service (Amazon SNS) yang merinci nama cluster EMR, detail pelanggaran, Wilayah AWS, akun AWS, dan Lambda Amazon Resource Name (ARN) tempat notifikasi tersebut bersumber.

## Prasyarat dan batasan
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Bucket S3 untuk file.zip kode Lambda
+ Alamat email tempat Anda ingin menerima pemberitahuan pelanggaran

**Batasan**
+ Kontrol detektif ini bersifat regional dan harus diterapkan di Wilayah AWS yang ingin Anda pantau.

**Versi produk**
+ Amazon EMR merilis 4.8.0 dan yang lebih baru

## Arsitektur
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-architecture"></a>

**Tumpukan teknologi target**
+  CloudWatch Acara Amazon Events
+ Amazon EMR
+ Fungsi Lambda
+ Bucket S3
+ Amazon SNS

**Arsitektur target**

![\[Alur kerja untuk memastikan bahwa pencatatan EMR Amazon ke Amazon S3 diaktifkan saat peluncuran.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/079af32e-0418-4bb2-bc20-c67ea5ac3b6e/images/3ba125cb-018a-4ace-838f-8c20992ecc20.png)


**Otomatisasi dan skala**
+ Jika Anda menggunakan AWS Organizations, Anda dapat menggunakan [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) untuk menerapkan template ini di beberapa akun yang ingin Anda pantau.

## Alat
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-tools"></a>

**Alat**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — AWS CloudFormation membantu Anda memodelkan dan menyiapkan sumber daya AWS menggunakan infrastruktur sebagai kode.
+ [AWS Cloudwatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — AWS CloudWatch Events menghadirkan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan dalam sumber daya AWS.
+ [Amazon EMR - Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) adalah platform cluster terkelola yang menyederhanakan menjalankan kerangka kerja data besar.
+ [AWS Lambda](https://aws.amazon.com/lambda/) — AWS Lambda mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) - Amazon S3 adalah antarmuka layanan web yang dapat Anda gunakan untuk menyimpan dan mengambil sejumlah data dari mana saja di web.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon SNS adalah layanan web yang mengoordinasikan dan mengelola pengiriman atau pengiriman pesan antara penerbit dan klien, termasuk server web dan alamat email.

**Kode**
+ File.zip proyek tersedia sebagai lampiran.

## Epik
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-epics"></a>

### Tentukan bucket S3
<a name="define-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan bucket S3. | Untuk meng-host file kode Lambda .zip, pilih atau buat bucket S3 dengan nama unik yang tidak berisi garis miring di depan. Nama bucket S3 unik secara global, dan namespace dibagikan oleh semua akun AWS. Bucket S3 Anda harus berada di Wilayah AWS yang sama dengan cluster EMR Amazon yang sedang dievaluasi. | Arsitek Cloud | 

### Unggah kode Lambda ke bucket S3
<a name="upload-the-lambda-code-to-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah kode Lambda ke bucket S3. | Unggah file kode Lambda .zip yang disediakan di bagian “Lampiran” ke bucket S3. Bucket S3 harus berada di Wilayah yang sama dengan cluster EMR Amazon yang sedang dievaluasi. | Arsitek Cloud | 

### Menerapkan template AWS CloudFormation
<a name="deploy-the-aws-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menerapkan CloudFormation template AWS. | Di CloudFormation konsol AWS, di Wilayah yang sama dengan bucket S3 Anda, terapkan CloudFormation template AWS yang disediakan sebagai lampiran ke pola ini. Dalam epik berikutnya, berikan nilai untuk parameter. Untuk informasi selengkapnya tentang penerapan CloudFormation templat AWS, lihat bagian “Sumber daya terkait”. | Arsitek Cloud | 

### Lengkapi parameter dalam CloudFormation template AWS
<a name="complete-the-parameters-in-the-aws-cloudformation-template"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Beri nama ember S3. | Masukkan nama bucket S3 yang Anda buat di epik pertama. | Arsitek Cloud | 
| Berikan kunci Amazon S3. | <directory><file-name>Berikan lokasi file kode Lambda .zip di bucket S3 Anda, tanpa garis miring (misalnya,/.zip). | Arsitek Cloud | 
| Berikan alamat email. | Berikan alamat email aktif untuk menerima notifikasi Amazon SNS. | Arsitek Cloud | 
| Tentukan tingkat logging. | Tentukan tingkat logging dan frekuensi untuk fungsi Lambda Anda. “Info” menunjuk pesan informasi terperinci tentang kemajuan aplikasi. “Kesalahan” menunjuk peristiwa kesalahan yang masih memungkinkan aplikasi untuk terus berjalan. “Peringatan” menunjuk situasi yang berpotensi berbahaya. | Arsitek Cloud | 

### Konfirmasi langganan.
<a name="confirm-the-subscription"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfirmasi langganan. | Ketika template berhasil digunakan, ia mengirimkan pesan email berlangganan ke alamat email yang disediakan. Anda harus mengonfirmasi langganan email ini untuk menerima pemberitahuan pelanggaran. | Arsitek Cloud | 

## Sumber daya terkait
<a name="ensure-amazon-emr-logging-to-amazon-s3-is-enabled-at-launch-resources"></a>
+ [AWS Lambda](https://aws.amazon.com/lambda/)
+ [Pencatatan EMR Amazon](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-debugging.html)
+ [Menerapkan templat AWS CloudFormation ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)

## Lampiran
<a name="attachments-079af32e-0418-4bb2-bc20-c67ea5ac3b6e"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/079af32e-0418-4bb2-bc20-c67ea5ac3b6e/attachments/attachment.zip)

# Hasilkan data pengujian menggunakan pekerjaan AWS Glue dan Python
<a name="generate-test-data-using-an-aws-glue-job-and-python"></a>

*Moinul Al-Mamun, Amazon Web Services*

## Ringkasan
<a name="generate-test-data-using-an-aws-glue-job-and-python-summary"></a>

Pola ini menunjukkan kepada Anda cara cepat dan mudah menghasilkan jutaan file sampel secara bersamaan dengan membuat pekerjaan AWS Glue yang ditulis dengan Python. File sampel disimpan dalam bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3). Kemampuan untuk menghasilkan sejumlah besar file sampel dengan cepat penting untuk menguji atau mengevaluasi layanan di AWS Cloud. Misalnya, Anda dapat menguji kinerja DataBrew pekerjaan AWS Glue Studio atau AWS Glue dengan melakukan analisis data pada jutaan file kecil dalam awalan Amazon S3.

Meskipun Anda dapat menggunakan layanan AWS lainnya untuk menghasilkan kumpulan data sampel, kami menyarankan Anda menggunakan AWS Glue. Anda tidak perlu mengelola infrastruktur apa pun karena AWS Glue adalah layanan pemrosesan data tanpa server. Anda bisa membawa kode Anda dan menjalankannya di klaster AWS Glue. Selain itu, AWS Glue menyediakan, mengonfigurasi, dan menskalakan sumber daya yang diperlukan untuk menjalankan pekerjaan Anda. Anda hanya membayar untuk sumber daya yang digunakan pekerjaan Anda saat menjalankan.

## Prasyarat dan batasan
<a name="generate-test-data-using-an-aws-glue-job-and-python-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ AWS Command Line Interface (AWS CLI)[,](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) diinstal [dan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) dikonfigurasi untuk bekerja dengan akun AWS

**Versi produk**
+ Python 3.9
+ AWS CLI versi 2

**Batasan**

Jumlah maksimum pekerjaan AWS Glue per pemicu adalah 50. Untuk informasi selengkapnya, lihat [titik akhir dan kuota AWS Glue](https://docs.aws.amazon.com/general/latest/gr/glue.html).

## Arsitektur
<a name="generate-test-data-using-an-aws-glue-job-and-python-architecture"></a>

Diagram berikut menggambarkan contoh arsitektur yang berpusat di sekitar pekerjaan AWS Glue yang menulis outputnya (yaitu, file sampel) ke bucket S3.

![\[Alur kerja menunjukkan AWS CLI memulai pekerjaan AWS Glue yang menulis output ke bucket S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/f35943e8-3b2b-410e-a3f0-05e1ebd357d0/images/452ccbda-71f2-42b8-976d-bcc968bb1dab.png)


Diagram mencakup alur kerja berikut:

1. Anda menggunakan AWS CLI, AWS Management Console, atau API untuk memulai pekerjaan AWS Glue. AWS CLI atau API memungkinkan Anda mengotomatiskan paralelisasi pekerjaan yang dipanggil dan mengurangi runtime untuk menghasilkan file sampel.

1. Pekerjaan AWS Glue menghasilkan konten file secara acak, mengonversi konten menjadi format CSV, dan kemudian menyimpan konten sebagai objek Amazon S3 di bawah awalan umum. Setiap file kurang dari satu kilobyte. Pekerjaan AWS Glue menerima dua parameter pekerjaan yang ditentukan pengguna: dan. `START_RANGE` `END_RANGE` Anda dapat menggunakan parameter ini untuk mengatur nama file dan jumlah file yang dihasilkan di Amazon S3 oleh setiap pekerjaan yang dijalankan. Anda dapat menjalankan beberapa instance pekerjaan ini secara paralel (misalnya, 100 instance).

## Alat
<a name="generate-test-data-using-an-aws-glue-job-and-python-tools"></a>
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

## Praktik terbaik
<a name="generate-test-data-using-an-aws-glue-job-and-python-best-practices"></a>

Pertimbangkan praktik terbaik AWS Glue berikut saat Anda menerapkan pola ini:
+ **Gunakan jenis pekerja AWS Glue yang tepat untuk mengurangi biaya.** Kami menyarankan Anda memahami properti yang berbeda dari jenis pekerja, dan kemudian memilih jenis pekerja yang tepat untuk beban kerja Anda berdasarkan persyaratan CPU dan memori. Untuk pola ini, kami menyarankan Anda menggunakan pekerjaan shell Python sebagai jenis pekerjaan Anda untuk meminimalkan DPU dan mengurangi biaya. Untuk informasi selengkapnya, lihat [Menambahkan lowongan di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) di Panduan Pengembang AWS Glue.
+ **Gunakan batas konkurensi yang tepat untuk skala pekerjaan Anda.** Kami menyarankan Anda mendasarkan konkurensi maksimum pekerjaan AWS Glue Anda pada kebutuhan waktu Anda dan jumlah file yang diperlukan.
+ **Mulailah membuat sejumlah kecil file pada awalnya.** Untuk mengurangi biaya dan menghemat waktu saat Anda membangun pekerjaan AWS Glue, mulailah dengan sejumlah kecil file (seperti 1.000). Ini dapat membuat pemecahan masalah lebih mudah. Jika menghasilkan sejumlah kecil file berhasil, maka Anda dapat menskalakan ke jumlah file yang lebih besar.
+ **Jalankan secara lokal terlebih dahulu.** Untuk mengurangi biaya dan menghemat waktu saat Anda membangun pekerjaan AWS Glue, mulailah pengembangan secara lokal dan uji kode Anda. Untuk petunjuk tentang menyiapkan wadah Docker yang dapat membantu Anda menulis pekerjaan AWS Glue extract, transform, and load (ETL) baik di shell maupun di lingkungan pengembangan terintegrasi (IDE), lihat pekerjaan [Mengembangkan AWS Glue ETL secara lokal menggunakan postingan kontainer](https://aws.amazon.com/blogs/big-data/developing-aws-glue-etl-jobs-locally-using-a-container/) di AWS Big Data Blog.

Untuk praktik terbaik AWS Glue lainnya, lihat [Praktik terbaik](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/best-practices.html) dalam dokumentasi AWS Glue.

## Epik
<a name="generate-test-data-using-an-aws-glue-job-and-python-epics"></a>

### Buat bucket S3 tujuan dan peran IAM
<a name="create-a-destination-s3-bucket-and-iam-role"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket S3 untuk menyimpan file. | Buat [bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dan [awalan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) di dalamnya.Pola ini menggunakan `s3://{your-s3-bucket-name}/small-files/` lokasi untuk tujuan demonstrasi. | Pengembang aplikasi | 
| Buat dan konfigurasikan peran IAM. | Anda harus membuat peran IAM yang dapat digunakan oleh pekerjaan AWS Glue Anda untuk menulis ke bucket S3 Anda.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | Pengembang aplikasi | 

### Membuat dan mengonfigurasi pekerjaan AWS Glue untuk menangani proses bersamaan
<a name="create-and-configure-an-aws-glue-job-to-handle-concurrent-runs"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pekerjaan AWS Glue. | Anda harus membuat pekerjaan AWS Glue yang menghasilkan konten Anda dan menyimpannya di bucket S3.Buat [pekerjaan AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-jobs.html), lalu konfigurasikan pekerjaan Anda dengan menyelesaikan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | Pengembang aplikasi | 
| Perbarui kode pekerjaan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | Pengembang aplikasi | 

### Jalankan pekerjaan AWS Glue dari baris perintah atau konsol
<a name="run-the-aws-glue-job-from-the-command-line-or-console"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Jalankan pekerjaan AWS Glue dari baris perintah. | Untuk menjalankan tugas AWS Glue Anda dari AWS CLI, jalankan perintah berikut menggunakan nilai Anda:<pre>cmd:~$ aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"0","--END_RANGE":"1000000"}'<br />cmd:~$ aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1000000","--END_RANGE":"2000000"}'</pre>Untuk petunjuk tentang menjalankan tugas AWS Glue dari AWS Management Console, lihat *tugas Jalankan AWS Glue di cerita AWS Management Console* dalam pola ini.Sebaiknya gunakan AWS CLI untuk menjalankan pekerjaan AWS Glue jika Anda ingin menjalankan beberapa eksekusi sekaligus dengan parameter berbeda, seperti yang ditunjukkan pada contoh di atas.Untuk menghasilkan semua perintah AWS CLI yang diperlukan untuk menghasilkan sejumlah file yang ditentukan menggunakan faktor paralelisasi tertentu, jalankan kode bash berikut (menggunakan nilai Anda):<pre># define parameters<br />NUMBER_OF_FILES=10000000;<br />PARALLELIZATION=50; <br /> <br /># initialize<br />_SB=0;<br />      <br /># generate commands<br />for i in $(seq 1 $PARALLELIZATION); <br />do <br />      echo aws glue start-job-run --job-name create_small_files --arguments "'"'{"--START_RANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION) * (i-1) + _SB))'","--END_RANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION) * (i)))'"}'"'";<br />      _SB=1; <br />done</pre>Jika Anda menggunakan skrip di atas, pertimbangkan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) Untuk melihat contoh output dari skrip di atas, lihat *Output skrip Shell* di bagian *Informasi tambahan* dari pola ini. | Pengembang aplikasi | 
| Jalankan pekerjaan AWS Glue di AWS Management Console. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | Pengembang aplikasi | 
| Periksa status pekerjaan AWS Glue Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/generate-test-data-using-an-aws-glue-job-and-python.html) | Pengembang aplikasi | 

## Sumber daya terkait
<a name="generate-test-data-using-an-aws-glue-job-and-python-resources"></a>

**Referensi**
+ [Registri Data Terbuka di AWS](https://registry.opendata.aws/)
+ [Kumpulan data untuk analitik](https://aws.amazon.com/marketplace/solutions/data-analytics/data-sets)
+ [Buka Data di AWS](https://aws.amazon.com/opendata/)
+ [Menambahkan pekerjaan di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-job.html)
+ [Memulai AWS Glue](https://aws.amazon.com/glue/getting-started/)

**Panduan dan pola**
+ [Praktik terbaik AWS Glue](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/best-practices.html)
+ [Aplikasi pengujian beban](https://docs.aws.amazon.com/prescriptive-guidance/latest/load-testing/welcome.html)

## Informasi tambahan
<a name="generate-test-data-using-an-aws-glue-job-and-python-additional"></a>

**Tes benchmarking**

Pola ini digunakan untuk menghasilkan 10 juta file menggunakan parameter paralelisasi yang berbeda sebagai bagian dari uji benchmarking. Tabel berikut menunjukkan output dari tes:


| 
| 
| Paralelisasi | Jumlah file yang dihasilkan oleh pekerjaan yang dijalankan | Durasi Job | Kecepatan | 
| --- |--- |--- |--- |
| 10 | 1.000.000 | 6 jam, 40 menit | Sangat lambat | 
| 50 | 200.000 | 80 menit | Sedang | 
| 100 | 100.000 | 40 menit | Cepat | 

Jika Anda ingin membuat proses lebih cepat, Anda dapat mengonfigurasi lebih banyak proses bersamaan dalam konfigurasi pekerjaan Anda. Anda dapat dengan mudah menyesuaikan konfigurasi pekerjaan berdasarkan kebutuhan Anda, tetapi perlu diingat bahwa ada batas kuota layanan AWS Glue. Untuk informasi selengkapnya, lihat [titik akhir dan kuota AWS Glue](https://docs.aws.amazon.com/general/latest/gr/glue.html).

**Keluaran skrip shell**

Contoh berikut menunjukkan output skrip shell dari *pekerjaan Jalankan AWS Glue dari cerita baris perintah* dalam pola ini.

```
user@MUC-1234567890 MINGW64 ~
  $ # define parameters
  NUMBER_OF_FILES=10000000;
  PARALLELIZATION=50;
  # initialize
  _SB=0;
   
  # generate commands
  for i in $(seq 1 $PARALLELIZATION);
   do
         echo aws glue start-job-run --job-name create_small_files --arguments "'"'{"--START_RANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION)  (i-1) + SB))'","--ENDRANGE":"'$(((NUMBER_OF_FILES/PARALLELIZATION)  (i)))'"}'"'";
         _SB=1;
   done
   
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"0","--END_RANGE":"200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"200001","--END_RANGE":"400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"400001","--END_RANGE":"600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"600001","--END_RANGE":"800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"800001","--END_RANGE":"1000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1000001","--END_RANGE":"1200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1200001","--END_RANGE":"1400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1400001","--END_RANGE":"1600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1600001","--END_RANGE":"1800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"1800001","--END_RANGE":"2000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2000001","--END_RANGE":"2200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2200001","--END_RANGE":"2400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2400001","--END_RANGE":"2600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2600001","--END_RANGE":"2800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"2800001","--END_RANGE":"3000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3000001","--END_RANGE":"3200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3200001","--END_RANGE":"3400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3400001","--END_RANGE":"3600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3600001","--END_RANGE":"3800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"3800001","--END_RANGE":"4000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4000001","--END_RANGE":"4200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4200001","--END_RANGE":"4400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4400001","--END_RANGE":"4600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4600001","--END_RANGE":"4800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"4800001","--END_RANGE":"5000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5000001","--END_RANGE":"5200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5200001","--END_RANGE":"5400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5400001","--END_RANGE":"5600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5600001","--END_RANGE":"5800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"5800001","--END_RANGE":"6000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6000001","--END_RANGE":"6200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6200001","--END_RANGE":"6400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6400001","--END_RANGE":"6600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6600001","--END_RANGE":"6800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"6800001","--END_RANGE":"7000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7000001","--END_RANGE":"7200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7200001","--END_RANGE":"7400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7400001","--END_RANGE":"7600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7600001","--END_RANGE":"7800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"7800001","--END_RANGE":"8000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8000001","--END_RANGE":"8200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8200001","--END_RANGE":"8400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8400001","--END_RANGE":"8600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8600001","--END_RANGE":"8800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"8800001","--END_RANGE":"9000000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9000001","--END_RANGE":"9200000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9200001","--END_RANGE":"9400000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9400001","--END_RANGE":"9600000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9600001","--END_RANGE":"9800000"}'
  aws glue start-job-run --job-name create_small_files --arguments '{"--START_RANGE":"9800001","--END_RANGE":"10000000"}'
  
  user@MUC-1234567890 MINGW64 ~
```

**FAQ**

*Berapa banyak pekerjaan yang berjalan bersamaan atau paralel yang harus saya gunakan?*

Jumlah proses bersamaan dan pekerjaan paralel tergantung pada kebutuhan waktu Anda dan jumlah file pengujian yang diinginkan. Kami menyarankan Anda memeriksa ukuran file yang Anda buat. Pertama, periksa berapa lama waktu yang dibutuhkan pekerjaan AWS Glue untuk menghasilkan jumlah file yang Anda inginkan. Kemudian, gunakan jumlah lari bersamaan yang tepat untuk memenuhi tujuan Anda. Misalnya, jika Anda berasumsi bahwa 100.000 file membutuhkan waktu 40 menit untuk menyelesaikan proses tetapi waktu target Anda adalah 30 menit, maka Anda harus meningkatkan pengaturan konkurensi untuk pekerjaan AWS Glue Anda.

*Jenis konten apa yang dapat saya buat menggunakan pola ini?*

Anda dapat membuat semua jenis konten, seperti file teks dengan pembatas yang berbeda (misalnya, PIPE, JSON, atau CSV). Pola ini menggunakan Boto3 untuk menulis ke file dan kemudian menyimpan file dalam ember S3.

*Tingkat izin IAM apa yang saya perlukan di bucket S3?*

Anda harus memiliki kebijakan berbasis identitas yang memungkinkan `Write` akses ke objek di bucket S3 Anda. Untuk informasi selengkapnya, lihat [Amazon S3: Mengizinkan akses baca dan tulis ke objek dalam bucket S3 dalam dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket.html) Amazon S3.

# Mengkonsumsi data IoT secara hemat biaya langsung ke Amazon S3 menggunakan AWS IoT Greengrass
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass"></a>

*Sebastian Viviani dan Rizwan Syed, Amazon Web Services*

## Ringkasan
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-summary"></a>

Pola ini menunjukkan kepada Anda cara menyerap data Internet of Things (IoT) secara hemat biaya langsung ke bucket Amazon Simple Storage Service (Amazon S3) dengan menggunakan perangkat AWS IoT Greengrass Version 2. Perangkat menjalankan komponen khusus yang membaca data IoT dan menyimpan data dalam penyimpanan persisten (yaitu, disk atau volume lokal). Kemudian, perangkat memampatkan data IoT menjadi file Apache Parquet dan mengunggah data secara berkala ke bucket S3.

Jumlah dan kecepatan data IoT yang Anda konsumsi hanya dibatasi oleh kemampuan perangkat keras tepi dan bandwidth jaringan Anda. Anda dapat menggunakan Amazon Athena untuk menganalisis data yang Anda konsumsi secara hemat biaya. [Athena mendukung file Apache Parquet terkompresi dan visualisasi data dengan menggunakan Amazon Managed Grafana.](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)

## Prasyarat dan batasan
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ [Gateway edge](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html) yang berjalan pada [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-v2-whats-new.html) Versi 2 dan mengumpulkan data dari sensor (Sumber data dan proses pengumpulan data berada di luar cakupan pola ini, tetapi Anda dapat menggunakan hampir semua jenis data sensor. Pola ini menggunakan broker [MQTT](https://mqtt.org/) lokal dengan sensor atau gateway yang mempublikasikan data secara lokal.)
+ [https://docs.aws.amazon.com/greengrass/v2/developerguide/develop-greengrass-components.html](https://docs.aws.amazon.com/greengrass/v2/developerguide/develop-greengrass-components.html)
+ [Komponen pengelola aliran](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-manager-component.html) untuk mengunggah data ke bucket S3
+ [AWS SDK for](https://aws.amazon.com/sdk-for-java/) Java, [AWS SDK JavaScript](https://aws.amazon.com/sdk-for-javascript/) for, atau [AWS SDK for Python (Boto3)](https://docs.aws.amazon.com/pythonsdk/) untuk menjalankan APIs

**Batasan**
+ Data dalam pola ini tidak diunggah secara real time ke bucket S3. Ada periode penundaan, dan Anda dapat mengkonfigurasi periode penundaan. Data di-buffer sementara di perangkat edge dan kemudian diunggah setelah periode berakhir.
+ SDK hanya tersedia di Java, Node.js, dan Python.

## Arsitektur
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-architecture"></a>

**Tumpukan teknologi target**
+ Amazon S3
+ AWS IoT Greengrass
+ Pialang MQTT
+ Komponen manajer aliran

**Arsitektur target**

Diagram berikut menunjukkan arsitektur yang dirancang untuk menyerap data sensor IoT dan menyimpan data tersebut dalam bucket S3.

![\[Diagram arsitektur\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/b9032ae2-fffb-4750-b161-09810e19d878/images/8c28e639-5dcf-4950-b4a6-8015ec1a2894.png)


Diagram menunjukkan alur kerja berikut:

1. Beberapa sensor (misalnya, suhu dan katup) pembaruan dipublikasikan ke broker MQTT lokal.

1. Kompresor file Parket yang berlangganan sensor ini memperbarui topik dan menerima pembaruan ini.

1. Kompresor file Parquet menyimpan pembaruan secara lokal.

1. Setelah periode berlalu, file yang disimpan dikompresi menjadi file Parket dan diteruskan ke pengelola aliran untuk diunggah ke bucket S3 yang ditentukan.

1. Manajer aliran mengunggah file Parket ke bucket S3.

**catatan**  
Stream manager (`StreamManager`) adalah komponen terkelola. Untuk contoh cara mengekspor data ke Amazon S3, lihat [Stream manager](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-manager-component.html) di dokumentasi AWS IoT Greengrass. [Anda dapat menggunakan broker MQTT lokal sebagai komponen atau broker lain seperti Eclipse Mosquitto.](https://mosquitto.org/)

## Alat
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-tools"></a>

**Alat AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) adalah layanan runtime dan cloud IoT edge open source yang membantu Anda membangun, menerapkan, dan mengelola aplikasi IoT di perangkat Anda.

**Alat-alat lainnya**
+ [Apache Parquet](https://parquet.apache.org/) adalah format file data berorientasi kolom sumber terbuka yang dirancang untuk penyimpanan dan pengambilan.
+ [MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html) (Message Queuing Telemetry Transport) adalah protokol pesan ringan yang dirancang untuk perangkat terbatas.

## Praktik terbaik
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-best-practices"></a>

**Gunakan format partisi yang tepat untuk data yang diunggah**

Tidak ada persyaratan khusus untuk nama awalan root di bucket S3 (misalnya, `"myAwesomeDataSet/"` atau`"dataFromSource"`), tetapi kami menyarankan Anda menggunakan partisi dan awalan yang bermakna sehingga mudah untuk memahami tujuan kumpulan data.

Kami juga menyarankan Anda menggunakan partisi yang tepat di Amazon S3 sehingga kueri berjalan secara optimal pada kumpulan data. Dalam contoh berikut, data dipartisi dalam format HIVE sehingga jumlah data yang dipindai oleh setiap kueri Athena dioptimalkan. Ini meningkatkan kinerja dan mengurangi biaya.

`s3://<ingestionBucket>/<rootPrefix>/year=YY/month=MM/day=DD/HHMM_<suffix>.parquet`

## Epik
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-epics"></a>

### Siapkan lingkungan Anda
<a name="set-up-your-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | Pengembang aplikasi | 
| Tambahkan izin IAM ke bucket S3. | Untuk memberi pengguna akses tulis ke bucket S3 dan awalan yang Anda buat sebelumnya, tambahkan kebijakan IAM berikut ke peran AWS IoT Greengrass Anda:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3DataUpload",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:List*",<br />                "s3:Put*"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<ingestionBucket>",<br />                "arn:aws:s3:::<ingestionBucket>/<prefix>/*"<br />            ]<br />        }<br />    ]<br />}</pre>Untuk informasi selengkapnya, lihat [Membuat kebijakan IAM untuk mengakses sumber daya Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html) dalam dokumentasi Aurora.Selanjutnya, perbarui kebijakan sumber daya (jika diperlukan) untuk bucket S3 agar memungkinkan akses tulis dengan [prinsip](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html) AWS yang benar. | Pengembang aplikasi | 

### Bangun dan terapkan komponen AWS IoT Greengrass
<a name="build-and-deploy-the-aws-iot-greengrass-component"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui resep komponen. | [Perbarui konfigurasi komponen](https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html) saat Anda [membuat penerapan](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html) berdasarkan contoh berikut:<pre>{<br />  "region": "<region>",<br />  "parquet_period": <period>,<br />  "s3_bucket": "<s3Bucket>",<br />  "s3_key_prefix": "<s3prefix>"<br />}</pre>Ganti `<region>` dengan Wilayah AWS Anda, `<period>` dengan interval periodik Anda, `<s3Bucket>` dengan bucket S3 Anda, dan `<s3prefix>` dengan awalan Anda. | Pengembang aplikasi | 
| Buat komponen. | Lakukan salah satu tindakan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | Pengembang aplikasi | 
| Perbarui klien MQTT. | Kode sampel tidak menggunakan otentikasi karena komponen terhubung secara lokal ke broker. Jika skenario Anda berbeda, perbarui bagian klien MQTT sesuai kebutuhan. Selain itu, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | Pengembang aplikasi | 

### Tambahkan komponen ke perangkat inti AWS IoT Greengrass Versi 2
<a name="add-the-component-to-the-aws-iot-greengrass-version-2-core-device"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui penyebaran perangkat inti. | [Jika penerapan perangkat inti AWS IoT Greengrass Versi 2 sudah ada, revisi penerapannya.](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html) Jika penerapan tidak ada, [buat penerapan baru](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html).Untuk memberi komponen nama yang benar, [perbarui konfigurasi pengelola log](https://docs.aws.amazon.com/greengrass/v2/developerguide/log-manager-component.html) untuk komponen baru (jika diperlukan) berdasarkan hal berikut:<pre>{<br />  "logsUploaderConfiguration": {<br />    "systemLogsConfiguration": {<br />    ...<br />    },<br />    "componentLogsConfigurationMap": {<br />      "<com.iot.ingest.parquet>": {<br />        "minimumLogLevel": "INFO",<br />        "diskSpaceLimit": "20",<br />        "diskSpaceLimitUnit": "MB",<br />        "deleteLogFileAfterCloudUpload": "false"<br />      }<br />      ...<br />    }<br />  },<br />  "periodicUploadIntervalSec": "300"<br />}</pre>Terakhir, selesaikan revisi penerapan untuk perangkat inti AWS IoT Greengrass Anda. | Pengembang aplikasi | 

### Verifikasi konsumsi data ke dalam bucket S3
<a name="verify-data-ingestion-into-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa log untuk volume AWS IoT Greengrass. | Periksa hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | Pengembang aplikasi | 
| Periksa ember S3. | Verifikasi apakah data sedang diunggah ke bucket S3. Anda dapat melihat file yang diunggah di setiap periode.Anda juga dapat memverifikasi apakah data diunggah ke bucket S3 dengan menanyakan data di bagian berikutnya. | Pengembang aplikasi | 

### Mengatur pertanyaan dari Athena
<a name="set-up-querying-from-athena"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database dan tabel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | Pengembang aplikasi | 
| Berikan Athena akses ke data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | Pengembang aplikasi | 

## Pemecahan masalah
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Klien MQTT gagal terhubung | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | 
| Klien MQTT gagal berlangganan | Validasi izin pada broker MQTT. [Jika Anda memiliki broker MQTT dari AWS, lihat broker MQTT [3.1.1 (Moquette) dan broker MQTT 5 (EMQX](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)).](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-emqx-component.html) | 
| File parket tidak dibuat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | 
| Objek tidak diunggah ke bucket S3 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.html) | 

## Sumber daya terkait
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-resources"></a>
+ [DataFrame](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html)(Dokumentasi Panda)
+ Dokumentasi [Parket Apache (Dokumentasi](https://parquet.apache.org/docs/) parket)
+ [Kembangkan komponen AWS IoT Greengrass (Panduan Pengembang AWS](https://docs.aws.amazon.com/greengrass/v2/developerguide/develop-greengrass-components.html) IoT Greengrass, Versi 2)
+ [Menerapkan komponen AWS IoT Greengrass ke perangkat (Panduan Pengembang AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-deployments.html), Versi 2)
+ [Berinteraksi dengan perangkat IoT lokal](https://docs.aws.amazon.com/greengrass/v2/developerguide/interact-with-local-iot-devices.html) (Panduan Pengembang AWS IoT Greengrass, Versi 2)
+ [Broker MQTT 3.1.1 (Moquette) (Panduan Pengembang AWS IoT](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-moquette-component.html) Greengrass, Versi 2)
+ [Broker MQTT 5 (EMQX) (Panduan Pengembang AWS IoT](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-emqx-component.html) Greengrass, Versi 2)

## Informasi tambahan
<a name="cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass-additional"></a>

**Analisis biaya**

Skenario analisis biaya berikut menunjukkan bagaimana pendekatan konsumsi data yang tercakup dalam pola ini dapat memengaruhi biaya konsumsi data di AWS Cloud. Contoh harga dalam skenario ini didasarkan pada harga pada saat publikasi. Harga dapat berubah sewaktu-waktu. Selain itu, biaya Anda dapat bervariasi tergantung pada Wilayah AWS, kuota layanan AWS, dan faktor lain yang terkait dengan lingkungan cloud Anda.

*Set sinyal masukan*

Analisis ini menggunakan rangkaian sinyal input berikut sebagai dasar untuk membandingkan biaya konsumsi IoT dengan alternatif lain yang tersedia.


| 
| 
| Jumlah sinyal | Frekuensi | Data per sinyal | 
| --- |--- |--- |
| 125 | 25 Hz | 8 byte | 

Dalam skenario ini, sistem menerima 125 sinyal. Setiap sinyal adalah 8 byte dan terjadi setiap 40 milidetik (25 Hz). Sinyal-sinyal ini bisa datang secara individual atau dikelompokkan dalam muatan umum. Anda memiliki opsi untuk membagi dan mengemas sinyal-sinyal ini berdasarkan kebutuhan Anda. Anda juga dapat menentukan latensi. Latensi terdiri dari periode waktu untuk menerima, mengumpulkan, dan menelan data.

Untuk tujuan perbandingan, operasi konsumsi untuk skenario ini berbasis di Wilayah `us-east-1` AWS. Perbandingan biaya hanya berlaku untuk layanan AWS. Biaya lain, seperti perangkat keras atau konektivitas, tidak diperhitungkan dalam analisis.

*Perbandingan biaya*

Tabel berikut menunjukkan biaya bulanan dalam dolar AS (USD) untuk setiap metode konsumsi.


| 
| 
| Metode | Biaya bulanan | 
| --- |--- |
| *AWS IoT\$1 SiteWise* | 331.77 USD | 
| AWS IoT SiteWise Edge dengan paket pemrosesan data (menjaga semua data tetap di tepi) | 200 USD | 
| Aturan AWS IoT Core dan Amazon S3 untuk mengakses data mentah | 84.54 USD | 
| Kompresi file parket di tepi dan mengunggah ke Amazon S3 | 0.5 USD | 

\$1Data harus di-downsampled untuk memenuhi kuota layanan. Ini berarti ada beberapa kehilangan data dengan metode ini.

*Metode alternatif*

Bagian ini menunjukkan biaya yang setara untuk metode alternatif berikut:
+ **AWS IoT SiteWise** — Setiap sinyal harus diunggah dalam pesan individual. Oleh karena itu, jumlah total pesan per bulan adalah 125 × 25 × 3600 × 24 × 30, atau 8,1 miliar pesan per bulan. Namun, AWS IoT hanya SiteWise dapat menangani 10 titik data per detik per properti. Dengan asumsi data di-downsampled menjadi 10 Hz, jumlah pesan per bulan dikurangi menjadi 125 × 10 × 3600 × 24 × 30, atau 3,24 miliar. Jika Anda menggunakan komponen penerbit yang mengemas pengukuran dalam kelompok 10 (dengan 1 USD per juta pesan), maka Anda mendapatkan biaya bulanan sebesar 324 USD per bulan. Dengan asumsi bahwa setiap pesan adalah 8 byte (1 Kb/125), itu adalah 25,92 Gb penyimpanan data. Ini menambah biaya bulanan 7,77 USD per bulan. Total biaya untuk bulan pertama adalah 331,77 USD dan meningkat sebesar 7,77 USD setiap bulan.
+ **AWS IoT SiteWise Edge dengan paket pemrosesan data, termasuk semua model dan sinyal yang diproses sepenuhnya di edge (yaitu, tidak ada konsumsi cloud)** — Anda dapat menggunakan paket pemrosesan data sebagai alternatif untuk mengurangi biaya dan mengonfigurasi semua model yang dihitung di tepi. Ini dapat bekerja hanya untuk penyimpanan dan visualisasi, bahkan jika tidak ada perhitungan nyata yang dilakukan. Dalam hal ini, perlu menggunakan perangkat keras yang kuat untuk gateway tepi. Ada biaya tetap 200 USD per bulan.
+ **Konsumsi langsung ke AWS IoT Core oleh MQTT dan aturan IoT untuk menyimpan data mentah di Amazon S3 — Dengan asumsi semua sinyal dipublikasikan dalam muatan umum, jumlah total pesan yang dipublikasikan ke AWS IoT** Core adalah 25 × 3600 × 24 × 30, atau 64,8 juta per bulan. Dengan 1 USD per juta pesan, itu biaya bulanan 64,8 USD per bulan. Pada 0,15 USD per juta aktivasi aturan dan dengan satu aturan per pesan, yang menambahkan biaya bulanan sebesar 19,44 USD per bulan. Dengan biaya 0,023 USD per Gb penyimpanan di Amazon S3, yang menambahkan 1,5 USD per bulan (meningkat setiap bulan untuk mencerminkan data baru). Total biaya untuk bulan pertama adalah 84,54 USD dan meningkat 1,5 USD setiap bulan.
+ **Mengompresi data di tepi dalam file Parket dan mengunggah ke Amazon S3 (metode yang diusulkan**) - Rasio kompresi tergantung pada jenis data. Dengan data industri yang sama diuji untuk MQTT, total data output selama sebulan penuh adalah 1,2 Gb. Biayanya 0,03 USD per bulan. Rasio kompresi (menggunakan data acak) yang dijelaskan dalam tolok ukur lain berada di urutan 66 persen (lebih dekat ke skenario terburuk). Total data adalah 21 Gb dan biaya 0,5 USD per bulan.

**Generator file parket**

Contoh kode berikut menunjukkan struktur generator file Parket yang ditulis dengan Python. Contoh kode hanya untuk tujuan ilustrasi dan tidak akan berfungsi jika ditempelkan ke lingkungan Anda.

```
import queue
import paho.mqtt.client as mqtt
import pandas as pd

#queue for decoupling the MQTT thread
messageQueue = queue.Queue()
client = mqtt.Client()
streammanager = StreamManagerClient()

def feederListener(topic, message):
    payload = {
        "topic" : topic,
        "payload" : message,
    }
    messageQueue.put_nowait(payload)

def on_connect(client_instance, userdata, flags, rc):
    client.subscribe("#",qos=0)

def on_message(client, userdata, message):
    feederListener(topic=str(message.topic), message=str(message.payload.decode("utf-8")))


filename = "tempfile.parquet"
streamname = "mystream"
destination_bucket= "amzn-s3-demo-bucket"
keyname="mykey"
period= 60

client.on_connect = on_connect
client.on_message = on_message
streammanager.create_message_stream(
            MessageStreamDefinition(name=streamname, strategy_on_full=StrategyOnFull.OverwriteOldestData)
        )


while True:
   try:
       message = messageQueue.get(timeout=myArgs.mqtt_timeout)
   except (queue.Empty):
       logger.warning("MQTT message reception timed out")

   currentTimestamp = getCurrentTime()
   if currentTimestamp >= nextUploadTimestamp:
       df = pd.DataFrame.from_dict(accumulator)
       df.to_parquet(filename)
       s3_export_task_definition = S3ExportTaskDefinition(input_url=filename, bucket=destination_bucket, key=key_name)
       streammanager.append_message(streamname, Util.validate_and_serialize_to_json_bytes(s3_export_task_definition))
       accumulator = {}
       nextUploadTimestamp += period
   else:
        accumulator.append(message)
```

# Luncurkan pekerjaan Spark di cluster EMR sementara menggunakan fungsi Lambda
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function"></a>

*Dhrubajyoti Mukherjeee, Amazon Web Services*

## Ringkasan
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-summary"></a>

Pola ini menggunakan aksi Amazon EMR RunJobFlow API untuk meluncurkan klaster sementara untuk menjalankan pekerjaan Spark dari fungsi Lambda. Cluster EMR sementara dirancang untuk dihentikan segera setelah pekerjaan selesai atau jika terjadi kesalahan. Cluster transien memberikan penghematan biaya karena hanya berjalan selama waktu komputasi, dan memberikan skalabilitas dan fleksibilitas dalam lingkungan cloud.

Cluster EMR transien diluncurkan menggunakan API Boto3 dan bahasa pemrograman Python dalam fungsi Lambda. Fungsi Lambda, yang ditulis dengan Python, memberikan fleksibilitas tambahan untuk memulai cluster saat dibutuhkan.

Untuk mendemonstrasikan komputasi dan output batch sampel, pola ini akan meluncurkan pekerjaan Spark di cluster EMR dari fungsi Lambda dan menjalankan komputasi batch terhadap contoh data penjualan perusahaan fiksi. Output dari pekerjaan Spark akan menjadi file nilai yang dipisahkan koma (CSV) di Amazon Simple Storage Service (Amazon S3). File data input, file Spark .jar, cuplikan kode, dan CloudFormation template AWS untuk peran virtual private cloud (VPC) dan AWS Identity and Access Management (IAM) untuk menjalankan komputasi disediakan sebagai lampiran.

## Prasyarat dan batasan
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif

**Batasan**
+ Hanya satu pekerjaan Spark yang dapat dimulai dari kode pada satu waktu. 

**Versi produk**
+ Diuji di Amazon EMR 6.0.0

## Arsitektur
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-architecture"></a>

**Tumpukan teknologi target**
+ Amazon EMR 
+ AWS Lambda
+ Amazon S3
+ Apache Spark

**Arsitektur target**

![\[Lambda ke Amazon EMR dan Spark ke Amazon S3\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/6c999fa7-9550-4929-a5c1-60394142175d/images/eb4fbb3f-2114-44d2-b9da-3fdcb9ca456e.png)


**Otomatisasi dan skala**

Untuk mengotomatiskan komputasi batch Spark-EMR, Anda dapat menggunakan salah satu opsi berikut.
+ Menerapkan EventBridge aturan Amazon yang dapat memulai fungsi Lambda dalam jadwal cron. Untuk informasi selengkapnya, lihat [Tutorial: Menjadwalkan fungsi AWS Lambda menggunakan](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-run-lambda-schedule.html). EventBridge
+ Konfigurasikan [pemberitahuan peristiwa Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) untuk memulai fungsi Lambda saat kedatangan file.
+ Teruskan parameter input ke fungsi AWS Lambda melalui badan peristiwa dan variabel lingkungan Lambda. 

## Alat
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-tools"></a>

**Layanan AWS**
+ [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) adalah platform cluster terkelola yang menyederhanakan menjalankan kerangka kerja data besar di AWS untuk memproses dan menganalisis data dalam jumlah besar.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Alat-alat lainnya**
+ [Apache Spark](https://spark.apache.org/docs/latest/) adalah mesin analisis multi-bahasa untuk pemrosesan data skala besar.

## Epik
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-epics"></a>

### Buat peran Amazon EMR dan Lambda IAM dan VPC
<a name="create-the-amazon-emr-and-lambda-iam-roles-and-the-vpc"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat peran IAM dan VPC. | Jika Anda sudah memiliki peran AWS Lambda dan Amazon EMR IAM serta VPC, Anda dapat melewati langkah ini. Untuk menjalankan kode, baik cluster EMR dan fungsi Lambda memerlukan peran IAM. Cluster EMR juga membutuhkan VPC dengan subnet publik atau subnet pribadi dengan gateway NAT. *Untuk membuat semua peran IAM dan VPC secara otomatis, gunakan templat CloudFormation AWS terlampir apa adanya, atau Anda dapat membuat peran dan VPC secara manual seperti yang ditentukan di bagian Informasi tambahan.* | Arsitek awan | 
| Perhatikan kunci keluaran CloudFormation template AWS. | Setelah CloudFormation template berhasil diterapkan, navigasikan ke tab **Output** di konsol CloudFormation AWS. Perhatikan lima tombol output: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function.html)Anda akan menggunakan nilai-nilai dari tombol-tombol ini saat Anda membuat fungsi Lambda. | Arsitek awan | 

### Unggah file Spark .jar
<a name="upload-the-spark-jar-file"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah file Spark .jar. | Unggah file Spark .jar ke bucket S3 yang dibuat oleh CloudFormation AWS stack. Nama bucket sama dengan tombol output`S3Bucket`.  | AWS Umum | 

### Buat fungsi Lambda untuk meluncurkan cluster EMR
<a name="create-the-lambda-function-to-launch-the-emr-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat fungsi Lambda. | Di konsol Lambda, buat fungsi Lambda Python 3.9\$1 dengan peran eksekusi. Kebijakan peran eksekusi harus mengizinkan Lambda meluncurkan klaster EMR. (Lihat CloudFormation template AWS terlampir.) | Insinyur data, insinyur Cloud | 
| Salin dan tempel kodenya. | Ganti kode dalam `lambda_function.py` file dengan kode dari bagian *Informasi tambahan* dari pola ini. | Insinyur data, insinyur Cloud | 
| Ubah parameter dalam kode. | Ikuti komentar dalam kode untuk mengubah nilai parameter agar sesuai dengan akun AWS Anda. | Insinyur data, insinyur Cloud | 
| Luncurkan fungsi untuk memulai cluster. | Luncurkan fungsi untuk memulai pembuatan cluster EMR sementara dengan file Spark .jar yang disediakan. Ini akan menjalankan pekerjaan Spark dan berakhir secara otomatis ketika pekerjaan selesai. | Insinyur data, insinyur Cloud | 
| Periksa status cluster EMR. | **Setelah kluster EMR dimulai, ia muncul di konsol EMR Amazon di bawah tab Clusters.** Kesalahan apa pun saat meluncurkan cluster atau menjalankan pekerjaan dapat diperiksa sesuai dengan itu. | Insinyur data, insinyur Cloud | 

### Siapkan dan jalankan demo sampel
<a name="set-up-and-run-the-sample-demo"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah file Spark .jar.  | Unduh file Spark .jar dari bagian *Lampiran* dan unggah ke bucket S3. | Insinyur data, insinyur Cloud | 
| Unggah dataset input. | Unggah `fake_sales_data.csv` file terlampir ke bucket S3. | Insinyur data, insinyur Cloud | 
| Tempel kode Lambda dan ubah parameternya. | Salin kode dari bagian **Alat**, dan tempel kode dalam fungsi Lambda, ganti file kode`lambda_function.py`. Ubah nilai parameter agar sesuai dengan akun Anda. | Insinyur data, insinyur Cloud | 
| Luncurkan fungsi dan verifikasi outputnya. | Setelah fungsi Lambda memulai cluster dengan pekerjaan Spark yang disediakan, ia menghasilkan file.csv di bucket S3. | Insinyur data, insinyur Cloud | 

## Sumber daya terkait
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-resources"></a>
+ [Membangun Spark](https://spark.apache.org/docs/latest/building-spark.html)
+ [Apache Spark dan Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark.html)
+ [Boto3 Dokumentasi run\$1job\$1flow Dokumen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/emr.html#EMR.Client.run_job_flow)
+ [Informasi dan dokumentasi Apache Spark](https://spark.apache.org/)

## Informasi tambahan
<a name="launch-a-spark-job-in-a-transient-emr-cluster-using-a-lambda-function-additional"></a>

**Kode**

```
"""
Copy paste the following code in your Lambda function. Make sure to change the following key parameters for the API as per your account

-Name (Name of Spark cluster)
-LogUri (S3 bucket to store EMR logs)
-Ec2SubnetId (The subnet to launch the cluster into)
-JobFlowRole (Service role for EC2)
-ServiceRole (Service role for Amazon EMR)

The following parameters are additional parameters for the Spark job itself. Change the bucket name and prefix for the Spark job (located at the bottom).

-s3://your-bucket-name/prefix/lambda-emr/SparkProfitCalc.jar (Spark jar file)
-s3://your-bucket-name/prefix/fake_sales_data.csv (Input data file in S3)
-s3://your-bucket-name/prefix/outputs/report_1/ (Output location in S3)
"""
import boto3

client = boto3.client('emr')


def lambda_handler(event, context):
    response = client.run_job_flow(
        Name='spark_job_cluster',
        LogUri='s3://your-bucket-name/prefix/logs',
        ReleaseLabel='emr-6.0.0',
        Instances={
            'MasterInstanceType': 'm5.xlarge',
            'SlaveInstanceType': 'm5.large',
            'InstanceCount': 1,
            'KeepJobFlowAliveWhenNoSteps': False,
            'TerminationProtected': False,
            'Ec2SubnetId': 'subnet-XXXXXXXXXXXXXX'
        },
        Applications=[{'Name': 'Spark'}],
        Configurations=[
            {'Classification': 'spark-hive-site',
             'Properties': {
                 'hive.metastore.client.factory.class': 'com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory'}
             }
        ],
        VisibleToAllUsers=True,
        JobFlowRole='EMRLambda-EMREC2InstanceProfile-XXXXXXXXX',
        ServiceRole='EMRLambda-EMRRole-XXXXXXXXX',
        Steps=[
            {
                'Name': 'flow-log-analysis',
                'ActionOnFailure': 'TERMINATE_CLUSTER',
                'HadoopJarStep': {
                    'Jar': 'command-runner.jar',
                    'Args': [
                        'spark-submit',
                        '--deploy-mode', 'cluster',
                        '--executor-memory', '6G',
                        '--num-executors', '1',
                        '--executor-cores', '2',
                        '--class', 'com.aws.emr.ProfitCalc',
                        's3://your-bucket-name/prefix/lambda-emr/SparkProfitCalc.jar',
                        's3://your-bucket-name/prefix/fake_sales_data.csv',
                        's3://your-bucket-name/prefix/outputs/report_1/'
                    ]
                }
            }
        ]
    )
```

**Peran IAM dan pembuatan VPC**

Untuk meluncurkan cluster EMR dalam fungsi Lambda, diperlukan peran VPC dan IAM. Anda dapat mengatur peran VPC dan IAM dengan menggunakan CloudFormation templat AWS di bagian Lampiran pola ini, atau Anda dapat membuatnya secara manual menggunakan tautan berikut. 

Peran IAM berikut diperlukan untuk menjalankan Lambda dan Amazon EMR. 

*Peran eksekusi Lambda*

[Peran eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) fungsi Lambda memberinya izin untuk mengakses layanan dan sumber daya AWS.

*Peran layanan untuk Amazon EMR*

[Peran Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html) mendefinisikan tindakan yang diizinkan untuk Amazon EMR saat menyediakan sumber daya dan melakukan tugas tingkat layanan yang tidak dilakukan dalam konteks instans Amazon Elastic Compute Cloud (Amazon) yang berjalan dalam klaster. EC2 Misalnya, peran layanan digunakan untuk menyediakan EC2 instance saat klaster diluncurkan.

*Peran layanan untuk EC2 instance*

[Peran layanan untuk EC2 instance klaster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html) (juga disebut profil EC2 instans untuk Amazon EMR) adalah jenis peran layanan khusus yang ditetapkan ke EC2 setiap instance dalam klaster EMR Amazon saat instance diluncurkan. Proses aplikasi yang berjalan di atas Apache Hadoop mengambil peran ini sebagai izin untuk berinteraksi dengan layanan AWS lainnya.

*Pembuatan VPC dan subnet*

Anda dapat [membuat VPC dari konsol](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#create-vpc-and-other-resources) VPC. 

## Lampiran
<a name="attachments-6c999fa7-9550-4929-a5c1-60394142175d"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/6c999fa7-9550-4929-a5c1-60394142175d/attachments/attachment.zip)

# Migrasikan beban kerja Apache Cassandra ke Amazon Keyspaces dengan menggunakan AWS Glue
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue"></a>

*Nikolai Kolesnikov, Karthiga Priya Chandran, dan Samir Patel, Amazon Web Services*

## Ringkasan
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-summary"></a>

Pola ini menunjukkan cara memigrasikan beban kerja Apache Cassandra yang ada ke Amazon Keyspaces (untuk Apache Cassandra) dengan menggunakan AWS Glue. CQLReplicator Anda dapat menggunakan CQLReplicator AWS Glue untuk meminimalkan kelambatan replikasi migrasi beban kerja Anda hingga hitungan menit. Anda juga mempelajari cara menggunakan bucket Amazon Simple Storage Service (Amazon S3) untuk menyimpan data yang diperlukan untuk migrasi, [termasuk file Apache](https://parquet.apache.org/) Parquet, file konfigurasi, dan skrip. Pola ini mengasumsikan bahwa beban kerja Cassandra Anda di-host di instans Amazon Elastic Compute Cloud ( EC2Amazon) di cloud pribadi virtual (VPC).

## Prasyarat dan batasan
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-prereqs"></a>

**Prasyarat**
+ Cluster Cassandra dengan tabel sumber
+ Tabel target di Amazon Keyspaces untuk mereplikasi beban kerja
+ Bucket S3 untuk menyimpan file Parket perantara yang berisi perubahan data tambahan
+ Bucket S3 untuk menyimpan file dan skrip konfigurasi pekerjaan

**Batasan**
+ CQLReplicator pada AWS Glue memerlukan waktu untuk menyediakan Data Processing Units (DPUs) untuk beban kerja Cassandra. Jeda replikasi antara cluster Cassandra dan ruang kunci target dan tabel di Amazon Keyspaces kemungkinan akan berlangsung hanya dalam hitungan menit.

## Arsitektur
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-architecture"></a>

**Tumpukan teknologi sumber**
+ Apache Cassandra
+ DataStax Peladen
+ ScyllaDB

**Tumpukan teknologi target**
+ Amazon Keyspaces

**Arsitektur migrasi**

Diagram berikut menunjukkan contoh arsitektur di mana cluster Cassandra di-host pada EC2 instance dan tersebar di tiga Availability Zone. Node Cassandra di-host di subnet pribadi.

![\[Peran layanan khusus, Amazon Keyspaces, dan Amazon S3, dengan AWS Glue terhubung ke node VPC.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e08048da-8996-4f2c-b8ed-da49fe9e693b/images/76256ab3-a1e6-4c9e-9c40-dc78f51edf0f.png)


Diagram menunjukkan alur kerja berikut:

1. Peran layanan khusus menyediakan akses ke Amazon Keyspaces dan bucket S3.

1. Pekerjaan AWS Glue membaca konfigurasi pekerjaan dan skrip di bucket S3.

1. Pekerjaan AWS Glue terhubung melalui port 9042 untuk membaca data dari cluster Cassandra.

1. Pekerjaan AWS Glue terhubung melalui port 9142 untuk menulis data ke Amazon Keyspaces.

## Alat
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-tools"></a>

**Layanan dan alat AWS**
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) adalah shell berbasis browser yang dapat Anda gunakan untuk mengelola layanan AWS dengan menggunakan AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) dan berbagai alat pengembangan yang telah diinstal sebelumnya.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) adalah layanan ETL yang dikelola sepenuhnya yang membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
+ [Amazon Keyspaces (untuk Apache Cassandra)](https://docs.aws.amazon.com/keyspaces/latest/devguide/what-is-keyspaces.html) adalah layanan database terkelola yang membantu Anda memigrasi, menjalankan, dan menskalakan beban kerja Cassandra Anda di AWS Cloud.

**Kode**

Kode untuk pola ini tersedia di GitHub [CQLReplicator](https://github.com/aws-samples/cql-replicator/tree/main/glue)repositori.

## Praktik terbaik
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-best-practices"></a>
+ Untuk menentukan sumber daya AWS Glue yang diperlukan untuk migrasi, perkirakan jumlah baris dalam tabel sumber Cassandra. Misalnya, 250 K baris per 0,25 DPU (2 vCPUs, memori 4 GB) dengan disk 84 GB.
+ Tabel Amazon Keyspaces pra-hangat sebelum dijalankan. CQLReplicator Misalnya, delapan CQLReplicator ubin (AWS Glue jobs) dapat menulis hingga 22 K WCUs per detik, sehingga target harus dipanaskan terlebih dahulu hingga 25-30 K WCUs per detik.
+ Untuk mengaktifkan komunikasi antara komponen AWS Glue, gunakan aturan masuk referensi mandiri untuk semua port TCP di grup keamanan Anda.
+ Gunakan strategi lalu lintas tambahan untuk mendistribusikan beban kerja migrasi dari waktu ke waktu.

## Epik
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-epics"></a>

### Menyebarkan CQLReplicator
<a name="deploy-cqlreplicator"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat keyspace target dan tabel.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | Pemilik aplikasi, administrator AWS, DBA, Pengembang aplikasi | 
| Konfigurasikan driver Cassandra untuk terhubung ke Cassandra. | Gunakan skrip konfigurasi berikut:<pre>Datastax-java-driver {<br />  basic.request.consistency = "LOCAL_QUORUM"<br />  basic.contact-points = ["127.0.0.1:9042"]<br />   advanced.reconnect-on-init = true<br />   basic.load-balancing-policy {<br />        local-datacenter = "datacenter1"<br />}<br />advanced.auth-provider = {<br />       class = PlainTextAuthProvider<br />       username = "user-at-sample"<br />       password = "S@MPLE=PASSWORD="<br />}<br />}</pre>Skrip sebelumnya menggunakan Spark Cassandra Connector. Untuk informasi lebih lanjut, lihat konfigurasi referensi untuk [Cassandra](https://docs.datastax.com/en/developer/java-driver/4.17/manual/core/configuration/reference/). | DBA | 
| Konfigurasikan driver Cassandra untuk terhubung ke Amazon Keyspaces. | Gunakan skrip konfigurasi berikut:<pre>datastax-java-driver {<br />basic {<br />  load-balancing-policy {<br />    local-datacenter = us-west-2<br />        }<br />  contact-points = [<br />            "cassandra.us-west-2.amazonaws.com:9142"<br />        ]<br />  request {<br />  page-size = 2500<br />  timeout = 360 seconds<br />  consistency = LOCAL_QUORUM<br />        }<br />    }<br />advanced {<br /> control-connection {<br />  timeout = 360 seconds<br />        }<br /> session-leak.threshold = 6<br /> connection {<br /> connect-timeout = 360 seconds<br /> init-query-timeout = 360 seconds<br /> warn-on-init-error = false<br />        }<br /> auth-provider = {<br />  class = software.aws.mcs.auth.SigV4AuthProvider<br />  aws-region = us-west-2<br /> }<br /><br /> ssl-engine-factory {<br />  class = DefaultSslEngineFactory<br />        }<br />    }<br />}</pre>Skrip sebelumnya menggunakan Spark Cassandra Connector. Untuk informasi lebih lanjut, lihat konfigurasi referensi untuk [Cassandra](https://docs.datastax.com/en/developer/java-driver/4.17/manual/core/configuration/reference/). | DBA | 
| Buat peran IAM untuk pekerjaan AWS Glue. | Buat peran layanan AWS baru yang `glue-cassandra-migration` diberi nama AWS Glue sebagai entitas tepercaya.`glue-cassandra-migration`Seharusnya menyediakan akses baca dan tulis ke bucket S3 dan Amazon Keyspaces. Bucket S3 berisi file.jar, file konfigurasi untuk Amazon Keyspaces dan Cassandra, dan file Parket perantara. Misalnya, berisi `AWSGlueServiceRole``AmazonS3FullAccess`, dan kebijakan `AmazonKeyspacesFullAccess` terkelola. | AWS DevOps | 
| Unduh CQLReplicator di AWS CloudShell. | Unduh proyek ke folder rumah Anda dengan menjalankan perintah berikut:<pre>git clone https://github.com/aws-samples/cql-replicator.git<br />cd cql-replicator/glue<br /># Only for AWS CloudShell, the bc package includes bc and dc. Bc is an arbitrary precision numeric processing arithmetic language<br />sudo yum install bc -y</pre> |  | 
| Ubah file konfigurasi referensi. | Salin `CassandraConnector.conf` dan `KeyspacesConnector.conf` ke `../glue/conf` direktori di folder proyek. | AWS DevOps | 
| Memulai proses migrasi. | Perintah berikut menginisialisasi CQLReplicator lingkungan. Inisialisasi melibatkan penyalinan artefak.jar, dan membuat konektor AWS Glue, bucket S3, pekerjaan AWS Glue, keyspace, dan tabel: `migration` `ledger`<pre>cd cql-replicator/glue/bin<br />./cqlreplicator --state init --sg '"sg-1","sg-2"' \ <br />                --subnet "subnet-XXXXXXXXXXXX" \ <br />                --az us-west-2a --region us-west-2 \ <br />                --glue-iam-role glue-cassandra-migration \ <br />                --landing-zone s3://cql-replicator-1234567890-us-west-2<br /></pre>Skrip mencakup parameter berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | AWS DevOps | 
| Validasi penerapan. | Setelah Anda menjalankan perintah sebelumnya, akun AWS harus berisi yang berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | AWS DevOps | 

### Jalankan CQLReplicator
<a name="run-cqlreplicator"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai proses migrasi. | Untuk beroperasi CQLReplicator pada AWS Glue, Anda perlu menggunakan `--state run` perintah, diikuti oleh serangkaian parameter. Konfigurasi yang tepat dari parameter ini terutama ditentukan oleh persyaratan migrasi unik Anda. Misalnya, pengaturan ini mungkin berbeda jika Anda memilih untuk mereplikasi nilai dan pembaruan time to live (TTL), atau Anda membongkar objek melebihi 1 MB ke Amazon S3.Untuk mereplikasi beban kerja dari cluster Cassandra ke Amazon Keyspaces, jalankan perintah berikut: <pre>./cqlreplicator --state run --tiles 8  \<br />                --landing-zone s3://cql-replicator-1234567890-us-west-2 \ <br />                --region us-west-2 \                              <br />                --src-keyspace source_keyspace \ <br />                --src-table source_table \  <br />                --trg-keyspace taget_keyspace \<br />                --writetime-column column_name \<br />                --trg-table target_table --inc-traffic</pre>Ruang kunci dan tabel sumber Anda ada `source_keyspace.source_table` di cluster Cassandra. Ruang kunci dan tabel target Anda ada `target_keyspace.target_table` di Amazon Keyspaces. Parameter ini `--inc-traffic` membantu mencegah lalu lintas tambahan membebani cluster Cassandra dan Amazon Keyspaces dengan jumlah permintaan yang tinggi.Untuk mereplikasi pembaruan, tambahkan `--writetime-column regular_column_name` ke baris perintah Anda. Kolom reguler akan digunakan sebagai sumber stempel waktu tulis. | AWS DevOps | 

### Memantau proses migrasi
<a name="monitor-the-migration-process"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi baris Cassandra yang dimigrasi selama fase migrasi historis. | Untuk mendapatkan jumlah baris yang direplikasi selama fase penimbunan ulang, jalankan perintah berikut:<pre>./cqlreplicator --state stats \<br />                --landing-zone s3://cql-replicator-1234567890-us-west-2 \  <br />                --src-keyspace source_keyspace --src-table source_table --region us-west-2</pre> | AWS DevOps | 

### Hentikan proses migrasi
<a name="stop-the-migration-process"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Gunakan `cqlreplicator` perintah atau konsol AWS Glue. | Untuk menghentikan proses migrasi dengan anggun, jalankan perintah berikut:<pre>./cqlreplicator --state request-stop --tiles 8 \                         <br />                --landing-zone s3://cql-replicator-1234567890-us-west-2 \     <br />                --region us-west-2 \                     <br />                --src-keyspace source_keyspace --src-table source_table</pre>Untuk segera menghentikan proses migrasi, gunakan konsol AWS Glue. | AWS DevOps | 

### Bersihkan
<a name="clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus sumber daya yang digunakan. | Perintah berikut akan menghapus tabel AWS Glue job, konektor, bucket S3, dan `ledger` Keyspaces:<pre>./cqlreplicator --state cleanup --landing-zone s3://cql-replicator-1234567890-us-west-2</pre> | AWS DevOps | 

## Pemecahan masalah
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Pekerjaan AWS Glue gagal dan mengembalikan kesalahan Kehabisan Memori (OOM). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.html) | 

## Sumber daya terkait
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-resources"></a>
+ [CQLReplicator dengan AWS Glue README.MD](https://github.com/aws-samples/cql-replicator/blob/main/glue/README.MD)
+ [Dokumentasi AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)
+ [Dokumentasi Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/what-is-keyspaces.html)
+ [Apache Cassandra](https://cassandra.apache.org/_/index.html)

## Informasi tambahan
<a name="migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue-additional"></a>

**Pertimbangan migrasi**

Anda dapat menggunakan AWS Glue untuk memigrasikan beban kerja Cassandra Anda ke Amazon Keyspaces, sambil menjaga database sumber Cassandra Anda berfungsi sepenuhnya selama proses migrasi. Setelah replikasi selesai, Anda dapat memilih untuk memotong aplikasi Anda ke Amazon Keyspaces dengan jeda replikasi minimal (kurang dari menit) antara cluster Cassandra dan Amazon Keyspaces. Untuk menjaga konsistensi data, Anda juga dapat menggunakan pipeline serupa untuk mereplikasi data kembali ke cluster Cassandra dari Amazon Keyspaces.

**Tulis perhitungan unit**

Sebagai contoh, pertimbangkan bahwa Anda bermaksud menulis 500.000.000 dengan ukuran baris 1 KiB selama satu jam. Jumlah total unit tulis Amazon Keyspaces (WCUs) yang Anda butuhkan didasarkan pada perhitungan ini:

`(number of rows/60 mins 60s) 1 WCU per row = (500,000,000/(60*60s) * 1 WCU) = 69,444 WCUs required`

69.444 WCUs per detik adalah tarif untuk 1 jam, tetapi Anda dapat menambahkan beberapa bantal untuk overhead.  Misalnya, `69,444 * 1.10 = 76,388 WCUs` memiliki overhead 10 persen.

**Buat keyspace dengan menggunakan CQL**

Untuk membuat keyspace dengan menggunakan CQL, jalankan perintah berikut:

```
CREATE KEYSPACE target_keyspace WITH replication = {'class': 'SingleRegionStrategy'}
CREATE TABLE target_keyspace.target_table ( userid uuid, level text, gameid int, description text, nickname text, zip text, email text, updatetime text, PRIMARY KEY (userid, level, gameid) ) WITH default_time_to_live = 0 AND CUSTOM_PROPERTIES = {'capacity_mode':{ 'throughput_mode':'PROVISIONED', 'write_capacity_units':76388, 'read_capacity_units':3612 }} AND CLUSTERING ORDER BY (level ASC, gameid ASC)
```

# Migrasikan Oracle Business Intelligence 12c ke AWS Cloud dari server lokal
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers"></a>

*Pertunjukan Lanre (Lan-Ray) dan Patrick Huang, Amazon Web Services*

## Ringkasan
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-summary"></a>

Pola ini menunjukkan cara memigrasikan [Oracle Business Intelligence Enterprise Edition 12c](https://www.oracle.com/business-analytics/business-intelligence/technologies/bi-enterprise-edition.html) dari server lokal ke AWS Cloud dengan menggunakan AWS. CloudFormation Ini juga menjelaskan bagaimana Anda dapat menggunakan layanan AWS lainnya untuk mengimplementasikan komponen Oracle BI 12c yang memberikan ketersediaan tinggi, keamanan, fleksibilitas, dan kemampuan untuk menskalakan secara dinamis.

Untuk daftar praktik terbaik terkait migrasi Oracle BI 12c ke AWS Cloud, lihat bagian **Informasi tambahan** dari pola ini.

**catatan**  
Ini adalah praktik terbaik untuk menjalankan beberapa migrasi pengujian sebelum mentransfer data Oracle BI 12c Anda yang ada ke cloud. Pengujian ini membantu Anda menyempurnakan pendekatan migrasi, mengidentifikasi dan memperbaiki potensi masalah, dan memperkirakan persyaratan waktu henti dengan lebih akurat.

## Prasyarat dan batasan
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Mengamankan konektivitas jaringan antara server lokal dan AWS melalui layanan [AWS Virtual Private Network (AWS VPN)](https://aws.amazon.com/vpn/) atau [AWS Direct](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) Connect
+ Lisensi perangkat lunak untuk sistem operasi Oracle Anda, Oracle BI 12c, Oracle Database, Oracle Server, dan Oracle HTTP Server WebLogic 

**Batasan**

Untuk informasi tentang batas ukuran penyimpanan, lihat dokumentasi [Amazon Relational Database Service (Amazon RDS) untuk](https://aws.amazon.com/rds/oracle/features/) Oracle.

**Versi produk**
+ Oracle Business Intelligence Enterprise Edisi 12c
+  WebLogic Server Oracle 12c
+ Oracle HTTP Server 12c
+ Oracle Database 12c (atau yang lebih baru)
+ Oracle Java SE 8

## Arsitektur
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-architecture"></a>

Diagram berikut menunjukkan contoh arsitektur untuk menjalankan komponen Oracle BI 12c di AWS Cloud:

![\[Contoh arsitektur untuk menjalankan komponen Oracle BI 12c di AWS Cloud.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8bb72df1-7546-4208-bc70-5789767e3600/images/aae8f8f3-8125-4868-a8e5-eac1cc42812f.png)


 

Diagram ini menunjukkan arsitektur berikut:

1. Amazon Route 53 menyediakan konfigurasi layanan nama domain (DNS).

1. Elastic Load Balancing (ELB) mendistribusikan lalu lintas jaringan untuk meningkatkan skalabilitas dan ketersediaan komponen Oracle BI 12c di beberapa Availability Zone.

1. Grup Auto Scaling Amazon Elastic Compute Cloud (Amazon EC2) meng-host Server HTTP Oracle, server Admin Weblogic, dan server BI terkelola di beberapa Availability Zone.

1. Amazon Relational Database Service (Amazon RDS) untuk database Oracle menyimpan metadata BI Server di beberapa Availability Zone.

1. Amazon Elastic File System (Amazon EFS) dipasang ke setiap komponen Oracle BI 12c untuk penyimpanan file bersama.

**Tumpukan teknologi**
+ Amazon Elastic Block Store (Amazon EBS)
+ Amazon Elastic Compute Cloud (Amazon EC2)
+ Amazon Elastic File System (Amazon EFS)
+ Amazon RDS for Oracle
+ AWS Certificate Manager (ACM)
+ Elastic Load Balancing (ELB)
+ Oracle BI 12c
+  WebLogic Server Oracle 12c
+ Server HTTP Oracle (OHS)

## Alat
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-tools"></a>
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.
+ [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) membantu Anda membuat, menyimpan, dan memperbarui sertifikat dan kunci SSL/TLS X.509 publik dan pribadi yang melindungi situs web dan aplikasi AWS Anda.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) membantu Anda memigrasikan penyimpanan data ke AWS Cloud atau antara kombinasi pengaturan cloud dan lokal.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan, dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [ EC2 Auto Scaling Amazon](https://aws.amazon.com/ec2/autoscaling/) membantu Anda menjaga ketersediaan aplikasi dan memungkinkan Anda menambahkan atau menghapus EC2 instans Amazon secara otomatis sesuai dengan kondisi yang Anda tentukan. 
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) membantu Anda membuat dan mengonfigurasi sistem file bersama di AWS Cloud.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) mendistribusikan lalu lintas aplikasi atau jaringan yang masuk ke beberapa target. Misalnya, Anda dapat mendistribusikan lalu lintas di seluruh instans, container, dan alamat IP Amazon Elastic Compute Cloud (Amazon EC2) di satu atau beberapa Availability Zone.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) membantu Anda meluncurkan sumber daya AWS ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur AWS yang dapat diskalakan.
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) membantu Anda memindahkan data dan metadata dari satu database ke database lainnya dengan kecepatan tinggi.
+ [Oracle Fusion Middleware](https://www.oracle.com/middleware/technologies/business-intelligence-v12214-downloads.html) adalah rangkaian alat pengembangan aplikasi dan solusi integrasi untuk manajemen identitas, kolaborasi, dan pelaporan intelijen bisnis.
+ [Oracle GoldenGate](https://www.oracle.com/integration/goldengate/#:~:text=OCI%20GoldenGate%20is%20a%20real,in%20the%20Oracle%20Cloud%20Infrastructure.) membantu Anda merancang, menjalankan, mengatur, dan memantau replikasi data dan mengalirkan solusi pemrosesan data di Oracle Cloud Infrastructure.
+ [Oracle WebLogic Scripting Tool (WLST)](https://docs.oracle.com/middleware/12213/cross/wlsttasks.htm) menyediakan antarmuka baris perintah yang membantu Anda secara horizontal skala cluster Anda. WebLogic 

## Epik
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-epics"></a>

### Menilai lingkungan sumber
<a name="assess-the-source-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kumpulkan informasi inventaris perangkat lunak. | Identifikasi versi dan tingkat patch untuk setiap komponen perangkat lunak tumpukan teknologi sumber Anda, termasuk yang berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI | 
| Kumpulkan informasi inventaris komputasi dan penyimpanan. | Di lingkungan sumber Anda, tinjau metrik pemanfaatan saat ini dan historis untuk hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html)Pastikan Anda memperhitungkan lonjakan historis dalam penggunaan. | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI, Administrator Sistem | 
| Kumpulkan informasi tentang arsitektur lingkungan sumber dan persyaratannya. | Dapatkan pemahaman penuh tentang arsitektur lingkungan sumber Anda dan persyaratannya, termasuk pengetahuan tentang hal-hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI | 
| Identifikasi sumber data Java Database Connectivity (JDBC) | Kumpulkan informasi tentang sumber data JDBC lingkungan sumber Anda dan driver untuk setiap mesin database yang digunakannya. | Arsitek Migrasi, Pemilik Aplikasi, Administrator Oracle BI, Insinyur Database atau Administrator | 
| Kumpulkan informasi tentang pengaturan khusus lingkungan. | Kumpulkan informasi tentang pengaturan dan konfigurasi yang khusus untuk lingkungan sumber Anda, termasuk yang berikut ini:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI | 
| Identifikasi dependensi apa pun pada aplikasi lain. | Kumpulkan informasi tentang integrasi di lingkungan sumber Anda yang membuat dependensi dengan aplikasi lain.Pastikan Anda mengidentifikasi integrasi Lightweight Directory Access Protocol (LDAP) dan persyaratan jaringan lainnya. | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI | 

### Rancang lingkungan target Anda
<a name="design-your-target-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dokumen desain tingkat tinggi. | Buat dokumen desain arsitektur target. Pastikan Anda menggunakan informasi yang Anda kumpulkan saat menilai lingkungan sumber Anda untuk menginformasikan dokumen desain. | Arsitek Solusi, Arsitek Aplikasi, Insinyur Basis Data, Arsitek Migrasi | 
| Dapatkan persetujuan untuk dokumen desain. | Tinjau dokumen desain dengan pemangku kepentingan dan dapatkan persetujuan yang diperlukan. | Pemilik Aplikasi atau Layanan, Arsitek Solusi, Arsitek Aplikasi | 

### Menyebarkan infrastruktur
<a name="deploy-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan kode infrastruktur di CloudFormation. | Buat CloudFormation template untuk menyediakan infrastruktur Oracle BI 12c Anda di AWS Cloud.Untuk informasi selengkapnya, lihat [Bekerja dengan CloudFormation templat AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) di *Panduan CloudFormation Pengguna AWS*.Ini adalah praktik terbaik untuk membuat CloudFormation template modular untuk setiap tingkat Oracle BI 12c, daripada satu template besar untuk semua sumber daya Anda. Untuk informasi selengkapnya tentang praktik CloudFormation terbaik, lihat [8 praktik terbaik saat mengotomatiskan penerapan Anda dengan AWS CloudFormation di Blog AWS](https://aws.amazon.com/blogs/infrastructure-and-automation/best-practices-automating-deployments-with-aws-cloudformation/). | Achitect Infrastruktur Cloud, Arsitek Solusi, Arsitek Aplikasi | 
| Unduh perangkat lunak yang diperlukan. | DDownload perangkat lunak berikut bersama dengan versi dan tambalan yang diperlukan dari situs web [Oracle](https://www.oracle.com/):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Insinyur Basis Data, Arsitek Aplikasi | 
| Siapkan skrip instalasi. | Buat skrip instalasi perangkat lunak yang menjalankan instalasi diam. Skrip ini menyederhanakan otomatisasi penerapan.Untuk informasi lebih lanjut, lihat [OBIEE 12c: Bagaimana Melakukan](https://support.oracle.com/knowledge/Enterprise%20Performance%20Management%20and%20Business%20Intelligence/2267490_1.html) Instalasi Senyap? di situs Dukungan Oracle. Anda memerlukan akun Oracle Support untuk melihat dokumentasi. | Arsitek Migrasi, Insinyur Basis Data, Arsitek Aplikasi | 
| Buat AMI Linux yang didukung Amazon EBS untuk tingkatan web dan aplikasi Anda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Insinyur Basis Data, Arsitek Aplikasi | 
| Luncurkan infrastruktur AWS Anda dengan menggunakan CloudFormation. | Terapkan tingkatan web dan aplikasi Oracle BI 12c Anda dalam modul dengan menggunakan CloudFormation templat yang Anda buat.Untuk petunjuknya, lihat [Memulai AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.html) di *Panduan CloudFormation Pengguna AWS*. | Arsitek Infrastruktur Cloud, Arsitek Solusi, Arsitek Aplikasi | 

### Migrasikan Oracle BI 12c ke AWS dengan menggunakan instalasi baru
<a name="migrate-oracle-bi-12c-to-aws-by-using-a-fresh-installation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tahap perangkat lunak yang diperlukan. | Tingkatkan perangkat lunak yang diperlukan di lokasi yang dapat diakses oleh EC2 instans Amazon. Misalnya, Anda dapat menampilkan perangkat lunak di Amazon S3 atau EC2 contoh Amazon lain yang dapat diakses oleh server web dan aplikasi Anda. | Arsitek Migrasi, Arsitek Oracle BI, Achitect Infrastruktur Cloud, Arsitek Solusi, Arsitek Aplikasi | 
| Siapkan database repositori Anda untuk instalasi Oracle BI 12c. | [Buat skema Oracle BI 12c dengan menjalankan [Oracle Repository Creation Utility (RCU) terhadap instance database Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Resources.RCU.html#Oracle.Resources.RCU.Installing) for Oracle baru.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) | Achitect Infrastruktur Cloud, Arsitek Solusi, Arsitek Aplikasi, Arsitek Migrasi, Arsitek Oracle BI | 
| Instal Oracle Fusion Middleware 12c dan Oracle BI 12c. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Arsitek Oracle BI | 
| Konfigurasikan domain Oracle WebLogic Server Anda untuk Oracle BI 12c. | Konfigurasikan domain Oracle BI 12c Anda sebagai penerapan yang tidak berkerumun. Untuk informasi selengkapnya, lihat [Mengonfigurasi Domain BI](https://docs.oracle.com/middleware/bi12214/lcm/BIEDG/GUID-FD80C4C4-A2E9-4190-8B6A-7AD659D8FBE2.htm#BIEDG-GUID-D4FC2F0A-88B0-453C-BF14-17D365018252) di *Panduan Penyebaran Perusahaan Oracle Fusion Middleware untuk Oracle Business* Intelligence. | Arsitek Migrasi, Arsitek Oracle BI | 
| Lakukan skala horizontal dari Oracle BI 12c. | Secara horizontal skala node tunggal ke jumlah node yang diinginkan. Untuk informasi selengkapnya, [lihat Menskalakan Oracle Business Intelligence di Oracle](https://docs.oracle.com/middleware/bi12214/lcm/BIEDG/GUID-B7BEA45C-A8C0-4591-B748-FC35C587DAE0.htm#BIEDG-GUID-B7BEA45C-A8C0-4591-B748-FC35C587DAE0) *Fusion Middleware Enterprise Deployment Guide untuk Oracle* Business Intelligence. | Arsitek Migrasi, Arsitek Oracle BI | 
| Instal Oracle HTTP Server 12c. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Arsitek Oracle BI | 
| Konfigurasikan penyeimbang beban untuk penghentian SSL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Infrastruktur Cloud, Arsitek Migrasi | 
| Migrasikan artefak metadata intelijen bisnis ke AWS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Arsitek Oracle BI | 
| Lakukan tugas pasca-migrasi. | Setelah mengimpor file BAR, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Arsitek Migrasi, Arsitek Oracle BI | 

### Uji lingkungan baru
<a name="test-the-new-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji lingkungan Oracle BI 12c yang baru. | Lakukan end-to-end pengujian pada lingkungan Oracle BI 12c yang baru. Gunakan otomatisasi sebanyak mungkin.Contoh kegiatan pengujian meliputi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html)Lakukan pengujian dan validasi tambahan sesuai kebutuhan. | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI | 

### Potong ke lingkungan baru
<a name="cut-over-to-the-new-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Putuskan sambungan lalu lintas ke lingkungan Oracle BI 12c lokal. | Pada jendela cutover yang ditunjuk, hentikan semua lalu lintas ke lingkungan Oracle BI 12c lokal. | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI | 
| Sinkronisasi ulang database repositori Oracle BI 12c baru dengan database sumber. | Sinkronisasi ulang database repositori Amazon RDS Oracle Oracle BI 12c dengan database lokal.Untuk menyinkronkan database, Anda dapat menggunakan [penyegaran Oracle Data Pump](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.DataPump.html) atau [AWS DMS change data capture](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/) (CDC). | Administrator Oracle BI, Insinyur Databasa/Administrator | 
| Alihkan Oracle BI 12c Anda URLs untuk menunjuk ke lingkungan AWS baru. | Perbarui Oracle BI 12c URLs di server DNS internal Anda sehingga mengarah ke instalasi AWS baru. | Arsitek Migrasi, Arsitek Solusi, Pemilik Aplikasi, Administrator Oracle BI | 
| Pantau lingkungan baru. | Pantau lingkungan Oracle BI 12c baru dengan menggunakan salah satu alat berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers.html) | Administrator Oracle BI, Insinyur Databasa/Administrator, Administrator Aplikasi | 
| Dapatkan sign-off pada proyek. | Tinjau hasil pengujian dengan pemangku kepentingan dan dapatkan persetujuan yang diperlukan untuk menyelesaikan migrasi. | Pemilik Aplikasi, Pemilik Layanan, Arsitek Infrastruktur Cloud, Arsitek Migrasi, Arsitek Oracle BI | 

## Sumber daya terkait
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-resources"></a>
+ [Menggunakan Utilitas Pembuatan Repositori Oracle di RDS untuk Oracle (](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Resources.RCU.html)*Panduan Pengguna Amazon RDS)*
+ [Oracle di Amazon RDS (Panduan](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Pengguna *Amazon RDS)*
+ [Oracle WebLogic Server 12c di AWS (whitepaper](https://d1.awsstatic.com/whitepapers/Oracle-WebLogic-12c-on-AWS.pdf) AWS)
+ [Menyebarkan Oracle Business Intelligence untuk ketersediaan tinggi](https://docs.oracle.com/middleware/1221/biee/BIESG/highavail.htm#BIESG1584) (Oracle Help Center)
+ [File Arsip Aplikasi Intelijen Bisnis Oracle (BAR)](https://docs.oracle.com/middleware/bi12214/biee/BIESG/GUID-7FCD90A3-E005-49BF-902F-30FBF9B41B07.htm#BIESG2889) (Pusat Bantuan Oracle)
+ [Cara memigrasikan OBI 12c antar lingkungan](https://support.oracle.com/knowledge/Enterprise%20Performance%20Management%20and%20Business%20Intelligence/2203360_1.html) (Oracle Support) 

## Informasi tambahan
<a name="migrate-oracle-business-intelligence-12c-to-the-aws-cloud-from-on-premises-servers-additional"></a>

Berikut ini adalah daftar praktik terbaik yang terkait dengan migrasi Oracle BI 12c ke AWS Cloud.

**Database repositori**

Ini adalah praktik terbaik untuk meng-host skema database Oracle BI 12c pada contoh Amazon RDS for Oracle. Jenis instans ini menyediakan kapasitas hemat biaya dan dapat diubah ukurannya saat mengotomatiskan tugas administrasi, seperti penyediaan perangkat keras, penyiapan basis data, penambalan, dan pencadangan.

Untuk informasi selengkapnya, lihat [Menggunakan Utilitas Pembuatan Repositori Oracle di RDS untuk Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Resources.RCU.html) di Panduan Pengguna *Amazon* RDS.

**Tingkatan web dan aplikasi**

[ EC2 Instans Amazon yang dioptimalkan untuk memori](https://aws.amazon.com/ec2/instance-types/) seringkali cocok untuk server Oracle BI 12c. Apa pun jenis instans yang Anda pilih, pastikan bahwa instance yang Anda berikan memenuhi persyaratan penggunaan memori sistem Anda. Selain itu, pastikan Anda [mengonfigurasi ukuran heap WebLogic Java Virtual Machine (JVM) yang memadai](https://docs.oracle.com/cd/E49933_01/server.770/es_install/src/tins_postinstall_jvm_heap.html#:~:text=The%20default%20JVM%20heap%20size%20for%20WebLogic%20is%203GB.,file%20for%20Linux%20or%20setDomainEnv.) berdasarkan memori EC2 instans Amazon yang tersedia.

**Penyimpanan lokal**

I/O memainkan peran penting dalam kinerja keseluruhan aplikasi Oracle BI 12c Anda. Amazon Elastic Block Store (Amazon EBS) menawarkan kelas penyimpanan berbeda yang dioptimalkan untuk pola beban kerja yang berbeda. Pastikan Anda memilih jenis volume Amazon EBS yang sesuai dengan kasus penggunaan Anda.

Untuk informasi selengkapnya tentang jenis volume EBS, lihat [fitur Amazon EBS](https://aws.amazon.com/ebs/features/) di dokumentasi Amazon EBS.

**Penyimpanan bersama**

Domain Oracle BI 12c yang dikelompokkan memerlukan penyimpanan bersama untuk sumber daya berikut:
+ File konfigurasi
+ Direktori data tunggal Oracle BI 12c (SDD)
+ Cache global Oracle
+ Skrip Penjadwal Oracle BI
+ Binari Oracle WebLogic Server

Anda dapat memenuhi persyaratan penyimpanan bersama ini dengan menggunakan [Amazon EFS](https://aws.amazon.com/efs/), yang menyediakan sistem file Network File System (NFS) elastis yang dapat diskalakan dan dikelola sepenuhnya.

*Fine tuning kinerja penyimpanan bersama*

**Amazon EFS memiliki dua [mode throughput](https://docs.aws.amazon.com/efs/latest/ug/performance.html#throughput-modes): **Provisioned** dan Bursting.** Layanan ini juga memiliki dua [mode kinerja](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes): **Tujuan Umum** dan **Max I/O**.

Untuk menyempurnakan kinerja, mulailah dengan menguji beban kerja Anda dalam mode kinerja **Tujuan Umum** dan mode **throughput yang disediakan**. Melakukan tes ini akan membantu Anda menentukan apakah mode dasar tersebut cukup untuk memenuhi tingkat layanan yang Anda inginkan.

Untuk informasi selengkapnya, lihat [kinerja Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/performance.html) di *Panduan Pengguna Amazon EFS*.

**Ketersediaan dan pemulihan bencana**

Merupakan praktik terbaik untuk menerapkan komponen Oracle BI 12c di beberapa Availability Zone untuk melindungi sumber daya tersebut jika terjadi kegagalan Availability Zone. Berikut ini adalah daftar praktik terbaik ketersediaan dan pemulihan bencana untuk sumber daya Oracle BI 12c tertentu yang dihosting di AWS Cloud:
+ Database **repositori Oracle BI 12c: Menerapkan instance database** Amazon RDS Multi-AZ ke database Oracle BI 12crepository Anda. Dalam penerapan Multi-AZ, Amazon RDS secara otomatis menyediakan dan memelihara replika siaga sinkron di AZ yang berbeda. Menjalankan instance database repositori Oracle BI 12c di seluruh Availability Zones dapat meningkatkan ketersediaan selama pemeliharaan sistem yang direncanakan dan membantu melindungi database Anda dari kegagalan instans dan Availability Zone.
+ **Server Terkelola Oracle BI 12c**: Untuk mencapai toleransi kesalahan, ini adalah praktik terbaik untuk menerapkan komponen sistem Oracle BI 12c pada Server Terkelola dalam Grup Auto Scaling EC2 Amazon yang dikonfigurasi untuk menjangkau beberapa Availability Zone. [Auto Scaling menggantikan instans yang salah berdasarkan pemeriksaan kesehatan Amazon. EC2 ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html) Jika terjadi kegagalan Availability Zone, Oracle HTTP Server terus mengarahkan lalu lintas ke Managed Server di Availability Zone yang berfungsi. Kemudian, Auto Scaling meluncurkan instance untuk mengikuti persyaratan jumlah host Anda. Mengaktifkan replikasi status sesi HTTP disarankan untuk membantu memastikan bahwa ada failover yang lancar dari sesi yang ada ke Server Terkelola yang berfungsi.
+ **Server Administrasi Oracle BI 12c:** Untuk memastikan bahwa Server Administrasi Anda memiliki ketersediaan tinggi, host dalam grup Auto EC2 Scaling Amazon yang dikonfigurasi untuk menjangkau beberapa Availability Zone. Kemudian, atur ukuran minimum dan maksimum grup yang disetel ke **1**. Jika terjadi kegagalan Availability Zone, EC2 Auto Scaling Amazon memulai Server Administrasi pengganti di Availability Zone alternatif. Untuk memulihkan host dasar yang gagal dalam Availability Zone yang sama, Anda dapat mengaktifkan [Amazon EC2 Auto Recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html).
+ **Server Oracle Web Tier:** Ini adalah praktik terbaik untuk mengaitkan Server HTTP Oracle Anda dengan domain Oracle WebLogic Server Anda. Untuk ketersediaan tinggi, terapkan Server HTTP Oracle Anda di grup Auto EC2 Scaling Amazon yang dikonfigurasi untuk aspen beberapa Availability Zoness. Kemudian, tempatkan server di belakang penyeimbang beban elastis ELB. Untuk memberikan perlindungan tambahan terhadap kegagalan host, Anda dapat mengaktifkan Amazon EC2 Auto Recovery.

**Skalabilitas**

Elastisitas AWS Cloud membantu Anda menskalakan aplikasi baik secara horizontal maupun vertikal sebagai respons terhadap persyaratan beban kerja.

*Penskalaan vertikal*

Untuk menskalakan aplikasi secara vertikal, Anda dapat mengubah ukuran dan jenis EC2 instans Amazon yang menjalankan komponen Oracle BI 12c Anda. Anda tidak perlu menyediakan instance secara berlebihan pada awal penerapan dan menimbulkan biaya yang tidak perlu. 

*Penskalaan horisontal*

 EC2 Auto Scaling Amazon membantu Anda menskalakan aplikasi secara horizontal dengan menambahkan atau menghapus Server Terkelola secara otomatis berdasarkan persyaratan beban kerja.

**catatan**  
Penskalaan horizontal dengan Amazon EC2 Auto Scaling memerlukan keterampilan scripting dan pengujian menyeluruh untuk diterapkan.

**Backup dan pemulihan**

Berikut ini adalah daftar praktik terbaik pencadangan dan pemulihan untuk sumber daya Oracle BI 12c tertentu yang dihosting di AWS Cloud:
+ **Repositori metadata Oracle Business Intelligence:** Amazon RDS secara otomatis membuat dan menyimpan cadangan instance database Anda. Cadangan ini disimpan untuk jangka waktu yang Anda tentukan. Pastikan Anda mengonfigurasi durasi pencadangan Amazon RDS dan pengaturan retensi berdasarkan persyaratan perlindungan data Anda. Untuk informasi selengkapnya, lihat [pencadangan dan pemulihan Amazon RDS](https://aws.amazon.com/rds/features/backup/).
+ **Server Terkelola, Server Administrasi, dan server Tingkat Web:** Pastikan Anda mengonfigurasi [snapshot Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html) berdasarkan persyaratan perlindungan dan retensi data Anda.
+ **Penyimpanan bersama:** Anda dapat mengelola pencadangan dan pemulihan untuk file yang disimpan di Amazon EFS dengan menggunakan [AWS Backup](https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html). Layanan AWS Backup juga dapat digunakan untuk mengelola pencadangan dan pemulihan layanan lain secara terpusat, termasuk Amazon, EC2 Amazon EBS, dan Amazon RDS. Untuk informasi selengkapnya, lihat [Apa itu AWS Backup?](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) Dalam *Panduan Pengembang AWS Backup*.

**Keamanan dan kepatuhan**

Berikut ini adalah daftar praktik terbaik keamanan dan layanan AWS yang dapat membantu Anda melindungi aplikasi Oracle BI 12c Anda di AWS Cloud:
+ **Enkripsi saat istirahat:** Amazon RDS, Amazon EFS, dan Amazon EBS semuanya mendukung algoritme enkripsi standar industri. Anda dapat menggunakan [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) untuk membuat dan mengelola kunci kriptografi serta mengontrol penggunaannya di seluruh layanan AWS dan dalam aplikasi Anda. Anda juga dapat mengonfigurasi [Oracle Transparent Data Encryption (TDE)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.AdvSecurity.html) pada instance database Amazon RDS for Oracle yang menghosting database repositori Oracle BI 12c Anda.
+ **Enkripsi dalam perjalanan:** Ini adalah praktik terbaik untuk mengaktifkan protokol SSL atau TLS untuk melindungi data dalam perjalanan antara berbagai lapisan instalasi Oracle BI 12c Anda. Anda dapat menggunakan [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) untuk menyediakan, mengelola, dan menyebarkan sertifikat SSL dan TLS publik dan pribadi untuk sumber daya Oracle BI 12c Anda.
+ **Keamanan jaringan**: Pastikan Anda menerapkan sumber daya Oracle BI 12c di VPC Amazon yang memiliki kontrol akses yang sesuai yang dikonfigurasi untuk kasus penggunaan Anda. Konfigurasikan grup keamanan Anda untuk memfilter lalu lintas masuk dan keluar dari EC2 instans Amazon yang menjalankan instalasi Anda. Selain itu, pastikan Anda mengonfigurasi [Network Access Control Lists (NACLs)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) yang mengizinkan atau menolak lalu lintas berdasarkan aturan yang ditetapkan.
+ **Pemantauan dan pencatatan**: Anda dapat menggunakan [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) untuk melacak panggilan API ke infrastruktur AWS Anda, termasuk sumber daya Oracle BI 12c Anda. Fungsionalitas ini berguna saat melacak perubahan infrastruktur atau saat melakukan analisis keamanan. Anda juga dapat menggunakan [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) untuk melihat data operasional yang dapat memberi Anda wawasan yang dapat ditindaklanjuti tentang kinerja dan kesehatan aplikasi Oracle BI 12c Anda. Anda juga dapat mengonfigurasi alarm dan mengambil tindakan otomatis berdasarkan alarm tersebut. Amazon RDS menyediakan alat pemantauan tambahan, termasuk [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) dan [Performance](https://aws.amazon.com/rds/performance-insights/) Insights.

# Migrasi Tumpukan ELK ke Elastic Cloud di AWS
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws"></a>

*Battulga Purevragchaa dan Antony Prasad Thevaraj, Amazon Web Services*

*uday reddy, Tidak ada*

## Ringkasan
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-summary"></a>

[Elastic](https://www.elastic.co/) telah menyediakan layanan selama bertahun-tahun, dengan pengguna dan pelanggan mereka biasanya mengelola Elastic sendiri di tempat. [Elastic Cloud](https://www.elastic.co/cloud)[, [layanan Elasticsearch](https://www.elastic.co/elasticsearch/service) yang dikelola, menyediakan cara untuk menggunakan Elastic Stack (ELK Stack) dan solusi untuk [pencarian perusahaan](https://www.elastic.co/enterprise-search), [observabilitas](https://www.elastic.co/observability), dan keamanan.](https://www.elastic.co/security) Anda dapat mengakses solusi Elastic dengan aplikasi seperti Log, Metrik, APM (pemantauan kinerja aplikasi), dan SIEM (informasi keamanan dan manajemen acara). Anda dapat menggunakan fitur terintegrasi seperti pembelajaran mesin, manajemen siklus hidup indeks, Kibana Lens (untuk visualisasi seret dan lepas).

Saat Anda beralih dari Elasticsearch yang dikelola sendiri ke Elastic Cloud, layanan Elasticsearch menangani hal-hal berikut:
+ Menyediakan dan mengelola infrastruktur yang mendasarinya
+ Membuat dan mengelola cluster Elasticsearch
+ Menskalakan cluster ke atas dan ke bawah
+ Upgrade, menambal, dan mengambil snapshot

Ini memberi Anda lebih banyak waktu untuk fokus pada pemecahan tantangan lain.

Pola ini menentukan cara memigrasikan Elasticsearch 7.13 lokal ke Elasticsearch di Elasticsearch di Elastic Cloud di Amazon Web Services (AWS). Versi lain mungkin memerlukan sedikit modifikasi pada proses yang dijelaskan dalam pola ini. Untuk informasi lebih lanjut, hubungi perwakilan Elastis Anda.

## Prasyarat dan batasan
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-prereqs"></a>

**Prasyarat**
+ [Akun AWS](https://aws.amazon.com/account/) aktif dengan akses ke [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3) untuk snapshot
+ [Tautan pribadi](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html) dengan bandwidth yang aman dan cukup tinggi untuk menyalin file data snapshot ke Amazon S3
+ [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/)
+ [Kebijakan Snapshot Elastis](https://www.elastic.co/guide/en/elasticsearch/reference/7.10/getting-started-snapshot-lifecycle-management.html) untuk memastikan bahwa konsumsi data diarsipkan secara teratur, baik ke penyimpanan data lokal yang cukup besar atau ke penyimpanan jarak jauh (Amazon S3)

Anda harus memahami seberapa besar snapshot dan [kebijakan lifecyle](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html) untuk indeks yang menyertainya berada di lokasi sebelum memulai migrasi. Untuk informasi lebih lanjut, [hubungi Elastic](https://www.elastic.co/contact).

**Peran dan keterampilan**

Proses migrasi juga membutuhkan peran dan keahlian yang dijelaskan dalam tabel berikut.


| 
| 
| Peran | Keahlian | Tanggung Jawab | 
| --- |--- |--- |
| Dukungan aplikasi | Keakraban dengan Awan Elastis dan Elastis di tempat | Semua tugas terkait Elastis | 
| Administrator sistem atau DBA | Pengetahuan mendalam tentang lingkungan Elastis lokal dan konfigurasinya | Kemampuan untuk menyediakan penyimpanan, menginstal, dan menggunakan AWS Command Line Interface (AWS CLI) Interface (AWS CLI), dan mengidentifikasi semua sumber data yang memberi makan Elastic di lokasi | 
| Administrator jaringan | Pengetahuan tentang konektivitas, keamanan, dan kinerja jaringan AWS lokal ke AWS | Pembentukan tautan jaringan dari tempat ke Amazon S3, dengan pemahaman tentang bandwidth konektivitas | 

**Batasan**
+ Elasticsearch di Elastic Cloud hanya tersedia di [Wilayah AWS yang didukung (September 2021](https://www.elastic.co/guide/en/cloud/current/ec-regions-templates-instances.html#ec-aws_regions)).

**Versi produk**
+ Elasticsearch 7.13

## Arsitektur
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-architecture"></a>

**Tumpukan teknologi sumber**

Elasticsearch 7.13 di tempat atau versi lebih baru:
+ Snapshot klaster
+ Cuplikan indeks
+ [Konfigurasi Beats](https://www.elastic.co/beats/)

**Arsitektur teknologi sumber**

Diagram berikut menunjukkan arsitektur lokal yang khas dengan metode konsumsi yang berbeda, tipe node, dan Kibana. Tipe node yang berbeda mencerminkan peran cluster, otentikasi, dan visualisasi Elasticsearch.

![\[Proses delapan langkah termasuk Beats, Logstash, Elasticsearch, dan Kibana.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/23d1b437-22ff-420e-80ac-834f1116d234/images/937c4d22-429f-4673-86df-ae491d68389c.png)


1. Tertelan dari Beats ke Logstash

1. Tertelan dari Beats ke antrian pesan Apache Kafka

1. Tertelan dari Filebeat ke Logstash

1. Tertelan dari antrian pesan Apache Kafka ke Logstash

1. Tertelan dari Logstash ke cluster Elasticsearch

1. Kluster Elasticsearch

1. Node otentikasi dan notifikasi

1. Kibana dan node gumpalan

**Tumpukan teknologi target**

Elastic Cloud diterapkan ke perangkat lunak Anda sebagai akun layanan (SaaS) di beberapa Wilayah AWS dengan replikasi lintas cluster.
+ Snapshot klaster
+ Cuplikan indeks
+ Konfigurasi Beats
+ Awan Elastis
+ Penyeimbang Beban Jaringan
+ Amazon Route 53
+ Amazon S3

**Arsitektur target**

![\[Route 53 endpoint merutekan lalu lintas ke lingkungan Multi-AZ di dua Wilayah berbeda.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/23d1b437-22ff-420e-80ac-834f1116d234/images/16cbac49-0adb-4469-b546-ae4b1ca35357.png)


 

Infrastruktur Elastic Cloud yang dikelola adalah:
+ Sangat tersedia, hadir di beberapa [Availability Zone](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) dan beberapa Wilayah AWS.
+ Toleran kegagalan wilayah karena data (indeks dan snapshot) direplikasi menggunakan replikasi [lintas](https://www.elastic.co/guide/en/elasticsearch/reference/7.14/xpack-ccr.html) cluster (CCR) Elastic Cloud
+ [Arsip, karena snapshot diarsipkan di Amazon S3](https://aws.amazon.com/s3/?p=pm&c=s3&z=4)
+ [Partisi jaringan toleran melalui kombinasi [Network Load Balancers](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/) dan Route 53](https://aws.amazon.com/route53/)
+ [https://www.elastic.co/beats/](https://www.elastic.co/beats/)

**Langkah migrasi tingkat tinggi**

Elastic telah mengembangkan metodologi preskriptifnya sendiri untuk memigrasikan Elastic Cluster lokal ke Elastic Cloud. Metodologi Elastic secara langsung selaras dan melengkapi panduan migrasi AWS dan praktik terbaik, termasuk Well-Architected Framework dan [AWS Migration Acceleration](https://aws.amazon.com/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc) [Program](https://aws.amazon.com/migration-acceleration-program/) (MAP). Biasanya, tiga fase migrasi AWS adalah sebagai berikut:
+ Menilai
+ Memobilisasi
+ Migrasi dan modernisasi

Elastis mengikuti fase migrasi serupa dengan terminologi komplementer:
+ Memulai
+ Rencana
+ Implementasikan
+ Mengirimkan
+ Tutup

Elastic menggunakan Metodologi Implementasi Elastis untuk memfasilitasi penyampaian hasil proyek. Ini inklusif dengan desain untuk memastikan bahwa Elastic, tim konsultasi, dan tim pelanggan bekerja sama dengan jelas untuk bersama-sama memberikan hasil yang diinginkan.

Metodologi Elastis menggabungkan pentahapan air terjun tradisional dengan Scrum dalam fase implementasi. Konfigurasi persyaratan teknis disampaikan secara berulang secara kolaboratif sambil meminimalkan risiko.

![\[Diagram yang menunjukkan lima tahap Metodologi Implementasi Elastis.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/23d1b437-22ff-420e-80ac-834f1116d234/images/b041c61d-980e-49a0-a721-791c20edde64.png)


 

## Alat
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-tools"></a>

**Layanan AWS**
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) - Amazon Route 53 adalah layanan web Sistem Nama Domain (DNS) yang sangat tersedia dan dapat diskalakan. Anda dapat menggunakan Route 53 untuk melakukan tiga fungsi utama dalam kombinasi apapun: pendaftaran domain, perutean DNS, dan pemeriksaan kondisi.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service adalah layanan penyimpanan objek. Anda dapat menggunakan Amazon S3 untuk menyimpan dan mengambil data sebanyak apa pun kapan pun, dari mana pun di web. Pola ini menggunakan bucket S3 dan [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration-examples.html) Transfer Acceleration.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) — Elastic Load Balancing secara otomatis mendistribusikan lalu lintas masuk Anda ke beberapa target, EC2 seperti instance, kontainer, dan alamat IP, dalam satu atau beberapa Availability Zone.

**Alat-alat lainnya**
+ [Beats - Beats](https://www.elastic.co/beats/) mengirimkan data dari Logstash atau Elasticsearch
+ [Elastic Cloud](https://www.elastic.co/cloud/) - Elastic Cloud adalah layanan terkelola untuk hosting Elasticsearch.
+ [Elasticsearch](https://www.elastic.co/elasticsearch/) — Elasticsearch adalah mesin pencari dan analitik yang menggunakan Elastic Stack untuk menyimpan data Anda secara terpusat untuk penelusuran dan analitik yang berskala. Pola ini juga menggunakan pembuatan snapshot dan replikasi lintas cluster.
+ [Logstash](https://www.elastic.co/logstash/) - Logstash adalah pipeline pemrosesan data sisi server yang menyerap data dari berbagai sumber, mengubahnya, dan kemudian mengirimkannya ke penyimpanan data Anda.

## Epik
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-epics"></a>

### Siapkan migrasi
<a name="prepare-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi server yang menjalankan solusi Elastic lokal. | Konfirmasikan bahwa migrasi elastis didukung. | Pemilik aplikasi | 
| Memahami konfigurasi server lokal. | Untuk memahami konfigurasi server yang diperlukan untuk mengarahkan beban kerja dengan sukses di lokasi, temukan jejak perangkat keras server, konfigurasi jaringan, dan karakteristik penyimpanan yang saat ini digunakan | Support Aplikasi | 
| Kumpulkan informasi akun pengguna dan aplikasi. | Identifikasi nama pengguna dan nama aplikasi yang digunakan oleh lingkungan Elastic lokal. | Administrator sistem, Dukungan aplikasi | 
| Document Beats dan konfigurasi pengirim data. | Untuk mendokumentasikan konfigurasi, lihat sumber dan sink data yang ada. Untuk informasi selengkapnya, lihat [dokumentasi Elastis](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest.html). | Dukungan aplikasi | 
| Tentukan kecepatan dan volume data. | Tetapkan garis dasar untuk berapa banyak data yang ditangani cluster. | Administrator sistem, Dukungan aplikasi | 
| Dokumen skenario RPO dan RTO. | Skenario tujuan titik pemulihan dokumen (RPO) dan tujuan waktu pemulihan (RTO) dalam hal pemadaman dan perjanjian tingkat layanan (). SLAs | Pemilik aplikasi, Administrator sistem, Dukungan aplikasi | 
| Tentukan pengaturan siklus hidup snapshot yang optimal. | Tentukan seberapa sering data perlu diamankan dengan menggunakan snapshot Elastis *selama dan setelah migrasi*. | Pemilik aplikasi, Administrator sistem, Dukungan aplikasi | 
| Tentukan ekspektasi kinerja pasca-migrasi. | Hasilkan metrik pada penyegaran layar saat ini dan yang diharapkan, runtime kueri, dan perilaku antarmuka pengguna. | Administrator sistem, Dukungan aplikasi | 
| Dokumentasikan transportasi akses internet, bandwidth, dan persyaratan ketersediaan. | Pastikan kecepatan, latensi, dan ketahanan koneksi internet untuk menyalin snapshot ke Amazon S3. | Administrator jaringan | 
| Dokumentasikan biaya runtime lokal saat ini untuk Elastic. | Pastikan bahwa ukuran lingkungan yang ditargetkan AWS dirancang agar berkinerja tinggi dan hemat biaya. | DBA, Administrator sistem, Dukungan aplikasi | 
| Identifikasi kebutuhan otentikasi dan otorisasi. | Fitur keamanan Elastic Stack menyediakan ranah bawaan seperti Lightweight Directory Access Protocol (LDAP), Security Assertion Markup Language (SAMP), dan OpenID Connect (OIDC). | DBA, Administrator sistem, Dukungan aplikasi | 
| Memahami persyaratan peraturan khusus berdasarkan lokasi geografis. | Pastikan bahwa data diekspor dan dienkripsi sesuai dengan kebutuhan Anda dan dengan persyaratan nasional yang relevan. | DBA, Administrator sistem, Dukungan aplikasi | 

### Menerapkan migrasi
<a name="implement-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan area pementasan di Amazon S3.  | Untuk menerima snapshot di Amazon S3[, buat](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) bucket S3 dan peran AWS Identity and Access Management (IAM) sementara dengan akses penuh ke bucket yang baru dibuat. Untuk informasi selengkapnya, lihat [Membuat peran untuk mendelegasikan izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html). Gunakan AWS Security Token Service untuk [meminta kredensil keamanan sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html). Simpan ID kunci akses, kunci akses rahasia, dan token sesi diamankan.Aktifkan [Amazon S3 Transfer](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration-examples.html) Acceleration di bucket. | Administrator AWS | 
| Instal AWS CLI dan plugin Amazon S3 di tempat. | Pada setiap node Elasticsearch, jalankan perintah berikut.<pre>sudo bin/elasticsearch-plugin install repository-s3</pre>Kemudian reboot node. | Administrator AWS | 
| Konfigurasikan akses klien Amazon S3. | Tambahkan kunci yang dibuat sebelumnya dengan menjalankan perintah berikut.<pre>elasticsearch-keystore add s3.client.default.access_key</pre><pre>elasticsearch-keystore add s3.client.default.secret_key</pre><pre>elasticsearch-keystore add s3.client.default.session_token</pre> | Administrator AWS | 
| Daftarkan repositori snapshot untuk data Elastis | Gunakan [Kibana Dev Tools](https://www.elastic.co/guide/en/kibana/current/console-kibana.html) untuk memberi tahu kluster lokal lokal tempat bucket S3 jarak jauh mana yang akan ditulis. | Administrator AWS | 
| Konfigurasikan kebijakan snapshot. | Untuk mengonfigurasi manajemen siklus hidup snapshot, pada tab **Kebijakan Kibana, pilih kebijakan** **SLM**, dan tentukan waktu, aliran data, atau indeks mana yang harus disertakan, dan nama apa yang akan digunakan.Konfigurasikan kebijakan yang sering mengambil snapshot. Snapshot bersifat inkremental dan memanfaatkan penyimpanan secara efisien. Cocokkan keputusan penilaian kesiapan Anda. Kebijakan juga dapat menentukan [kebijakan penyimpanan](https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-retention.html) dan menghapus snapshot secara otomatis saat tidak diperlukan lagi. | Dukungan aplikasi | 
| Verifikasi bahwa snapshot berfungsi. | Di Kibana Dev Tools, jalankan perintah berikut.<pre>GET _snapshot/<your_repo_name>/_all</pre> | Administrator AWS, Dukungan aplikasi,  | 
| Terapkan cluster baru di Elastic Cloud.  | [Masuk ke Elastic](https://cloud.elastic.co/login?redirectTo=%2Fhome), dan pilih klaster untuk “observabilitas, pencarian, atau keamanan” yang berasal dari temuan bisnis Anda dalam penilaian kesiapan. | Administrator AWS, Dukungan aplikasi | 
| Siapkan akses penyimpanan kunci cluster. | Cluster baru membutuhkan akses ke bucket S3 yang akan menyimpan snapshot. Pada Konsol Layanan Elasticsearch, pilih **Keamanan**, dan masukkan akses dan kunci rahasia IAM yang Anda buat sebelumnya. | Administrator AWS | 
| Konfigurasikan cluster yang dihosting Elastic Cloud untuk mengakses Amazon S3. | Siapkan akses cluster baru ke repositori snapshot yang dibuat sebelumnya di Amazon S3. Menggunakan Kibana, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/migrate-an-elk-stack-to-elastic-cloud-on-aws.html) | Administrator AWS, Dukungan Aplikasi | 
| Verifikasi repositori Amazon S3 baru. | Pastikan Anda dapat mengakses repositori baru yang dihosting di cluster Elastic Cloud. | Administrator AWS | 
| Initilaize cluster layanan Elasticsearch. | Di Konsol Layanan Elasticsearch, inisialisasi kluster layanan Elasticsearch dari snapshot S3.Jalankan perintah berikut sebagai POST.<pre>*/_close?expand_wildcards=all</pre><pre>/_snapshot/<your-repo-name>/  <your-snapshot-name>/_restore</pre><pre>*/_open?expand_wildcards=all</pre> | Support Aplikasi | 

### Selesaikan migrasi
<a name="complete-the-migration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi bahwa pemulihan snapshot berhasil. | Menggunakan Kibana Dev Tools, jalankan perintah berikut.<pre>GET _cat/indices</pre> | Dukungan aplikasi | 
| Layanan konsumsi Redploy. | Connect endpoint untuk Beats dan Logstash ke endpoint layanan Elasticsearch yang baru. | Dukungan aplikasi | 

### Uji lingkungan cluster dan bersihkan
<a name="test-the-cluster-environment-and-clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi lingkungan cluster. | Setelah lingkungan cluster Elastic lokal dimigrasikan ke AWS, Anda dapat menyambungkannya dan menggunakan alat pengujian penerimaan pengguna (UAT) Anda sendiri untuk memvalidasi lingkungan baru. | Dukungan aplikasi | 
| Bersihkan sumber daya. | Setelah Anda memvalidasi bahwa cluster berhasil bermigrasi, hapus bucket S3 dan peran IAM yang digunakan untuk migrasi. | Administrator AWS | 

## Sumber daya terkait
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-resources"></a>

**Referensi elastis**
+ [Awan Elastis](https://www.elastic.co/cloud/)
+ [Elasticsearch dan Kibana Terkelola di AWS](https://www.elastic.co/elasticsearch/service)
+ [Pencarian perusahaan elastis](https://www.elastic.co/enterprise-search)
+ [Integrasi elastis](https://www.elastic.co/integrations?search=amazon)
+ [Observabilitas elastis](https://www.elastic.co/observability)
+ [Keamanan elastis](https://www.elastic.co/security)
+ [Ketukan](https://www.elastic.co/beats/)
+ [APM elastis](https://www.elastic.co/apm/)
+ [Migrasi ke manajemen siklus hidup indeks](https://www.elastic.co/guide/en/cloud-enterprise/current/ece-migrate-index-management.html)
+ [Langganan elastis](https://www.elastic.co/subscriptions)
+ [Kontak Elastis](https://www.elastic.co/contact)

*Posting blog elastis*
+ [Cara bermigrasi dari Elasticsearch yang dikelola sendiri ke Elastic Cloud di AWS](https://www.elastic.co/blog/how-to-migrate-from-self-managed-elasticsearch-to-elastic-cloud-on-aws) (posting blog)
+ [Bermigrasi ke Elastic Cloud](https://www.elastic.co/blog/migrating-to-elastic-cloud) (posting blog)

*Dokumentasi elastis*
+ [Tutorial: Otomatiskan cadangan dengan SLM](https://www.elastic.co/guide/en/elasticsearch/reference/7.10/getting-started-snapshot-lifecycle-management.html)
+ [ILM: Kelola siklus hidup indeks](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html)
+ [Logstash](https://www.elastic.co/guide/en/logstash/current/index.html)
+ [Replikasi lintas cluster (CCR)](https://www.elastic.co/guide/en/elasticsearch/reference/7.14/xpack-ccr.html)
+ [Saluran pipa menelan](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest.html)
+ [Jalankan permintaan API Elasticsearch](https://www.elastic.co/guide/en/kibana/current/console-kibana.html)
+ [Retensi snapshot](https://www.elastic.co/guide/en/elasticsearch/reference/current/slm-retention.html)

*Video elastis dan webinar*
+ [Migrasi awan elastis](https://www.youtube.com/watch?v=WbPJi-APZ_Q)
+ [Elastic Cloud: Mengapa pelanggan bermigrasi](https://www.elastic.co/webinars/elastic-cloud-why-customers-are-migrating-now) (webinar)

**Referensi AWS**
+ [Awan Elastis di AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=d8f59038-c24c-4a9d-a66d-6711d35d7305)
+ [Antarmuka Baris Perintah AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/setup-aws-cli.html)
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/)
+ [AWS Migration Acceleration Program](https://aws.amazon.com/migration-acceleration-program/)
+ [Penyeimbang Beban Jaringan](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/)
+ [Wilayah dan Zona Ketersediaan](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)
+ [Amazon Route 53](https://aws.amazon.com/route53/)
+ [Layanan Penyimpanan Sederhana Amazon](https://aws.amazon.com/s3/)
+ [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/)
+ [Koneksi VPN](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)
+ [Kerangka Well-Architected](https://aws.amazon.com/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc)

## Informasi tambahan
<a name="migrate-an-elk-stack-to-elastic-cloud-on-aws-additional"></a>

Jika Anda berencana untuk memigrasikan beban kerja yang kompleks, gunakan Layanan [Konsultasi Elastis](https://www.elastic.co/consulting/engage). Jika Anda memiliki pertanyaan dasar terkait konfigurasi dan layanan, hubungi tim [Elastic Support](mailto:support@elastic.co).

# Migrasi data ke AWS Cloud dengan menggunakan Starburst
<a name="migrate-data-to-the-aws-cloud-by-using-starburst"></a>

*Antony Prasad Thevaraj dan Suresh Veeragoni, Amazon Web Services*

*Shaun Van Staden, Tidak Ada*

## Ringkasan
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-summary"></a>

Starburst membantu mempercepat perjalanan migrasi data Anda ke Amazon Web Services (AWS) dengan menyediakan mesin kueri perusahaan yang menyatukan sumber data yang ada dalam satu titik akses. Anda dapat menjalankan analitik di berbagai sumber data untuk mendapatkan wawasan berharga, sebelum menyelesaikan rencana migrasi apa pun. Tanpa mengganggu business-as-usual analitik, Anda dapat memigrasikan data dengan menggunakan mesin Starburst atau aplikasi ekstrak, transformasi, dan muat (ETL) khusus.

## Prasyarat dan batasan
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Awan pribadi virtual (VPC)
+ Cluster Amazon Elastic Kubernetes Service (Amazon EKS)
+ Grup Auto Scaling Amazon Elastic Compute Cloud (Amazon EC2)
+ Daftar beban kerja sistem saat ini yang perlu dimigrasikan
+ Konektivitas jaringan dari AWS ke lingkungan lokal

## Arsitektur
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-architecture"></a>

**Arsitektur referensi**

Diagram arsitektur tingkat tinggi berikut menunjukkan penerapan khas Starburst Enterprise di: AWS Cloud

1. Kluster Starburst Enterprise berjalan di dalam kluster Anda Akun AWS.

1. Pengguna mengautentikasi dengan menggunakan Lightweight Directory Access Protocol (LDAP) atau Open Authorization (OAuth) dan berinteraksi langsung dengan cluster Starburst.

1. Starburst dapat terhubung ke beberapa sumber AWS data, seperti AWS Glue, Amazon Simple Storage Service (Amazon S3), Amazon Relational Database Service (Amazon RDS), dan Amazon Redshift. Starburst menyediakan kemampuan kueri gabungan di seluruh sumber data di AWS Cloud, di tempat, atau di lingkungan cloud lainnya.

1. Anda meluncurkan Starburst Enterprise di klaster Amazon EKS dengan menggunakan bagan Helm.

1. Starburst Enterprise menggunakan grup Amazon EC2 Auto Scaling dan Instans Spot EC2 Amazon untuk mengoptimalkan infrastruktur.

1. Starburst Enterprise terhubung langsung ke sumber data lokal yang ada untuk membaca data secara real-time. Selain itu, jika Anda memiliki penyebaran Starburst Enterprise yang ada di lingkungan ini, Anda dapat langsung menghubungkan cluster Starburst baru Anda AWS Cloud ke cluster yang ada ini.

![\[Diagram arsitektur tingkat tinggi penerapan Starburst Enterprise di AWS Cloud\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/12ae0463-9029-4a32-9d7b-70cdb5406fb0/images/e9975d3a-f75b-41a2-8c08-5b82539adf8c.png)


Harap perhatikan hal berikut:
+ Starburst bukan platform virtualisasi data. Ini adalah mesin query massively parallel processing (MPP) berbasis SQL yang membentuk dasar strategi data mesh keseluruhan untuk analitik.
+ Ketika Starburst digunakan sebagai bagian dari migrasi, Starburst memiliki konektivitas langsung ke infrastruktur lokal yang ada.
+ Starburst menyediakan beberapa built-in enterprise dan open-source konektor yang memfasilitasi konektivitas ke berbagai sistem warisan. Untuk daftar lengkap konektor dan kemampuannya, lihat [Konektor](https://docs.starburst.io/latest/connector.html) di *panduan pengguna Starburst Enterprise*.
+ Starburst dapat melakukan kueri data secara real-time dari sumber data lokal. Ini mencegah gangguan operasi bisnis reguler saat data sedang dimigrasikan.
+ Jika Anda bermigrasi dari penerapan Starburst Enterprise lokal yang ada, Anda dapat menggunakan konektor khusus, Starburst *Stargate, untuk menghubungkan kluster Starburst* Enterprise langsung ke kluster lokal. AWS Ini memberikan manfaat kinerja tambahan saat pengguna bisnis dan analis data menggabungkan kueri dari lingkungan lokal AWS Cloud ke lingkungan lokal Anda.

**Ikhtisar proses tingkat tinggi**

Anda dapat mempercepat proyek migrasi data dengan menggunakan Starburst karena Starburst mengaktifkan wawasan di semua data Anda, sebelum memigrasikannya. Gambar berikut menunjukkan proses khas untuk memigrasi data dengan menggunakan Starburst.

![\[Alur proses untuk memigrasikan data ke AWS Cloud dengan menggunakan Starburst\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/12ae0463-9029-4a32-9d7b-70cdb5406fb0/images/e79b0084-7275-4824-8854-646236ec23dc.png)


**Peran**

Peran berikut biasanya diperlukan untuk menyelesaikan migrasi menggunakan Starburst:
+ **Administrator cloud** — Bertanggung jawab untuk membuat sumber daya cloud tersedia untuk menjalankan aplikasi Starburst Enterprise
+ **Administrator Starburst** — Bertanggung jawab untuk menginstal, mengonfigurasi, mengelola, dan mendukung aplikasi Starburst
+ **Insinyur data** — Bertanggung jawab untuk:
  + Migrasi data lama ke cloud
  + Membangun pandangan semantik untuk mendukung analitik
+ **Pemilik solusi atau sistem** — Bertanggung jawab atas implementasi solusi secara keseluruhan

## Alat
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-tools"></a>

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) EKS) membantu Anda menjalankan AWS Kubernetes tanpa perlu menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.

**Alat-alat lainnya**
+ [Helm](https://helm.sh/docs/) - Helm adalah manajer paket untuk Kubernetes yang membantu Anda menginstal dan mengelola aplikasi di klaster Kubernetes Anda.
+ [Starburst Enterprise](https://docs.starburst.io/latest/index.html) adalah mesin query massively parallel processing (MPP) berbasis SQL yang membentuk dasar strategi data mesh secara keseluruhan untuk analitik.
+ [Starburst Stargate](https://docs.starburst.io/latest/connector/starburst-stargate.html) — Starburst Stargate menautkan katalog dan sumber data dalam satu lingkungan Starburst Enterprise, seperti cluster di pusat data lokal, ke katalog dan sumber data di lingkungan Starburst Enterprise lainnya, seperti cluster di. AWS Cloud

## Epik
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-epics"></a>

### Menilai datanya
<a name="assess-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Identifikasi dan prioritaskan data Anda. | Identifikasi data yang ingin Anda pindahkan. Sistem lama lokal yang besar dapat menyertakan data inti yang ingin Anda migrasi bersama data yang tidak ingin Anda pindahkan atau tidak dapat dipindahkan karena alasan kepatuhan. Dimulai dengan inventaris data membantu Anda memprioritaskan data mana yang harus Anda targetkan terlebih dahulu. Untuk informasi selengkapnya, lihat [Memulai penemuan portofolio otomatis](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html). | Insinyur data, DBA | 
| Jelajahi, inventarisasi, dan buat cadangan data Anda. | Validasi kualitas, kuantitas, dan relevansi data untuk kasus penggunaan Anda. Cadangkan atau buat snapshot data sesuai kebutuhan, dan selesaikan lingkungan target untuk data. | Insinyur data, DBA | 

### Siapkan lingkungan Starburst Enterprise
<a name="set-up-the-starburst-enterprise-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan Starburst Enterprise di file. AWS Cloud | Saat data sedang dikatalogkan, siapkan Starburst Enterprise di cluster Amazon EKS yang dikelola. Untuk informasi selengkapnya lihat, [Menerapkan dengan Kubernetes](https://docs.starburst.io/latest/k8s.html) di dokumentasi referensi *Starburst* Enterprise. Ini memungkinkan business-as-usual analitik saat migrasi data sedang dalam proses. | Administrator AWS, Pengembang aplikasi | 
| Connect Starburst ke sumber data. | Setelah Anda mengidentifikasi data dan mengatur Starburst Enterprise, sambungkan Starburst ke sumber data. Starburst membaca data langsung dari sumber data sebagai query SQL. Untuk informasi selengkapnya, lihat [dokumentasi referensi Starburst Enterprise](https://docs.starburst.io/latest/overview.html). | Administrator AWS, Pengembang aplikasi | 

### Migrasikan data
<a name="migrate-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Membangun dan menjalankan pipeline ETL. | Mulailah proses migrasi data. Aktivitas ini dapat terjadi bersamaan dengan business-as-usual analitik. Untuk migrasi, Anda dapat menggunakan produk pihak ketiga atau Starburst. Starburst memiliki kemampuan untuk membaca dan menulis data di berbagai sumber. Untuk informasi selengkapnya, lihat [dokumentasi referensi Starburst Enterprise](https://docs.starburst.io/latest/overview.html). | Insinyur data | 
| Validasi data. | Setelah data dimigrasi, validasi data untuk memastikan semua data yang diperlukan telah dipindahkan dan utuh. | Insinyur data, DevOps insinyur | 

### Potong
<a name="cut-over"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Potong data. | Setelah migrasi dan validasi data selesai, Anda dapat memotong data. Ini melibatkan mengubah tautan koneksi data di Starburst. Alih-alih menunjuk ke sumber lokal, Anda mengarahkan ke sumber cloud baru dan memperbarui tampilan semantik. Untuk informasi selengkapnya, lihat [Konektor](https://docs.starburst.io/latest/connector.html) dalam *dokumentasi referensi Starburst Enterprise*. | Insinyur data, Cutover lead | 
| Luncurkan ke pengguna. | Konsumen data mulai bekerja dari sumber data yang dimigrasi. Proses ini tidak terlihat oleh pengguna akhir analitik. | Cutover lead, Insinyur data | 

## Sumber daya terkait
<a name="migrate-data-to-the-aws-cloud-by-using-starburst-resources"></a>

**AWS Marketplace**
+ [Galaksi Starburst](https://aws.amazon.com/marketplace/pp/prodview-yugyv4gbgn5ss?ref_=srh_res_product_title)
+ [Perusahaan Starburst](https://aws.amazon.com/marketplace/pp/prodview-pwnl3c6p2jycg?ref_=srh_res_product_title)
+ [Data Starburst JumpStart](https://aws.amazon.com/marketplace/pp/prodview-ou6drb23gch2u?ref_=srh_res_product_title)
+ [Starburst Enterprise dengan Graviton](https://aws.amazon.com/marketplace/pp/prodview-2bpppdqlesn6w?ref_=srh_res_product_title)

**Dokumentasi Starburst**
+ [Panduan pengguna Starburst Enterprise](https://docs.starburst.io/index.html)
+ [Dokumentasi referensi Starburst Enterprise](https://docs.starburst.io/latest/index.html)

** AWS Dokumentasi lainnya**
+ [Memulai dengan penemuan portofolio otomatis](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html) (Panduan AWS Preskriptif)
+ [Mengoptimalkan Biaya dan Kinerja Infrastruktur Cloud dengan Starburst di AWS](https://aws.amazon.com/blogs/architecture/optimizing-cloud-infrastructure-cost-and-performance-with-starburst-on-aws/) (AWS posting blog)

# Optimalkan konsumsi ETL ukuran file input di AWS
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws"></a>

*Apoorva Patrikar, Amazon Web Services*

## Ringkasan
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-summary"></a>

Pola ini menunjukkan kepada Anda cara mengoptimalkan langkah konsumsi proses ekstrak, transformasi, dan pemuatan (ETL) untuk big data dan beban kerja Apache Spark di AWS Glue dengan mengoptimalkan ukuran file sebelum memproses data Anda. Gunakan pola ini untuk mencegah atau menyelesaikan *masalah file kecil*. Artinya, ketika sejumlah besar file kecil memperlambat pemrosesan data karena ukuran agregat file. Misalnya, ratusan file yang masing-masing hanya beberapa ratus kilobyte dapat secara signifikan memperlambat kecepatan pemrosesan data untuk pekerjaan AWS Glue Anda. Ini karena AWS Glue harus menjalankan fungsi daftar internal di Amazon Simple Storage Service (Amazon S3) dan YARN (Yet Another Resource Negotiator) harus menyimpan sejumlah besar metadata. Untuk meningkatkan kecepatan pemrosesan data, Anda dapat menggunakan pengelompokan untuk mengaktifkan tugas ETL Anda membaca sekelompok file input ke dalam satu partisi dalam memori. Partisi secara otomatis mengelompokkan file yang lebih kecil bersama-sama. Atau, Anda dapat menggunakan kode kustom untuk menambahkan logika batch ke file yang ada.

## Prasyarat dan batasan
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Satu atau lebih [pekerjaan](https://docs.aws.amazon.com/glue/latest/dg/author-job.html) lem AWS
+ Satu atau lebih big data atau beban kerja [Apache Spark](https://spark.apache.org/)
+ [Ember S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html)

## Arsitektur
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-architecture"></a>

Pola berikut menunjukkan bagaimana data dalam format yang berbeda diproses oleh pekerjaan AWS Glue dan kemudian disimpan dalam bucket S3 untuk mendapatkan visibilitas ke kinerja.

![\[Data dalam format yang berbeda diproses oleh pekerjaan AWS Glue dan kemudian disimpan dalam bucket S3.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/88ee332f-2f12-4d88-b491-e78bbb173850/images/9a97b54a-3f67-4a48-94d2-5807373ace25.png)


Diagram menunjukkan alur kerja berikut:

1. 
**catatan**  
Pekerjaan AWS Glue mengonversi file kecil dalam format CSV, JSON, dan Parquet menjadi frame dinamis. : Ukuran file input memiliki dampak paling signifikan pada kinerja pekerjaan AWS Glue.

1. Pekerjaan AWS Glue menjalankan fungsi daftar internal dalam bucket S3.

## Alat
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-tools"></a>
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) adalah layanan ETL yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

## Epik
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-epics"></a>

### Gunakan pengelompokan untuk mengoptimalkan konsumsi ETL selama membaca
<a name="use-grouping-to-optimize-etl-ingestion-during-reading"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tentukan ukuran grup. | Jika Anda memiliki lebih dari 50.000 file, pengelompokan dilakukan secara default. Namun, Anda juga dapat menggunakan pengelompokan untuk kurang dari 50.000 file dengan menentukan ukuran grup dalam parameter. `connectionOptions` `connectionOptions`Parameternya ada dalam `create_dynamic_frame.from_options` metode. | Insinyur data | 
| Tulis kode pengelompokan. | Gunakan `create_dynamic_frame` metode ini untuk membuat bingkai dinamis. Contoh:<pre>S3bucket_node1 = glueContext.create_dynamic_frame.from_options(<br />    format_options={"multiline": False},<br />    connection_type="s3",<br />    format="json",<br />    connection_options={<br />        "paths": ["s3://bucket/prefix/file.json"],<br />        "recurse": True,<br />        "groupFiles": 'inPartition', <br />        "groupSize": 1048576<br />    },<br />    transformation_ctx="S3bucket_node1",<br />)</pre>Gunakan `groupFiles` untuk mengelompokkan file dalam grup partisi Amazon S3. Gunakan `groupSize` untuk mengatur ukuran target grup yang akan dibaca dalam memori. Tentukan `groupSize` dalam byte (1048576 = 1 MB). | Insinyur data | 
| Tambahkan kode ke alur kerja. | Tambahkan kode pengelompokan ke [alur kerja pekerjaan Anda di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html). | Insinyur data | 

### Gunakan logika khusus untuk mengoptimalkan konsumsi ETL
<a name="use-custom-logic-to-optimize-etl-ingestion"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih bahasa dan platform pemrosesan. | Pilih bahasa scripting dan platform pemrosesan yang disesuaikan dengan kasus penggunaan Anda. | Arsitek awan | 
| Tulis kodenya. | Tulis logika kustom untuk mengumpulkan file Anda bersama-sama. | Arsitek awan | 
| Tambahkan kode ke alur kerja. | Tambahkan kode ke [alur kerja](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html) pekerjaan Anda di AWS Glue. Ini memungkinkan logika kustom Anda diterapkan setiap kali pekerjaan dijalankan. | Insinyur data | 

### Partisi ulang saat menulis data setelah transformasi
<a name="repartition-when-writing-data-after-transformation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menganalisis pola konsumsi. | Cari tahu bagaimana aplikasi hilir akan menggunakan data yang Anda tulis. Misalnya, jika mereka menanyakan data setiap hari dan Anda hanya mempartisi data per Wilayah atau memiliki file output yang sangat kecil, seperti 2,5 KB per file, maka ini tidak optimal untuk konsumsi. | DBA | 
| Partisi ulang data sebelum menulis. | Partisi ulang berdasarkan gabungan atau kueri selama pemrosesan (berdasarkan logika pemrosesan) dan setelah pemrosesan (berdasarkan konsumsi). Misalnya, partisi ulang berdasarkan ukuran byte, seperti`.repartition(100000)`, atau partisi ulang berdasarkan kolom, seperti. `.repartition("column_name")` | Insinyur data | 

## Sumber daya terkait
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-resources"></a>
+ [Membaca file input dalam kelompok yang lebih besar](https://docs.aws.amazon.com/glue/latest/dg/grouping-input-files.html)
+ [Memantau AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-glue.html)
+ [Memantau AWS Glue menggunakan CloudWatch metrik Amazon](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)
+ [Pemantauan dan debugging Job](https://docs.aws.amazon.com/glue/latest/dg/monitor-profile-glue-job-cloudwatch-metrics.html)
+ [Memulai ETL tanpa server di AWS Glue](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/welcome.html)

## Informasi tambahan
<a name="optimize-the-etl-ingestion-of-input-file-size-on-aws-additional"></a>

**Menentukan ukuran file**

Tidak ada cara mudah untuk menentukan apakah ukuran file terlalu besar atau terlalu kecil. Dampak ukuran file pada kinerja pemrosesan tergantung pada konfigurasi cluster Anda. Di inti Hadoop, kami menyarankan Anda menggunakan file yang 128 MB atau 256 MB untuk memaksimalkan ukuran blok.

Untuk sebagian besar beban kerja file teks di AWS Glue, kami merekomendasikan ukuran file antara 100 MB dan 1 GB untuk cluster 5-10 DPU. Untuk mengetahui ukuran file input terbaik, pantau bagian preprocessing dari pekerjaan AWS Glue Anda, lalu periksa pemanfaatan CPU dan pemanfaatan memori pekerjaan tersebut.

**Pertimbangan tambahan**

Jika kinerja pada tahap ETL awal merupakan hambatan, pertimbangkan untuk mengelompokkan atau menggabungkan file data sebelum diproses. Jika Anda memiliki kontrol penuh pada proses pembuatan file, akan lebih efisien untuk menggabungkan titik data pada sistem sumber itu sendiri sebelum data mentah dikirim ke AWS.

# Mengatur pipeline ETL dengan validasi, transformasi, dan partisi menggunakan AWS Step Functions
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions"></a>

*Sandip Gangapadhyay, Amazon Web Services*

## Ringkasan
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-summary"></a>

Pola ini menjelaskan cara membuat pipeline ekstrak, transformasi, dan beban (ETL) tanpa server untuk memvalidasi, mengubah, mengompres, dan mempartisi kumpulan data CSV besar untuk kinerja dan pengoptimalan biaya. Pipeline diatur oleh AWS Step Functions dan mencakup penanganan kesalahan, coba ulang otomatis, dan fitur notifikasi pengguna.

Saat file CSV diunggah ke folder sumber bucket Amazon Simple Storage Service (Amazon S3), pipeline ETL mulai berjalan. Pipeline memvalidasi konten dan skema file CSV sumber, mengubah file CSV menjadi format Apache Parquet terkompresi, mempartisi kumpulan data berdasarkan tahun, bulan, dan hari, dan menyimpannya dalam folder terpisah untuk diproses alat analitik.

Kode yang mengotomatiskan pola ini tersedia di GitHub, di [ETL Pipeline dengan AWS Step Functions](https://github.com/aws-samples/aws-step-functions-etl-pipeline-pattern) repositori.

## Prasyarat dan batasan
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS.
+ AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi dengan Anda Akun AWS, sehingga Anda dapat membuat AWS sumber daya dengan menerapkan AWS CloudFormation tumpukan. Kami merekomendasikan menggunakan AWS CLI versi 2. Untuk petunjuk, lihat [Menginstal atau memperbarui ke versi terbaru](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) dari AWS CLI dokumentasi. AWS CLI Untuk petunjuk konfigurasi, lihat [Pengaturan konfigurasi dan file kredensi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) dalam AWS CLI dokumentasi.
+ Bucket Amazon S3.
+ Dataset CSV dengan skema yang benar. ([Repositori kode](https://github.com/aws-samples/aws-step-functions-etl-pipeline-pattern/) yang disertakan dengan pola ini menyediakan contoh file CSV dengan skema dan tipe data yang benar yang dapat Anda gunakan.)
+ Browser web yang mendukung Konsol Manajemen AWS. (Lihat [daftar browser yang didukung](https://aws.amazon.com/premiumsupport/knowledge-center/browsers-management-console/).)
+ AWS Glue akses konsol.
+ AWS Step Functions akses konsol.

**Batasan**
+ Dalam AWS Step Functions, batas maksimum untuk menyimpan catatan riwayat adalah 90 hari. Untuk informasi selengkapnya, lihat [kuota layanan Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/service-quotas.html) dalam AWS Step Functions dokumentasi.

**Versi produk**
+ Python 3.13 untuk AWS Lambda
+ AWS Glue versi 4.0

## Arsitektur
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-architecture"></a>

![\[Proses ETL dari bucket sumber S3 melalui Step Functions, AWS Glue, dan Amazon SNS dalam 10 langkah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8eb792b0-d35b-4a63-ba2d-71eb8d2c1203/images/054c8e9d-76a2-4334-b21a-cbe76af45923.png)


 

Alur kerja yang diilustrasikan dalam diagram terdiri dari langkah-langkah tingkat tinggi ini:

1. Pengguna mengunggah file CSV ke folder sumber di Amazon S3.

1. Peristiwa notifikasi Amazon S3 memulai AWS Lambda fungsi yang memulai mesin status. AWS Step Functions 

1. Fungsi Lambda memvalidasi skema dan tipe data dari file CSV mentah.

1. Tergantung pada hasil validasi:

   1. Jika validasi file sumber berhasil, file pindah ke folder tahap untuk diproses lebih lanjut.

   1. Jika validasi gagal, file pindah ke folder kesalahan, dan pemberitahuan kesalahan dikirim melalui Amazon Simple Notification Service (Amazon SNS).

1.  AWS Glue Crawler membuat skema file mentah dari folder panggung di Amazon S3.

1.  AWS Glue Pekerjaan mengubah, mengompres, dan mempartisi file mentah ke dalam format Parket.

1.  AWS Glue Pekerjaan juga memindahkan file ke folder transformasi di Amazon S3.

1.  AWS Glue Crawler membuat skema dari file yang diubah. Skema yang dihasilkan dapat digunakan oleh pekerjaan analitik apa pun. Anda juga dapat menggunakan Amazon Athena untuk menjalankan kueri ad-hoc.

1. Jika pipeline selesai tanpa kesalahan, file skema dipindahkan ke folder arsip. Jika ada kesalahan yang ditemui, file dipindahkan ke folder kesalahan sebagai gantinya.

1. Amazon SNS mengirimkan notifikasi yang menunjukkan keberhasilan atau kegagalan berdasarkan status penyelesaian pipeline.

Semua AWS sumber daya yang digunakan dalam pola ini tanpa server. Tidak ada server untuk dikelola.

## Alat
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-tools"></a>

**Layanan AWS**
+ [AWS Glue](https://aws.amazon.com/glue/)— AWS Glue adalah layanan ETL yang dikelola sepenuhnya yang memudahkan pelanggan untuk menyiapkan dan memuat data mereka untuk analitik.
+ [AWS Step Functions](https://aws.amazon.com/step-functions/)- AWS Step Functions adalah layanan orkestrasi tanpa server yang memungkinkan Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting. Melalui konsol AWS Step Functions grafis, Anda melihat alur kerja aplikasi Anda sebagai serangkaian langkah berbasis peristiwa.
+ [Amazon S3 — Amazon Simple Storage](https://aws.amazon.com/s3/) Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja terdepan di industri.
+ [Amazon SNS](https://aws.amazon.com/sns/) — Amazon Simple Notification Service (Amazon SNS) adalah layanan pesan yang sangat tersedia, tahan lama, aman, dan pub/sub terkelola sepenuhnya yang memungkinkan Anda memisahkan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server.
+ [AWS Lambda](https://aws.amazon.com/lambda/)— AWS Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. AWS Lambda menjalankan kode Anda hanya bila diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik.

**Kode**

Kode untuk pola ini tersedia di GitHub, di [ETL Pipeline dengan AWS Step Functions](https://github.com/aws-samples/aws-step-functions-etl-pipeline-pattern) repositori. Repositori kode berisi file dan folder berikut:
+ `template.yml`— AWS CloudFormation template untuk membuat pipa ETL dengan AWS Step Functions.
+ `parameter.json`- Berisi semua parameter dan nilai parameter. Anda memperbarui file ini untuk mengubah nilai parameter, seperti yang dijelaskan di bagian *Epik*.
+ `myLayer/python`folder - Berisi paket Python yang diperlukan untuk membuat AWS Lambda lapisan yang diperlukan untuk proyek ini.
+ `lambda`folder - Berisi fungsi Lambda berikut:
  + `move_file.py`— Memindahkan kumpulan data sumber ke folder arsip, transformasi, atau kesalahan.
  + `check_crawler.py`— Memeriksa status AWS Glue crawler sebanyak yang dikonfigurasi oleh variabel `RETRYLIMIT ` lingkungan sebelum mengirim pesan kegagalan.
  + `start_crawler.py`— Memulai AWS Glue crawler.
  + `start_step_function.py`— Mulai AWS Step Functions.
  + `start_codebuild.py`Memulai AWS CodeBuild proyek.
  + `validation.py`— Memvalidasi dataset mentah input.
  + `s3object.py`— Membuat struktur direktori yang diperlukan di dalam bucket Amazon S3.
  + `notification.py`— Mengirim pemberitahuan sukses atau kesalahan di akhir pipeline.

Untuk menggunakan kode sampel, ikuti instruksi di bagian *Epik*.

## Epik
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-epics"></a>

### Siapkan file sumber
<a name="prepare-the-source-files"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori kode sampel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Perbarui nilai parameter. | Dalam salinan lokal repositori Anda, edit `parameter.json` file dan perbarui nilai parameter default sebagai berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Unggah kode sumber ke bucket Amazon S3. | Sebelum Anda menerapkan AWS CloudFormation template yang mengotomatiskan pipeline ETL, Anda harus mengemas file sumber untuk template dan mengunggahnya ke bucket Amazon S3. Untuk melakukan ini, jalankan AWS CLI perintah berikut dengan profil Anda yang telah dikonfigurasi sebelumnya:<pre>aws cloudformation package --template-file template.yml --s3-bucket <bucket_name> --output-template-file packaged.template --profile <profile_name></pre>di mana:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 

### Buat tumpukan
<a name="create-the-stack"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan CloudFormation template. | Untuk menyebarkan AWS CloudFormation template, jalankan AWS CLI perintah berikut:<pre>aws cloudformation deploy --stack-name <stack_name> --template-file packaged.template --parameter-overrides file://parameter.json --capabilities CAPABILITY_IAM --profile <profile_name></pre>di mana:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Periksa kemajuan. | Di [AWS CloudFormation konsol](https://console.aws.amazon.com/cloudformation/), periksa kemajuan pengembangan tumpukan. Ketika statusnya`CREATE_COMPLETE`, tumpukan telah berhasil digunakan. | Developer | 
| Perhatikan nama AWS Glue database. | Tab **Output** untuk tumpukan menampilkan nama AWS Glue database. Nama kunci tersebut adalah `GlueDBOutput`. | Developer | 

### Uji pipa
<a name="test-the-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mulai pipa ETL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Periksa dataset yang dipartisi. | Saat pipeline ETL selesai, verifikasi bahwa kumpulan data yang dipartisi tersedia di folder transformasi Amazon S3 (`transform`, atau nama folder yang Anda tetapkan dalam file). `parameter.json` | Developer | 
| Periksa database yang dipartisi. AWS Glue  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions.html) | Developer | 
| Jalankan kueri. | (Opsional) Gunakan Amazon Athena untuk menjalankan kueri ad-hoc pada database yang dipartisi dan diubah. Untuk petunjuk, lihat [Menjalankan kueri SQL di Amazon Athena dalam](https://docs.aws.amazon.com/athena/latest/ug/querying-athena-tables.html) dokumentasi. AWS  | Analis basis data | 

## Pemecahan masalah
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| AWS Identity and Access Management (IAM) izin untuk AWS Glue pekerjaan dan crawler | Jika Anda lebih lanjut menyesuaikan AWS Glue pekerjaan atau crawler, pastikan untuk memberikan izin IAM yang sesuai dalam peran IAM yang digunakan oleh AWS Glue pekerjaan, atau memberikan izin data ke. AWS Lake Formation Lihat informasi yang lebih lengkap dalam [dokumentasi AWS](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html). | 

## Sumber daya terkait
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-resources"></a>

**Layanan AWS dokumentasi**
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/)
+ [AWS Glue](https://docs.aws.amazon.com/glue/)
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/)
+ [Amazon S3](https://docs.aws.amazon.com/s3/)
+ [Amazon SNS](https://docs.aws.amazon.com/sns/)

## Informasi tambahan
<a name="orchestrate-an-etl-pipeline-with-validation-transformation-and-partitioning-using-aws-step-functions-additional"></a>

**Diagram berikut menunjukkan AWS Step Functions alur kerja untuk pipeline ETL yang sukses, dari panel Inspector AWS Step Functions .** ****

![\[Alur kerja Step Functions untuk memvalidasi input .csv, merayapi data, dan menjalankan tugas AWS Glue.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8eb792b0-d35b-4a63-ba2d-71eb8d2c1203/images/bd77de7b-4d04-44bb-95d2-3ec4599b3770.png)


**Diagram berikut menunjukkan AWS Step Functions alur kerja untuk pipeline ETL yang gagal karena kesalahan validasi input, dari panel Step Functions Inspector.** 

![\[Step Functions alur kerja dengan kegagalan sehingga file pindah ke folder kesalahan.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8eb792b0-d35b-4a63-ba2d-71eb8d2c1203/images/5fd7dd79-ba4c-4c20-b1f0-ad4b5f22bdfc.png)


 

# Lakukan analitik lanjutan menggunakan Amazon Redshift ML
<a name="perform-advanced-analytics-using-amazon-redshift-ml"></a>

*Po Hong dan Chyanna Antonio, Amazon Web Services*

## Ringkasan
<a name="perform-advanced-analytics-using-amazon-redshift-ml-summary"></a>

Di Amazon Web Services (AWS) Cloud, Anda dapat menggunakan machine learning Amazon Redshift (Amazon Redshift ML) untuk melakukan analitik ML pada data yang disimpan di kluster Amazon Redshift atau di Amazon Simple Storage Service (Amazon S3). Amazon Redshift MLmendukung pembelajaran yang diawasi, yang biasanya digunakan untuk analitik tingkat lanjut. Kasus penggunaan untuk Amazon Redshift MLmencakup peramalan pendapatan, deteksi penipuan kartu kredit, dan nilai seumur hidup pelanggan (CLV) atau prediksi churn pelanggan.

Amazon Redshift ML memudahkan pengguna database untuk membuat, melatih, dan menerapkan model ML dengan menggunakan perintah SQL standar. Amazon Redshift ML menggunakan Amazon SageMaker Autopilot untuk secara otomatis melatih dan menyetel model ML terbaik untuk klasifikasi atau regresi berdasarkan data Anda, sementara Anda mempertahankan kontrol dan visibilitas.

Semua interaksi antara Amazon Redshift, Amazon S3, dan Amazon diabstraksikan dan SageMaker diotomatisasi. Setelah model ML dilatih dan digunakan, model ini akan tersedia sebagai [fungsi yang ditentukan pengguna](https://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html) (UDF) di Amazon Redshift dan dapat digunakan dalam kueri SQL.  

[Pola ini melengkapi [model Create, train, dan deploy ML di Amazon Redshift menggunakan SQL dengan Amazon Redshift](https://aws.amazon.com/blogs/big-data/create-train-and-deploy-machine-learning-models-in-amazon-redshift-using-sql-with-amazon-redshift-ml/) ML dari AWS Blog, [dan Build, train, dan deploy model ML dengan tutorial SageMaker Amazon dari Getting Started](https://aws.amazon.com/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/) Resource Center.](https://aws.amazon.com/getting-started/)

## Prasyarat dan batasan
<a name="perform-advanced-analytics-using-amazon-redshift-ml-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Data yang ada di tabel Amazon Redshift

**Keterampilan**
+ *Keakraban dengan istilah dan konsep yang digunakan oleh Amazon Redshift ML, *termasuk pembelajaran mesin**, pelatihan,* dan prediksi.* Untuk informasi selengkapnya tentang hal ini, lihat [Melatih model ML](https://docs.aws.amazon.com/machine-learning/latest/dg/training-ml-models.html) dalam dokumentasi Amazon Machine Learning (Amazon ML).
+ Pengalaman dengan penyiapan pengguna Amazon Redshift, manajemen akses, dan sintaks SQL standar. Untuk informasi selengkapnya tentang ini, lihat [Memulai Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) di dokumentasi Amazon Redshift.
+ Pengetahuan dan pengalaman dengan Amazon S3 dan AWS Identity and Access Management (IAM). 
+ Pengalaman menjalankan perintah di AWS Command Line Interface (AWS CLI) juga bermanfaat tetapi tidak diperlukan. 

**Batasan**
+ Cluster Amazon Redshift dan bucket S3 harus berada di Wilayah AWS yang sama.
+ Pendekatan pola ini hanya mendukung model pembelajaran yang diawasi seperti regresi, klasifikasi biner, dan klasifikasi multikelas. 

## Arsitektur
<a name="perform-advanced-analytics-using-amazon-redshift-ml-architecture"></a>

![\[Alur kerja menunjukkan cara kerja SageMaker Amazon Redshift ML untuk membangun, melatih, dan menerapkan model ML.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/3b6a5f49-c647-45f4-940e-b623f989326a/images/36cc39fe-c1f3-4d68-b89e-e636156001a6.png)


Langkah-langkah berikut menjelaskan cara kerja Amazon Redshift ML SageMaker untuk membangun, melatih, dan menerapkan model ML: 

1. Amazon Redshift mengekspor data pelatihan ke bucket S3.

1. SageMaker Autopilot secara otomatis memproses data pelatihan.

1. Setelah `CREATE MODEL` pernyataan dipanggil, Amazon Redshift ML SageMaker digunakan untuk pelatihan.

1. SageMaker Autopilot mencari dan merekomendasikan algoritma ML dan parameter hiper optimal yang mengoptimalkan metrik evaluasi.

1. Amazon Redshift ML mendaftarkan model keluaran keluaran sebagai fungsi SQL di cluster Amazon Redshift.

1. Fungsi model ML dapat digunakan dalam pernyataan SQL. 

**Tumpukan teknologi**
+ Amazon Redshift
+ SageMaker
+ Amazon S3

## Alat
<a name="perform-advanced-analytics-using-amazon-redshift-ml-tools"></a>
+ [Amazon Redshift — Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/welcome.html) adalah layanan pergudangan data tingkat perusahaan, skala petabyte, dan terkelola sepenuhnya.
+ [Amazon Redshift ML](https://docs.aws.amazon.com/redshift/latest/dg/machine_learning.html) — Amazon Redshift machine learning (Amazon Redshift ML) adalah layanan berbasis cloud yang kuat yang memudahkan analis dan ilmuwan data dari semua tingkat keahlian untuk menggunakan teknologi ML.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service adalah penyimpanan untuk internet. 
+ [Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) - SageMaker adalah layanan ML yang dikelola sepenuhnya. 
+ [Amazon SageMaker Autopilot — SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html) adalah kumpulan fitur yang mengotomatiskan tugas-tugas utama dari proses pembelajaran mesin otomatis (AutoML).

 

**Kode**

Anda dapat membuat model ML yang diawasi di Amazon Redshift dengan menggunakan kode berikut:

```
"CREATE MODEL customer_churn_auto_model
FROM (SELECT state,
             account_length,
             area_code,
             total_charge/account_length AS average_daily_spend, 
             cust_serv_calls/account_length AS average_daily_cases,
             churn 
      FROM customer_activity
      WHERE  record_date < '2020-01-01' 
     )
TARGET churn
FUNCTION ml_fn_customer_churn_auto
IAM_ROLE 'arn:aws:iam::XXXXXXXXXXXX:role/Redshift-ML'
SETTINGS (
  S3_BUCKET 'your-bucket'
);")
```

**catatan**  
`SELECT`Status dapat merujuk ke tabel reguler Amazon Redshift, tabel eksternal Amazon Redshift Spectrum, atau keduanya.

## Epik
<a name="perform-advanced-analytics-using-amazon-redshift-ml-epics"></a>

### Siapkan kumpulan data pelatihan dan uji
<a name="prepare-a-training-and-test-dataset"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan kumpulan data pelatihan dan uji. | Masuk ke AWS Management Console dan buka SageMaker konsol Amazon. Ikuti instruksi dari tutorial [Build, train, dan deploy model machine learning](https://aws.amazon.com/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/) untuk membuat file.csv atau Apache Parquet yang memiliki kolom label (pelatihan yang *diawasi*) dan tanpa header. Kami menyarankan Anda mengacak dan membagi kumpulan data mentah menjadi satu set pelatihan untuk pelatihan model (70 persen) dan satu set pengujian untuk evaluasi kinerja model (30 persen). | Ilmuwan data | 

### Siapkan dan konfigurasikan tumpukan teknologi
<a name="prepare-and-configure-the-technology-stack"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan konfigurasikan cluster Amazon Redshift. | Di konsol Amazon Redshift, buat cluster sesuai dengan kebutuhan Anda. Untuk informasi selengkapnya tentang ini, lihat [Membuat klaster](https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-data-launch-cluster.html) di dokumentasi Amazon Redshift.  Cluster Amazon Redshift harus dibuat dengan jalur pemeliharaan. `SQL_PREVIEW` Untuk informasi selengkapnya tentang trek pratinjau, lihat [Memilih trek pemeliharaan klaster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-mgmt-maintenance-tracks) di dokumentasi Amazon Redshift. | DBA, arsitek Cloud | 
| Buat bucket S3 untuk menyimpan data pelatihan dan artefak model. | Di konsol Amazon S3, buat bucket S3 untuk data pelatihan dan pengujian. Untuk informasi selengkapnya tentang membuat bucket S3, lihat [Membuat bucket S3 dari](https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html) AWS Quick Starts. Pastikan cluster Amazon Redshift dan bucket S3 Anda berada di Wilayah yang sama.  | DBA, arsitek Cloud | 
| Buat dan lampirkan kebijakan IAM ke cluster Amazon Redshift. | Buat kebijakan IAM untuk mengizinkan klaster Amazon Redshift SageMaker mengakses dan Amazon S3. Untuk petunjuk dan langkah-langkahnya, lihat [Penyiapan klaster untuk menggunakan Amazon Redshift MLdalam](https://docs.aws.amazon.com/redshift/latest/dg/cluster-setup.html) dokumentasi Amazon Redshift. | DBA, arsitek Cloud | 
| Izinkan pengguna dan grup Amazon Redshift mengakses skema dan tabel. | Berikan izin untuk memungkinkan pengguna dan grup di Amazon Redshift mengakses skema dan tabel internal dan eksternal. Untuk langkah dan petunjuk, lihat [Mengelola izin dan kepemilikan](https://docs.aws.amazon.com/redshift/latest/dg/permissions-ownership.html) di dokumentasi Amazon Redshift. | DBA | 

### Buat dan latih model ML di Amazon Redshift
<a name="create-and-train-the-ml-model-in-amazon-redshift"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan latih model ML di Amazon Redshift. | Buat dan latih model MLmu di Amazon Redshift Ml. Untuk informasi selengkapnya, lihat `CREATE MODEL` pernyataan di dokumentasi Amazon Redshift. | Pengembang, Ilmuwan data | 

### Lakukan inferensi dan prediksi batch di Amazon Redshift
<a name="perform-batch-inference-and-prediction-in-amazon-redshift"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lakukan inferensi menggunakan fungsi model ML yang dihasilkan. | Untuk informasi selengkapnya tentang melakukan inferensi menggunakan fungsi model ML yang dihasilkan, lihat [Prediksi](https://docs.aws.amazon.com/redshift/latest/dg/prediction.html) dalam dokumentasi Amazon Redshift. | Ilmuwan data, Pengguna intelijen bisnis | 

## Sumber daya terkait
<a name="perform-advanced-analytics-using-amazon-redshift-ml-resources"></a>

**Siapkan kumpulan data pelatihan dan uji**
+ [Membangun, melatih, dan menerapkan model pembelajaran mesin dengan Amazon SageMaker](https://aws.amazon.com/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/)

 

**Siapkan dan konfigurasikan tumpukan teknologi**
+ [Membuat cluster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-data-launch-cluster.html)
+ [Memilih trek pemeliharaan klaster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-mgmt-maintenance-tracks)
+ [Membuat bucket S3](https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html)
+ [Menyiapkan klaster Amazon Redshift untuk menggunakan Amazon Redshift ML](https://docs.aws.amazon.com/redshift/latest/dg/cluster-setup.html)
+ [Mengelola izin dan kepemilikan di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/permissions-ownership.html)

 

**Buat dan latih model ML di Amazon Redshift**
+ [Buat pernyataan MODEL di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_MODEL.html#r_simple_create_model) 

 

**Lakukan inferensi dan prediksi batch di Amazon Redshift**
+ [Prediksi di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/prediction.html) 

 

**Sumber daya lainnya**
+ [Memulai dengan Amazon Redshift Ml](https://docs.aws.amazon.com/redshift/latest/dg/geting-started-machine-learning.html)
+ [Membuat, melatih, dan menerapkan model ML di Amazon Redshift menggunakan SQL dengan Amazon Redshift ML](https://aws.amazon.com/blogs/big-data/create-train-and-deploy-machine-learning-models-in-amazon-redshift-using-sql-with-amazon-redshift-ml/)
+ [Mitra Amazon Redshift](https://aws.amazon.com/redshift/partners/?partner-solutions-cards.sort-by=item.additionalFields.partnerNameLower&partner-solutions-cards.sort-order=aschttps://aws.amazon.com/redshift/partners/?partner-solutions-cards.sort-by=item.additionalFields.partnerNameLower&partner-solutions-cards.sort-order=asc)
+ [Mitra kompetensi pembelajaran mesin AWS](https://aws.amazon.com/machine-learning/partner-solutions/?partner-solutions-cards.sort-by=item.additionalFields.partnerNameLower&partner-solutions-cards.sort-order=asc)

# Kueri tabel Amazon DynamoDB dengan SQL dengan menggunakan Amazon Athena
<a name="query-amazon-dynamodb-tables-sql-amazon-athena"></a>

*Gavin Perrie, Ajit Ambike, dan Brad Yates, Amazon Web Services*

## Ringkasan
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-summary"></a>

Jika data Anda menyertakan sumber selain Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3), Anda dapat menggunakan kueri gabungan untuk mengakses sumber data relasional, non-relasional, objek, atau kustom tersebut. Pola ini menunjukkan cara mengonfigurasi akses kueri federasi melalui Amazon Athena ke Amazon DynamoDB dengan menggunakan konektor sumber data SQL.

Dengan menggunakan pola ini, Anda dapat melakukan hal berikut:
+ Kueri tabel DynamoDB dengan menggunakan SQL.
+ Jalankan kueri SQL federasi di Athena dan gabungkan tabel DynamoDB dengan sumber data lain yang didukung.

## Prasyarat dan batasan
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-prereqs"></a>

**Prasyarat**
+ Sebuah tabel DynamoDB.
+ Kelompok kerja Athena diatur untuk menggunakan mesin Athena versi 2. Untuk instruksi, lihat dokumentasi [Athena](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html).
+ Bucket S3 tempat `AthenaDynamoDBConnector` AWS Lambda fungsi dapat menumpahkan data. Bucket S3 dan fungsi Lambda harus berada di Wilayah AWS yang sama.

Jika ini adalah pertama kalinya Anda mengakses Athena, Anda memerlukan bucket S3 tambahan untuk digunakan sebagai lokasi hasil kueri. Untuk instruksi, lihat dokumentasi [Athena](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location-console).

**Batasan**
+ Operasi tulis seperti [INSERT INTO](https://docs.aws.amazon.com/athena/latest/ug/insert-into.html) tidak didukung. ****

**Versi produk**
+ [Federasi Kueri Athena dirilis pada GitHub](https://github.com/awslabs/aws-athena-query-federation/releases)

## Arsitektur
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-architecture"></a>

**Arsitektur target**

Diagram berikut menunjukkan aliran koneksi setelah pola ditetapkan. Pengguna terhubung ke Amazon Athena untuk memberikan kueri. Athena meneruskan kueri dan target ke fungsi Lambda konektor sumber data DynamoDB, yang mengambil dan mengembalikan data ke Athena. Jika sejumlah besar data dikembalikan, Athena menyimpan hasil sementara di ember tumpahan sebelum mengemas dan mengembalikan kumpulan data lengkap.

![\[Alur kerja dari pengguna ke Athena ke Lambda, yang terhubung ke bucket S3 dan ke tabel DynamoDB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9d1ee529-36f3-4c7e-a2e7-05b76e09a3d8/images/e50a00cf-a55a-4def-81d5-4d2755dc9a97.png)


## Alat
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) dengan menggunakan SQL standar. Pola ini menggunakan [Amazon Athena DynamoDB Connector](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb), alat yang dibangun menggunakan Amazon Athena Query Federation SDK dan diinstal sebagai aplikasi melalui file. AWS Lambda AWS Serverless Application Repository
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [Athena Query Federation](https://github.com/awslabs/aws-athena-query-federation/releases).

## Epik
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-epics"></a>

### Siapkan dan uji konektor sumber data DynamoDB
<a name="set-up-and-test-the-ddb-data-source-connector"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan AthenaDynamo DBConnector aplikasi. | Untuk menyebarkan AthenaDynamoDBConnecter, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Buat sumber data untuk Athena. | Untuk membuat sumber data, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Gunakan Athena untuk menanyakan tabel DynamoDB. | Untuk menanyakan tabel DynamoDB, lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | Pengembang aplikasi | 

## Pemecahan masalah
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Kueri gagal dengan `GENERIC_INTERNAL_ERROR: The bucket is in this region: <region>`*.* | Pastikan bahwa ember tumpahan Athena dan fungsi Lambda dibuat dalam hal yang sama. Wilayah AWS | 
| Sumber data yang baru dibuat tidak terlihat di konsol Athena. | Katalog data Athena bersifat regional. Pastikan `AthenaDynamoDBConnector` telah dikerahkan di Wilayah tempat Anda mencoba menggunakan Athena. | 
| Anda tidak dapat menjalankan kueri terhadap sumber data yang baru dibuat. | Periksa apakah **Lokasi Hasil Kueri** telah ditetapkan. | 

## Sumber daya terkait
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-resources"></a>
+ [Konektor DynamoDB Amazon Athena](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb)
+ [Pertanyaan Federasi Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html)

# Akses, kueri, dan gabungkan tabel Amazon DynamoDB menggunakan Athena
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena"></a>

*Moinul Al-Mamun, Amazon Web Services*

## Ringkasan
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-summary"></a>

Pola ini menunjukkan cara mengatur koneksi antara Amazon Athena dan Amazon DynamoDB dengan menggunakan konektor Amazon Athena DynamoDB. Konektor menggunakan fungsi AWS Lambda untuk menanyakan data di DynamoDB. Anda tidak perlu menulis kode apa pun untuk mengatur koneksi. Setelah koneksi dibuat, Anda dapat dengan cepat mengakses dan menganalisis tabel DynamoDB dengan menggunakan [Athena Federated Query untuk menjalankan perintah SQL dari Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html). Anda juga dapat menggabungkan satu atau beberapa tabel DynamoDB satu sama lain atau ke sumber data lain, seperti Amazon Redshift atau Amazon Aurora.

## Prasyarat dan batasan
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif dengan izin untuk mengelola tabel DynamoDB, sumber Data Athena, Lambda, dan AWS Identity and Access Management (IAM)
+ Bucket Amazon Simple Storage Service (Amazon S3) tempat Athena dapat menyimpan hasil kueri
+ Bucket S3 tempat Konektor DynamoDB Athena dapat menyimpan data dalam jangka pendek
+ Wilayah AWS yang mendukung [mesin Athena versi 2](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference-0002.html)
+ Izin IAM untuk mengakses Athena dan bucket S3 yang diperlukan
+ [Konektor Amazon Athena DynamoDB](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb), diinstal

**Batasan**

Ada biaya untuk menanyakan tabel DynamoDB. Ukuran tabel melebihi beberapa gigabyte (GBs) dapat menimbulkan biaya tinggi. Kami menyarankan Anda mempertimbangkan biaya sebelum melakukan operasi SCAN tabel penuh. Untuk informasi selengkapnya, lihat harga [Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing/). Untuk mengurangi biaya dan mencapai kinerja tinggi, kami sarankan Anda selalu menggunakan LIMIT dalam kueri Anda (misalnya,`SELECT * FROM table1 LIMIT 10`). Selain itu, sebelum Anda melakukan kueri JOIN atau GROUP BY di lingkungan produksi, pertimbangkan ukuran tabel Anda. Jika tabel Anda terlalu besar, pertimbangkan opsi alternatif seperti [memigrasikan tabel ke Amazon](https://aws.amazon.com/blogs/database/simplify-amazon-dynamodb-data-extraction-and-analysis-by-using-aws-glue-and-amazon-athena/) S3.

## Arsitektur
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-architecture"></a>

Diagram berikut menunjukkan bagaimana pengguna dapat menjalankan query SQL pada tabel DynamoDB dari Athena.

![\[Alur kerja untuk menghubungkan Athena dan DynamoDB untuk menjalankan query SQL.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e6ff94af-d208-40c7-94e4-af257755a603/images/bc8e0132-b578-463b-bf55-3c39ce359c17.png)


Diagram menunjukkan alur kerja berikut:

1. Untuk menanyakan tabel DynamoDB, pengguna menjalankan kueri SQL dari Athena.

1. Athena memulai fungsi Lambda.

1. Fungsi Lambda menanyakan data yang diminta dalam tabel DynamoDB.

1. DynamoDB mengembalikan data yang diminta ke fungsi Lambda. Kemudian, fungsi mentransfer hasil kueri ke pengguna melalui Athena.

1. Fungsi Lambda menyimpan data di bucket S3.

**Tumpukan teknologi**
+ Amazon Athena
+ Amazon DynamoDB
+ Amazon S3
+ AWS Lambda

## Alat
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-tools"></a>
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.
+ [Amazon Athena DynamoDB Connector](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb) adalah alat AWS yang memungkinkan Athena terhubung dengan DynamoDB dan mengakses tabel Anda dengan menggunakan kueri SQL.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan dapat diskalakan.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

## Epik
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-epics"></a>

### Buat contoh tabel DynamoDB
<a name="create-sample-dynamodb-tables"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel sampel pertama.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Masukkan data sampel ke dalam tabel pertama. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)<pre>{<br />  "PK1": "1234",<br />  "SK1": "info",<br />  "Salary": "5000"<br /> }</pre><pre>{<br />  "PK1": "1235",<br />  "SK1": "info",<br />  "Salary": "5200"<br /> }</pre> | Developer | 
| Buat tabel sampel kedua.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Masukkan data sampel ke dalam tabel kedua. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)<pre>{<br />  "PK2": "1234",<br /> "SK2": "bonus",<br /> "Bonus": "500"<br />}</pre><pre>{<br />  "PK2": "1235",<br /> "SK2": "bonus",<br /> "Bonus": "1000"<br />}</pre> | Developer | 

### Buat sumber data di Athena untuk DynamoDB
<a name="create-a-data-source-in-athena-for-dynamodb"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan konektor sumber data. | Buat sumber data untuk DynamoDB, lalu buat fungsi Lambda untuk terhubung ke sumber data tersebut.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Verifikasi bahwa fungsi Lambda dapat mengakses bucket tumpahan S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)Jika Anda mengalami kesalahan, lihat bagian *Informasi tambahan* dalam pola ini untuk panduan. | Developer | 

### Akses tabel DynamoDB dari Athena
<a name="access-dynamodb-tables-from-athena"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kueri tabel DynamoDB. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html) | Developer | 
| Bergabunglah dengan dua tabel DynamoDB. | DynamoDB adalah penyimpanan data NoSQL dan tidak mendukung operasi gabungan SQL. Akibatnya, Anda harus melakukan operasi gabungan pada dua tabel DynamoDB:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/access-query-and-join-amazon-dynamodb-tables-using-athena.html)<pre>SELECT pk1, salary, bonus FROM dydbtable1 t1<br /> JOIN dydbtable2 t2 ON t1.pk1 = t2.pk2;</pre> | Developer | 

## Sumber daya terkait
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-resources"></a>
+ Konektor [DynamoDB Amazon Athena (AWS Labs)](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb)
+ [Kueri sumber data apa pun dengan kueri federasi baru Amazon Athena](https://aws.amazon.com/blogs/big-data/query-any-data-source-with-amazon-athenas-new-federated-query/) (AWS Big Data Blog)
+ [Referensi versi mesin Athena (Panduan](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-reference.html) Pengguna Athena)
+ [Sederhanakan ekstraksi dan analisis data Amazon DynamoDB dengan menggunakan AWS Glue dan Amazon Athena (AWS](https://aws.amazon.com/blogs/database/simplify-amazon-dynamodb-data-extraction-and-analysis-by-using-aws-glue-and-amazon-athena/) Database Blog)

## Informasi tambahan
<a name="access-query-and-join-amazon-dynamodb-tables-using-athena-additional"></a>

Jika Anda menjalankan kueri di Athena dengan `spill_bucket` dalam `{bucket_name}/folder_name/` format, maka Anda dapat menerima pesan galat berikut:

```
"GENERIC_USER_ERROR: Encountered an exception[java.lang.RuntimeException] from your LambdaFunction[arn:aws:lambda:us-east-1:xxxxxx:function:testdynamodb] executed in context[retrieving meta-data] with message[You do NOT own the spill bucket with the name: s3://amzn-s3-demo-bucket/athena_dynamodb_spill_data/]
This query ran against the "default" database, unless qualified by the query. Please post the error message on our forum  or contact customer support with Query Id: [query-id]"
```

Untuk mengatasi kesalahan ini, perbarui variabel lingkungan fungsi Lambda `spill_bucket` ke`{bucket_name_only}`, lalu perbarui kebijakan IAM Lambda berikut untuk akses tulis bucket:

```
{
             "Action": [
                 "s3:GetObject",
                 "s3:ListBucket",
                 "s3:GetBucketLocation",
                 "s3:GetObjectVersion",
                 "s3:PutObject",
                 "s3:PutObjectAcl",
                 "s3:GetLifecycleConfiguration",
                 "s3:PutLifecycleConfiguration",
                 "s3:DeleteObject"
            ],
             "Resource": [
                 "arn:aws:s3:::spill_bucket",
                 "arn:aws:s3:::spill_bucket/*"
            ],
             "Effect": "Allow"
        }
```

Atau, Anda dapat menghapus konektor sumber data Athena yang Anda buat sebelumnya, dan membuatnya kembali dengan menggunakan hanya untuk. `{bucket_name}` `spill_bucket`

# Siapkan penyortiran khusus bahasa untuk hasil kueri Amazon Redshift menggunakan UDF Python skalar
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf"></a>

*Ethan Stark, Amazon Web Services*

## Ringkasan
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-summary"></a>

Pola ini menyediakan langkah-langkah dan kode contoh untuk menggunakan skalar Python UDF (fungsi yang ditentukan pengguna) untuk menyiapkan penyortiran linguistik yang tidak peka huruf besar/kecil untuk hasil kueri Amazon Redshift. Anda perlu menggunakan UDF Python skalar karena Amazon Redshift mengembalikan hasil berdasarkan urutan UTF-8 biner dan tidak mendukung penyortiran khusus bahasa. UDF Python adalah kode pemrosesan non-SQL yang didasarkan pada program Python dan berjalan di gudang data. Anda dapat menjalankan kode UDF Python dengan pernyataan SQL dalam satu kueri. Untuk informasi lebih lanjut, lihat [Pengantar Python UDFs di posting Blog Big Data Amazon](https://aws.amazon.com/blogs/big-data/introduction-to-python-udfs-in-amazon-redshift/) AWS Redshift.

Data sampel dalam pola ini didasarkan pada alfabet Turki untuk tujuan demonstrasi. UDF Python skalar dalam pola ini dibuat untuk membuat hasil kueri default Amazon Redshift sesuai dengan urutan linguistik karakter dalam bahasa Turki. Untuk informasi selengkapnya, lihat *contoh bahasa Turki* di bagian *Informasi tambahan* dari pola ini. Anda dapat memodifikasi UDF Python skalar dalam pola ini untuk bahasa lain.

## Prasyarat dan batasan
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-prereqs"></a>

**Prasyarat**
+ [Cluster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) dengan database, skema, dan tabel
+ [Pengguna Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_Users.html) dengan `CREATE TABLE` dan izin `CREATE FUNCTION`
+ [Python 2.7](https://www.python.org/download/releases/2.7/) atau yang lebih baru

**Batasan**

Penyortiran linguistik yang digunakan oleh kueri dalam pola ini tidak peka huruf besar/kecil.

## Alat
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-tools"></a>

**Layanan AWS**
+ [Amazon Redshift adalah layanan gudang](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) data skala petabyte terkelola di. AWS Cloud Amazon Redshift terintegrasi dengan data lake Anda, yang memungkinkan Anda menggunakan data Anda untuk memperoleh wawasan baru untuk bisnis dan pelanggan Anda.

**Alat-alat lainnya**
+ [Python (UDFs) fungsi yang ditentukan pengguna adalah fungsi](https://docs.snowflake.com/en/developer-guide/udf/python/udf-python-introduction.html) yang dapat Anda tulis dengan Python dan kemudian memanggil dalam pernyataan SQL.

## Epik
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-epics"></a>

### Kembangkan kode untuk mengurutkan hasil kueri dalam urutan linguistik
<a name="develop-code-to-sort-query-results-in-linguistic-order"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel untuk data sampel Anda. | Untuk membuat tabel di Amazon Redshift dan menyisipkan data sampel Anda ke dalam tabel, gunakan pernyataan SQL berikut:<pre>CREATE TABLE my_table (first_name varchar(30));<br /><br />INSERT INTO my_table (first_name)<br />VALUES<br />    ('ali'),<br />    ('Ali'),<br />    ('ırmak'),<br />    ('IRMAK'),<br />    ('irem'),<br />    ('İREM'),<br />    ('oğuz'),<br />    ('OĞUZ'),<br />    ('ömer'),<br />    ('ÖMER'),<br />    ('sedat'),<br />    ('SEDAT'),<br />    ('şule'),</pre>Nama-nama depan dalam data sampel termasuk karakter khusus dari alfabet Turki. Untuk informasi lebih lanjut tentang pertimbangan bahasa Turki untuk contoh ini, lihat *contoh bahasa Turki* di bagian *Informasi tambahan* dari pola ini. | Insinyur data | 
| Periksa penyortiran default dari data sampel. | Untuk melihat pengurutan default data sampel Anda di Amazon Redshift, jalankan kueri berikut:<pre>SELECT first_name FROM my_table ORDER BY first_name;</pre>Kueri mengembalikan daftar nama depan dari tabel yang Anda buat sebelumnya:<pre>first_name<br />---------------<br />Ali<br />IRMAK<br />OĞUZ<br />SEDAT<br />ali<br />irem<br />oğuz<br />sedat<br />ÖMER<br />ömer<br />İREM<br />ırmak<br />ŞULE<br />şule</pre>Hasil kueri tidak dalam urutan yang benar karena urutan UTF-8 biner default tidak mengakomodasi urutan linguistik karakter khusus Turki. | Insinyur data | 
| Buat UDF Python skalar. | Untuk membuat UDF Python skalar, gunakan kode SQL berikut: <pre>CREATE OR REPLACE FUNCTION collate_sort (value varchar) <br />RETURNS varchar <br />IMMUTABLE <br />AS <br />$$    <br />    def sort_str(val):<br />        import string<br />        <br />        dictionary = {<br />            'I': 'ı', <br />            'ı': 'h~', <br />            'İ': 'i', <br />            'Ş': 's~', <br />            'ş': 's~', <br />            'Ğ': 'g~', <br />            'ğ': 'g~', <br />            'Ü': 'u~', <br />            'ü': 'u~', <br />            'Ö': 'o~', <br />            'ö': 'o~', <br />            'Ç': 'c~', <br />            'ç': 'c~'<br />        }<br />        <br />        for key, value in dictionary.items():<br />            val = val.replace(key, value)<br />        <br />        return val.lower()<br /> <br />    return sort_str(value)<br />    <br />$$ LANGUAGE plpythonu;</pre> | Insinyur data | 
| Kueri data sampel. | Untuk melakukan query data sampel dengan menggunakan UDF Python, jalankan query SQL berikut:<pre>SELECT first_name FROM my_table ORDER BY collate_sort(first_name);</pre>Kueri sekarang mengembalikan data sampel dalam urutan linguistik Turki:<pre>first_name<br />---------------<br />ali<br />Ali<br />ırmak<br />IRMAK<br />irem<br />İREM<br />oğuz<br />OĞUZ<br />ömer<br />Ömer<br />sedat<br />SEDAT<br />şule<br />ŞULE</pre> | Insinyur data | 

## Sumber daya terkait
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-resources"></a>
+ [Klausul ORDER BY](https://docs.aws.amazon.com/redshift/latest/dg/r_ORDER_BY_clause.html) (dokumentasi Amazon Redshift)
+ [Membuat UDF Python skalar](https://docs.aws.amazon.com/redshift/latest/dg/udf-creating-a-scalar-udf.html) (dokumentasi Amazon Redshift)

## Informasi tambahan
<a name="set-up-language-specific-sorting-for-amazon-redshift-query-results-using-a-scalar-python-udf-additional"></a>

**Contoh bahasa Turki**

Amazon Redshift mengembalikan hasil kueri berdasarkan urutan pengurutan UTF-8 biner, bukan urutan pengurutan khusus bahasa. Ini berarti bahwa jika Anda menanyakan tabel Amazon Redshift yang berisi karakter Turki, maka hasil kueri tidak diurutkan menurut urutan linguistik bahasa Turki. Bahasa Turki berisi enam karakter khusus (ç, ı, ğ, ö, ş, dan ü) yang tidak muncul dalam alfabet Latin. Karakter khusus ini ditempatkan di akhir set hasil yang diurutkan berdasarkan urutan UTF-8 biner, seperti yang ditunjukkan tabel berikut.


| 
| 
| Pemesanan biner UTF-8 | Urutan linguistik Turki | 
| --- |--- |
| a | a | 
| b | b | 
| c | c | 
| d | **ç (\$1)** | 
| e | d | 
| f | e | 
| g | f | 
| -h | g | 
| saya | **ğ (\$1)** | 
| j | -h | 
| k | **ı (\$1)** | 
| l | saya | 
| m | j | 
| n | k | 
| o | l | 
| p | m | 
| r | n | 
| detik | o | 
| t | **ö (\$1)** | 
| u | p | 
| v | r | 
| y | detik | 
| z | **ş (\$1)** | 
| **ç (\$1)** | t | 
| **ğ (\$1)** | u | 
| **ı (\$1)** | **ü (\$1)** | 
| **ö (\$1)** | v | 
| **ş (\$1)** | y | 
| **ü (\$1)** | z | 

**catatan**  
Tanda bintang (\$1) menunjukkan karakter khusus dalam bahasa Turki.

Seperti yang diilustrasikan tabel di atas, karakter khusus **ç** adalah antara **c** dan **d** dalam urutan linguistik Turki, tetapi muncul setelah **z dalam urutan UTF-8** biner. UDF Python skalar dalam pola ini menggunakan kamus pengganti karakter berikut untuk menggantikan karakter khusus Turki dengan karakter setara Latin yang sesuai.


| 
| 
| Karakter khusus Turki | Karakter setara Latin | 
| --- |--- |
| ç | c \$1 | 
| ı | h \$1 | 
| ğ | g \$1 | 
| ö | o \$1 | 
| ş | s \$1 | 
| ü | u \$1 | 

**catatan**  
Karakter tilde (\$1) ditambahkan ke akhir karakter Latin yang menggantikan karakter khusus Turki yang sesuai.

**Memodifikasi fungsi UDF Python skalar**

Untuk memodifikasi fungsi UDF Python skalar dari pola ini sehingga fungsi menerima parameter locate dan mendukung kamus transaksi ganda, gunakan kode SQL berikut:

```
CREATE OR REPLACE FUNCTION collate_sort (value varchar, locale varchar) 
RETURNS varchar 
IMMUTABLE 
AS 
$$    
    def sort_str(val):
       import string
       # Turkish Dictionary
       if locale == 'tr-TR':
            dictionary = {
               'I': 'ı', 
               'ı': 'h~', 
               'İ': 'i', 
               'Ş': 's~', 
               'ş': 's~', 
               'Ğ': 'g~', 
               'ğ': 'g~', 
               'Ü': 'u~', 
               'ü': 'u~', 
               'Ö': 'o~', 
               'ö': 'o~', 
               'Ç': 'c~', 
               'ç': 'c~'
        }
        # German Dictionary
        if locale == 'de-DE':
            dictionary = {
               ....
               ....
        }
        
        for key, value in dictionary.items():
            val = val.replace(key, value)
        
        return val.lower()
 
    return sort_str(value)
    
$$ LANGUAGE plpythonu;
```

Kode contoh berikut menunjukkan bagaimana untuk query UDF Python dimodifikasi:

```
SELECT first_name FROM my_table ORDER BY collate_order(first_name, 'tr-TR');
```

# Berlangganan fungsi Lambda ke notifikasi acara dari bucket S3 di Wilayah AWS yang berbeda
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions"></a>

*Suresh Konathala, Amazon Web Services*

*Andrew Preston dan Arindom Sarkar, Tidak Ada*

## Ringkasan
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-summary"></a>

[Amazon Simple Storage Service (Amazon S3) Pemberitahuan Acara](https://docs.aws.amazon.com/AmazonS3/latest/userguide/NotificationHowTo.html) menerbitkan notifikasi untuk peristiwa tertentu di bucket S3 Anda (misalnya, peristiwa yang dibuat objek, peristiwa penghapusan objek, atau memulihkan peristiwa objek). Anda dapat menggunakan fungsi AWS Lambda untuk memproses notifikasi ini sesuai dengan persyaratan aplikasi Anda. Namun, fungsi Lambda tidak dapat langsung berlangganan notifikasi dari bucket S3 yang di-host di Wilayah AWS yang berbeda.

Pendekatan pola ini menerapkan [skenario fanout](https://docs.aws.amazon.com/sns/latest/dg/sns-common-scenarios.html) untuk memproses notifikasi Amazon S3 dari bucket S3 lintas wilayah dengan menggunakan topik Amazon Simple Notification Service (Amazon SNS) untuk setiap Wilayah. Topik SNS Regional ini mengirimkan notifikasi peristiwa Amazon S3 ke antrian Amazon Simple Queue Service (Amazon SQS) di Wilayah tengah yang juga berisi fungsi Lambda Anda. Fungsi Lambda berlangganan antrean SQS ini dan memproses pemberitahuan acara sesuai dengan kebutuhan organisasi Anda.

## Prasyarat dan batasan
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ Bucket S3 yang ada di beberapa Wilayah, termasuk Wilayah pusat untuk meng-host antrean Amazon SQS dan fungsi Lambda.
+ AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang ini, lihat [Menginstal, memperbarui, dan menghapus instalan AWS CLI dalam](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dokumentasi AWS CLI. 
+ Keakraban dengan skenario fanout di Amazon SNS. Untuk informasi selengkapnya tentang ini, lihat [Skenario Amazon SNS umum](https://docs.aws.amazon.com/sns/latest/dg/sns-common-scenarios.html) di dokumentasi Amazon SNS.

## Arsitektur
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-architecture"></a>

Diagram berikut menunjukkan arsitektur untuk pendekatan pola ini. 

![\[Alur kerja menggunakan Amazon SNS, S3, dan SQS untuk memproses notifikasi peristiwa dari bucket S3 lintas wilayah.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/cf6c1804-8c41-46f1-9f17-ff361708c595/images/760cf4c0-0cb3-48d1-92ae-1cf0fa8ae076.png)


Diagram menunjukkan alur kerja berikut:

1. Amazon S3 mengirimkan pemberitahuan peristiwa tentang bucket S3 (misalnya, objek yang dibuat, objek dihapus, atau objek dipulihkan) ke topik SNS di Wilayah yang sama.

1. Topik SNS menerbitkan acara ke antrian SQS di Wilayah tengah.

1. Antrian SQS dikonfigurasi sebagai sumber peristiwa untuk fungsi Lambda Anda dan buffer pesan acara untuk fungsi Lambda. 

1. Fungsi Lambda melakukan polling antrean SQS untuk pesan dan memproses notifikasi peristiwa Amazon S3 sesuai dengan kebutuhan aplikasi Anda.

 

**Tumpukan teknologi**
+ Lambda
+ Amazon SNS
+ Amazon SQS
+ Amazon S3

## Alat
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-tools"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) — AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) adalah alat sumber terbuka untuk berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda. Dengan konfigurasi minimal, Anda dapat menjalankan perintah AWS CLI yang mengimplementasikan fungsionalitas yang setara dengan yang disediakan oleh AWS Management Console berbasis browser dari prompt perintah.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) — AWS CloudFormation membantu Anda memodelkan dan menyiapkan sumber daya AWS Anda, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya. Anda dapat menggunakan template untuk mendeskripsikan sumber daya Anda dan dependensinya, dan meluncurkan dan mengonfigurasinya bersama-sama sebagai tumpukan, alih-alih mengelola sumber daya secara individual. Anda dapat mengelola dan menyediakan tumpukan di beberapa akun AWS dan Wilayah AWS.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda adalah layanan komputasi yang mendukung menjalankan kode tanpa menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda gunakan—tidak ada biaya saat kode Anda tidak berjalan.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) mengoordinasikan dan mengelola pengiriman atau pengiriman pesan antara penerbit dan klien, termasuk server web dan alamat email. Pelanggan menerima semua pesan yang dipublikasikan ke topik tempat mereka berlangganan, dan semua pelanggan ke suatu topik menerima pesan yang sama.
+ [Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) — Amazon Simple Queue Service (Amazon SQS) menawarkan antrian host yang aman, tahan lama, dan tersedia yang memungkinkan Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi. Amazon SQS mendukung antrian standar dan FIFO.

## Epik
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-epics"></a>

### Buat antrian SQS dan fungsi Lambda di Wilayah pusat Anda
<a name="create-the-sqs-queue-and-lambda-function-in-your-central-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat antrian SQS dengan pemicu Lambda. | Masuk ke AWS Management Console dan gunakan petunjuk dari tutorial [Menggunakan Lambda dengan Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs-example.html) di dokumentasi AWS Lambda untuk membuat sumber daya berikut di Wilayah pusat Anda:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions.html)Pastikan Anda mengonfigurasi antrian SQS sebagai sumber peristiwa untuk fungsi Lambda Anda. | AWS DevOps, arsitek Cloud | 

### Buat topik SNS dan atur notifikasi acara untuk bucket S3 di setiap Wilayah yang diperlukan
<a name="create-an-sns-topic-and-set-up-event-notifications-for-the-s3-buckets-in-each-required-region"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  Buat topik SNS untuk menerima pemberitahuan acara Amazon S3. | Buat topik SNS di Wilayah tempat Anda ingin menerima pemberitahuan acara Amazon S3. Untuk informasi selengkapnya tentang ini, lihat [Membuat topik SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) di dokumentasi Amazon SNS. Pastikan Anda merekam Nama Sumber Daya Amazon (ARN) topik SNS Anda.  | AWS DevOps, arsitek Cloud | 
| Berlangganan topik SNS ke antrian SQS pusat. | Berlangganan topik SNS Anda ke antrian SQS yang diselenggarakan oleh Wilayah pusat Anda. Untuk informasi selengkapnya tentang ini, lihat [Berlangganan topik SNS di dokumentasi](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) Amazon SNS. | AWS DevOps, arsitek Cloud | 
| Perbarui kebijakan akses topik SNS.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions.html)<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Sid": "0",<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Service": "s3.amazonaws.com"<br />      },<br />      "Action": "sns:Publish",<br />      "Resource": "arn:aws:sns:us-west-2::s3Events-SNSTopic-us-west-2"<br />    }<br />  ]<br />}</pre> | AWS DevOps, arsitek Cloud | 
| Siapkan notifikasi untuk setiap bucket S3 di Wilayah. | Siapkan notifikasi acara untuk setiap bucket S3 di Wilayah. Untuk informasi selengkapnya tentang hal ini, lihat [Mengaktifkan dan mengonfigurasi pemberitahuan peristiwa menggunakan konsol Amazon S3 dalam](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications.html) dokumentasi Amazon S3.Di bagian **Tujuan**, pilih **topik SNS** dan tentukan ARN dari topik SNS yang Anda buat sebelumnya. | AWS DevOps, arsitek Cloud | 
| Ulangi epik ini untuk semua Wilayah yang diperlukan. | Ulangi tugas dalam epik ini untuk setiap Wilayah tempat Anda ingin menerima pemberitahuan acara Amazon S3, termasuk Wilayah pusat Anda. | AWS DevOps, arsitek Cloud | 

## Sumber daya terkait
<a name="subscribe-a-lambda-function-to-event-notifications-from-s3-buckets-in-different-aws-regions-resources"></a>
+ [Mengkonfigurasi kebijakan akses (dokumentasi](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-add-permissions.html) Amazon SQS)
+ [Mengonfigurasi antrian SQS sebagai sumber peristiwa (dokumentasi AWS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource) Lambda)
+ [Mengkonfigurasi antrian SQS untuk memulai fungsi Lambda](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-lambda-function-trigger.html) (dokumentasi Amazon SQS)
+ [AWS::Lambda::Function sumber daya](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html) ( CloudFormation dokumentasi AWS)

# Tiga jenis pekerjaan AWS Glue ETL untuk mengonversi data ke Apache Parquet
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet"></a>

*Adnan Alvee, Nith Govindasivan, dan Karthikeyan Ramachandran, Amazon Web Services*

## Ringkasan
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-summary"></a>

Di Amazon Web Services (AWS) Cloud, AWS Glue adalah layanan ekstrak, transformasi, dan pemuatan (ETL) yang dikelola sepenuhnya. AWS Glue membuatnya hemat biaya untuk mengkategorikan data Anda, membersihkannya, memperkayanya, dan memindahkannya dengan andal di antara berbagai penyimpanan data dan aliran data.

Pola ini menyediakan jenis pekerjaan yang berbeda di AWS Glue dan menggunakan tiga skrip berbeda untuk mendemonstrasikan pembuatan pekerjaan ETL.

Anda dapat menggunakan AWS Glue untuk menulis pekerjaan ETL di lingkungan shell Python. Anda juga dapat membuat pekerjaan ETL batch dan streaming dengan menggunakan Python PySpark () atau Scala di lingkungan Apache Spark yang dikelola. Untuk membantu Anda memulai penulisan pekerjaan ETL, pola ini berfokus pada pekerjaan ETL batch menggunakan Python shell,, dan Scala. PySpark Pekerjaan shell Python dimaksudkan untuk beban kerja yang membutuhkan daya komputasi yang lebih rendah. Lingkungan Apache Spark yang dikelola dimaksudkan untuk beban kerja yang membutuhkan daya komputasi tinggi.

Apache Parquet dibangun untuk mendukung skema kompresi dan pengkodean yang efisien. Ini dapat mempercepat beban kerja analitik Anda karena menyimpan data secara kolumnar. Mengonversi data ke Parket dapat menghemat ruang penyimpanan, biaya, dan waktu Anda dalam jangka panjang. Untuk mempelajari lebih lanjut tentang Parket, lihat posting blog [Apache Parquet: Cara menjadi pahlawan dengan format data kolumnar sumber terbuka](https://blog.openbridge.com/how-to-be-a-hero-with-powerful-parquet-google-and-amazon-f2ae0f35ee04).

## Prasyarat dan batasan
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-prereqs"></a>

**Prasyarat**
+ Peran AWS Identity and Access Management (IAM) (Jika Anda tidak memiliki peran, lihat bagian [Informasi tambahan](#three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional).)

## Arsitektur
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-architecture"></a>

**Tumpukan teknologi target**
+ AWS Glue
+ Amazon Simple Storage Service (Amazon S3)
+ Apache Parquet

**Otomatisasi dan skala**
+ [Alur kerja AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/workflows_overview.html) mendukung otomatisasi penuh dari pipeline ETL.
+ Anda dapat mengubah jumlah unit pemrosesan data (DPUs), atau tipe pekerja, untuk menskalakan secara horizontal dan vertikal.

## Alat
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-tools"></a>

**Layanan AWS**
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) adalah layanan ETL yang dikelola sepenuhnya untuk mengkategorikan, membersihkan, memperkaya, dan memindahkan data Anda antara berbagai penyimpanan data dan aliran data.

**Alat-alat lainnya**
+ [Apache Parquet](https://parquet.apache.org/) adalah format file data berorientasi kolom sumber terbuka yang dirancang untuk penyimpanan dan pengambilan.

**Konfigurasi**

Gunakan pengaturan berikut untuk mengonfigurasi daya komputasi AWS Glue ETL. Untuk mengurangi biaya, gunakan pengaturan minimal saat Anda menjalankan beban kerja yang disediakan dalam pola ini. 
+ **Python shell** — Anda dapat menggunakan 1 DPU untuk memanfaatkan 16 GB memori atau 0.0625 DPU untuk memanfaatkan 1 GB memori. Pola ini menggunakan 0,0625 DPU, yang merupakan default di konsol AWS Glue.
+ **Python atau Scala untuk Spark** - Jika Anda memilih jenis pekerjaan terkait Spark di konsol, AWS Glue secara default menggunakan 10 pekerja dan tipe pekerja G.1X. Pola ini menggunakan dua pekerja, yang merupakan jumlah minimum yang diperbolehkan, dengan tipe pekerja standar, yang cukup dan hemat biaya.

Tabel berikut menampilkan berbagai jenis pekerja AWS Glue untuk lingkungan Apache Spark. Karena pekerjaan shell Python tidak menggunakan lingkungan Apache Spark untuk menjalankan Python, itu tidak termasuk dalam tabel.


| 
| 
|  | Standar | G.1X | G.2X | 
| --- |--- |--- |--- |
| vCPU | 4 | 4 | 8 | 
| Memori | 16 GB | 16 GB | 32 GB | 
| Ruang disk | 50 GB | 64 GB | 128 GB | 
| Pelaksana per pekerja | 2 | 1  | 1 | 

**Kode**

Untuk kode yang digunakan dalam pola ini, termasuk peran IAM dan konfigurasi parameter, lihat bagian [Informasi tambahan](#three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional).

## Epik
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-epics"></a>

### Unggah datanya
<a name="upload-the-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah data ke bucket S3 baru atau yang sudah ada. | Buat atau gunakan bucket S3 yang ada di akun Anda. Unggah file sample\$1data.csv dari bagian [Lampiran](#attachments-8c926709-8fa4-417f-9aaf-bcc8113d018f), dan perhatikan bucket S3 dan lokasi awalan. | AWS Umum | 

### Membuat dan menjalankan pekerjaan AWS Glue
<a name="create-and-run-the-aws-glue-job"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pekerjaan AWS Glue. | Di bawah bagian ETL konsol AWS Glue, tambahkan pekerjaan AWS Glue. Pilih jenis pekerjaan yang sesuai, versi AWS Glue, dan DPU/Worker jenis serta jumlah pekerja yang sesuai. Untuk detailnya, lihat bagian *Konfigurasi*. | Pengembang, cloud atau data | 
| Ubah lokasi input dan output. | Salin kode yang sesuai dengan tugas AWS Glue Anda, dan ubah lokasi input dan output yang Anda catat dalam epik **Unggah data**. | Pengembang, cloud atau data | 
| Konfigurasikan parameter. | Anda dapat menggunakan cuplikan yang disediakan di bagian [Informasi tambahan](#three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional) untuk mengatur parameter untuk pekerjaan ETL Anda. AWS Glue menggunakan empat nama argumen secara internal:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet.html)`--JOB_NAME`Parameter harus dimasukkan secara eksplisit pada konsol AWS Glue. Pilih **Pekerjaan**, **Edit Job**, **Konfigurasi keamanan, pustaka skrip, dan parameter pekerjaan (opsional)**. Masukkan `--JOB_NAME` sebagai kunci dan berikan nilai. Anda juga dapat menggunakan AWS Command Line Interface (AWS CLI) atau AWS Glue API untuk mengatur parameter ini. `--JOB_NAME`Parameter ini digunakan oleh Spark dan tidak diperlukan dalam pekerjaan lingkungan shell Python.Anda harus menambahkan `--` sebelum setiap nama parameter; jika tidak, kode tidak akan berfungsi. Misalnya, untuk cuplikan kode, parameter lokasi harus dipanggil oleh dan. `--input_loc` `--output_loc` | Pengembang, cloud atau data | 
| Jalankan pekerjaan ETL. | Jalankan pekerjaan Anda dan periksa hasilnya. Perhatikan berapa banyak ruang yang dikurangi dari file asli. | Pengembang, cloud atau data | 

## Sumber daya terkait
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-resources"></a>

**Referensi**
+ [Apache Spark](https://spark.apache.org/)
+ [AWS Glue: Cara kerjanya](https://docs.aws.amazon.com/glue/latest/dg/how-it-works.html)
+ [Harga AWS Glue](https://aws.amazon.com/glue/pricing/)

**Tutorial dan video**
+ [Apa itu AWS Glue?](https://www.youtube.com/watch?v=qgWMfNSN9f4)

## Informasi tambahan
<a name="three-aws-glue-etl-job-types-for-converting-data-to-apache-parquet-additional"></a>

**Peran IAM**

Saat membuat pekerjaan AWS Glue, Anda dapat menggunakan peran IAM yang ada yang memiliki izin yang ditampilkan dalam cuplikan kode berikut atau peran baru.

Untuk membuat peran baru, gunakan kode YAMB berikut.

```
# (c) 2022 Amazon Web Services, Inc. or its affiliates. All Rights Reserved. This AWS Content is provided subject to the terms of the AWS Customer
# Agreement available at https://aws.amazon.com/agreement/ or other written agreement between Customer and Amazon Web Services, Inc.

AWSTemplateFormatVersion: "2010-09-09"

Description: This template will setup IAM role for AWS Glue service.

Resources:
  rGlueRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: "Allow"
            Principal:
              Service:
                - "glue.amazonaws.com"
            Action:
              - "sts:AssumeRole"
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole
      Policies:
        - PolicyName: !Sub "${AWS::StackName}-s3-limited-read-write-inline-policy"
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - "s3:PutObject"
                  - "s3:GetObject"
                Resource: "arn:aws:s3:::*/*"
      Tags:
        - Key  : "Name"
          Value : !Sub "${AWS::StackName}"

Outputs:
  oGlueRoleName:
    Description: AWS Glue IAM role
    Value:
      Ref: rGlueRole
    Export:
      Name: !Join [ ":", [ !Ref "AWS::StackName", rGlueRole ] ]
```

**AWS Glue Python Shell**

Kode Python menggunakan Pandas dan PyArrow pustaka untuk mengkonversi data ke Parquet. Perpustakaan Pandas sudah tersedia. PyArrow Pustaka diunduh saat Anda menjalankan pola, karena ini adalah proses satu kali. Anda dapat menggunakan file roda PyArrow untuk mengonversi ke perpustakaan dan menyediakan file sebagai paket perpustakaan. Untuk informasi selengkapnya tentang mengemas file roda, lihat [Menyediakan pustaka Python Anda sendiri](https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html).

*Parameter cangkang AWS Glue Python*

```
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv, ["input_loc", "output_loc"])
```

*Kode shell AWS Glue Python*

```
from io import BytesIO
import pandas as pd
import boto3
import os
import io
import site
from importlib import reload
from setuptools.command import easy_install
install_path = os.environ['GLUE_INSTALLATION']
easy_install.main( ["--install-dir", install_path, "pyarrow"] )
reload(site)
import pyarrow


input_loc = "s3://bucket-name/prefix/sample_data.csv"
output_loc = "s3://bucket-name/prefix/"


input_bucket = input_loc.split('/', 1)[0]
object_key = input_loc.split('/', 1)[1]


output_loc_bucket = output_loc.split('/', 1)[0]
output_loc_prefix = output_loc.split('/', 1)[1] 


s3 = boto3.client('s3')
obj = s3.get_object(Bucket=input_bucket, Key=object_key)
df = pd.read_csv(io.BytesIO(obj['Body'].read()))


parquet_buffer = BytesIO()
s3_resource = boto3.resource('s3')
df.to_parquet(parquet_buffer, index=False) 
s3_resource.Object(output_loc_bucket, output_loc_prefix +  'data' + '.parquet').put(Body=parquet_buffer.getvalue())
```

**Pekerjaan AWS Glue Spark dengan Python**

Untuk menggunakan jenis pekerjaan AWS Glue Spark dengan Python, **pilih** Spark sebagai jenis pekerjaan. Pilih **Spark 3.1, Python 3 dengan waktu startup pekerjaan yang ditingkatkan (Glue Version 3.0) sebagai versi** AWS Glue.

*Parameter AWS Glue Python*

```
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv, ["JOB_NAME", "input_loc", "output_loc"])
```

*Pekerjaan AWS Glue Spark dengan kode Python*

```
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.transforms import *
from awsglue.dynamicframe import DynamicFrame
from awsglue.utils import getResolvedOptions
from awsglue.job import Job


sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)

input_loc = "s3://bucket-name/prefix/sample_data.csv"
output_loc = "s3://bucket-name/prefix/"

inputDyf = glueContext.create_dynamic_frame_from_options(\
    connection_type = "s3", \
    connection_options = { 
        "paths": [input_loc]}, \
    format = "csv",
    format_options={
        "withHeader": True,
        "separator": ","
    })


outputDF = glueContext.write_dynamic_frame.from_options(\
    frame = inputDyf, \
    connection_type = "s3", \
    connection_options = {"path": output_loc \
        }, format = "parquet")
```

Untuk sejumlah besar file besar terkompresi (misalnya, 1.000 file yang masing-masing sekitar 3 MB), gunakan `compressionType` parameter dengan `recurse` parameter untuk membaca semua file yang tersedia dalam awalan, seperti yang ditunjukkan pada kode berikut.

```
input_loc = "bucket-name/prefix/"
output_loc = "bucket-name/prefix/"

inputDyf = glueContext.create_dynamic_frame_from_options(
                    connection_type = "s3", 
                    connection_options = {"paths": [input_loc], 
                                            "compressionType":"gzip","recurse" :"True",
                                            },
                    format = "csv",
                    format_options={"withHeader": True,"separator": ","}
                    )
```

Untuk sejumlah besar file kecil terkompresi (misalnya, 1.000 file yang masing-masing sekitar 133 KB), gunakan `groupFiles` parameter, bersama dengan parameter `compressionType` dan parameter. `recurse` `groupFiles`Parameter mengelompokkan file kecil menjadi beberapa file besar, dan `groupSize` parameter mengontrol pengelompokan ke ukuran yang ditentukan dalam byte (misalnya, 1 MB). Cuplikan kode berikut memberikan contoh penggunaan parameter ini dalam kode.

```
input_loc = "bucket-name/prefix/"
output_loc = "bucket-name/prefix/"

inputDyf = glueContext.create_dynamic_frame_from_options(
                    connection_type = "s3", 
                    connection_options = {"paths": [input_loc], 
                                            "compressionType":"gzip","recurse" :"True",
                                             "groupFiles" :"inPartition",  "groupSize" :"1048576",
                                            },
                    format = "csv",
                    format_options={"withHeader": True,"separator": ","}
                    )
```

Tanpa perubahan apa pun pada node pekerja, pengaturan ini memungkinkan pekerjaan AWS Glue membaca banyak file (besar atau kecil, dengan atau tanpa kompresi) dan menuliskannya ke target dalam format Parket.

**Pekerjaan AWS Glue Spark dengan Scala**

**Untuk menggunakan jenis pekerjaan AWS Glue Spark dengan Scala, pilih **Spark** sebagai tipe pekerjaan dan **Bahasa** sebagai Scala.** Pilih **Spark 3.1, Scala 2 dengan waktu startup pekerjaan yang ditingkatkan (Glue Version 3.0) sebagai versi** AWS Glue. Untuk menghemat ruang penyimpanan, sampel AWS Glue with Scala berikut juga menggunakan `applyMapping` fitur untuk mengonversi tipe data.

*Parameter AWS Glue Scala*

```
import com.amazonaws.services.glue.util.GlueArgParser val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME", "inputLoc", "outputLoc").toArray)
```

*Pekerjaan AWS Glue Spark dengan kode Scala*

```
import com.amazonaws.services.glue.GlueContext
import com.amazonaws.services.glue.MappingSpec
import com.amazonaws.services.glue.DynamicFrame
import com.amazonaws.services.glue.errors.CallSite
import com.amazonaws.services.glue.util.GlueArgParser
import com.amazonaws.services.glue.util.Job
import com.amazonaws.services.glue.util.JsonOptions
import org.apache.spark.SparkContext
import scala.collection.JavaConverters._


object GlueScalaApp {
  def main(sysArgs: Array[String]) {
    
    @transient val spark: SparkContext = SparkContext.getOrCreate()
    val glueContext: GlueContext = new GlueContext(spark)

    val inputLoc = "s3://bucket-name/prefix/sample_data.csv"
    val outputLoc = "s3://bucket-name/prefix/"

    val readCSV = glueContext.getSource("csv", JsonOptions(Map("paths" -> Set(inputLoc)))).getDynamicFrame()

    val applyMapping = readCSV.applyMapping(mappings = Seq(("_c0", "string", "date", "string"), ("_c1", "string", "sales", "long"),
    ("_c2", "string", "profit", "double")), caseSensitive = false)

    val formatPartition = applyMapping.toDF().coalesce(1)

    val dynamicFrame = DynamicFrame(formatPartition, glueContext)

    val dataSink = glueContext.getSinkWithFormat(
        connectionType = "s3", 
        options = JsonOptions(Map("path" -> outputLoc )),
        transformationContext = "dataSink", format = "parquet").writeDynamicFrame(dynamicFrame)
  }
}
```

## Lampiran
<a name="attachments-8c926709-8fa4-417f-9aaf-bcc8113d018f"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/8c926709-8fa4-417f-9aaf-bcc8113d018f/attachments/attachment.zip)

# Visualisasikan log audit Amazon Redshift menggunakan Amazon Athena dan Amazon QuickSight
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight"></a>

*Sanket Sirsikar dan Gopal Krishna Bhatia, Amazon Web Services*

## Ringkasan
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-summary"></a>

Keamanan merupakan bagian integral dari operasi database di Amazon Web Services (AWS) Cloud. Organisasi Anda harus memastikan bahwa ia memantau aktivitas dan koneksi pengguna basis data untuk mendeteksi potensi insiden dan risiko keamanan. Pola ini membantu Anda memantau database Anda untuk tujuan keamanan dan pemecahan masalah, yang merupakan proses yang dikenal sebagai audit basis data.

 Pola ini menyediakan skrip SQL yang mengotomatiskan pembuatan tabel Amazon Athena dan tampilan untuk dasbor pelaporan di Amazon yang membantu Anda QuickSight mengaudit log Amazon Redshift. Ini memastikan bahwa pengguna yang bertanggung jawab untuk memantau aktivitas database memiliki akses mudah ke fitur keamanan data.  

## Prasyarat dan batasan
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Cluster Amazon Redshift yang ada. Untuk informasi selengkapnya tentang ini, lihat [Membuat klaster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-data-launch-cluster.html) di dokumentasi Amazon Redshift.
+ Akses ke workgroup Athena yang ada. Untuk informasi selengkapnya, lihat [Cara kerja kelompok kerja](https://docs.aws.amazon.com/athena/latest/ug/user-created-workgroups.html) di dokumentasi Amazon Athena. 
+ Bucket sumber Amazon Simple Storage Service (Amazon S3) yang sudah ada dengan izin AWS Identity and Access Management (IAM) yang diperlukan. Untuk informasi selengkapnya, lihat [Izin Bucket untuk pencatatan audit Amazon Redshift dari pencatatan audit](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-bucket-permissions) [Database](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html) di dokumentasi Amazon Redshift.

## Arsitektur
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-architecture"></a>

![\[Data flow diagram showing Amazon Redshift, logs, S3 bucket, Amazon Athena, and Amazon Quick.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/90e69009-001e-4ced-bef0-3c361f93ae87/images/9fde7f01-17ab-4207-8a59-a12daf85a382.png)


 

**Tumpukan teknologi**
+ Athena
+ Amazon Redshift 
+ Amazon S3 
+ QuickSight

## Alat
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-tools"></a>
+ [Amazon Athena -](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) Athena adalah layanan kueri interaktif yang memudahkan untuk menganalisis data di Amazon S3 menggunakan SQL standar. 
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) - QuickSight adalah layanan intelijen bisnis (BI) yang dapat diskalakan, tanpa server, dapat disematkan, dan didukung pembelajaran mesin. 
+ [Amazon Redshift — Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) adalah layanan pergudangan data tingkat perusahaan, skala petabyte, dan terkelola sepenuhnya. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) - Amazon Simple Storage Service (Amazon S3) Simple Storage Service adalah penyimpanan untuk internet.

## Epik
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-epics"></a>

### Konfigurasikan cluster Amazon Redshift
<a name="configure-the-amazon-redshift-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
|  Aktifkan pencatatan audit untuk klaster Amazon Redshift. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight.html) | DBA, Insinyur data | 
| Aktifkan logging di grup parameter cluster Amazon Redshift. | Anda dapat mengaktifkan audit log koneksi, log pengguna, dan log aktivitas pengguna secara bersamaan dengan menggunakan AWS Management Console, referensi Amazon Redshift API, atau AWS Command Line Interface (AWS CLI).  Untuk mengaudit log aktivitas pengguna, Anda harus mengaktifkan parameter `enable_user_activity_logging` database. Jika Anda hanya mengaktifkan fitur audit logging tetapi bukan parameter terkait, audit database mencatat informasi logging untuk koneksi dan log pengguna tetapi tidak untuk log aktivitas pengguna. `enable_user_activity_logging`Parameter tidak diaktifkan secara default, tetapi Anda dapat mengaktifkannya dengan mengubahnya dari `false` ke`true`.Anda perlu membuat grup parameter cluster baru dengan `user_activity_logging` parameter diaktifkan dan melampirkannya ke cluster Amazon Redshift Anda. Untuk informasi selengkapnya tentang hal ini, lihat [Memodifikasi klaster](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#modify-cluster) di dokumentasi Amazon Redshift.Untuk informasi selengkapnya tentang tugas ini, lihat [grup parameter Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html) dan [Mengonfigurasi audit menggunakan konsol dalam dokumentasi](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing-console.html) Amazon Redshift. | DBA, Insinyur data | 
| Konfigurasikan izin bucket S3 untuk pencatatan klaster Amazon Redshift. | Saat Anda mengaktifkan logging, Amazon Redshift mengumpulkan informasi pencatatan dan mengunggahnya ke file log yang disimpan dalam bucket S3. Anda dapat menggunakan bucket S3 yang sudah ada atau membuat bucket baru.Pastikan Amazon Redshift memiliki izin IAM yang diperlukan untuk mengakses bucket S3. Untuk informasi selengkapnya tentang hal ini, lihat [Izin Bucket untuk pencatatan audit Amazon Redshift dari pencatatan audit](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-bucket-permissions) [Database](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html) di dokumentasi Amazon Redshift. | DBA, Insinyur data | 

### Buat tabel dan tampilan Athena
<a name="create-the-athena-table-and-views"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat tabel Athena dan tampilan untuk menanyakan data log audit Amazon Redshift dari bucket S3. | Buka konsol Amazon Athena dan gunakan kueri bahasa definisi data (DDL) dari skrip `AuditLogging.sql` SQL (terlampir) untuk membuat tabel dan tampilan untuk log aktivitas pengguna, log pengguna, dan log koneksi.Untuk informasi dan petunjuk selengkapnya, lihat tutorial [Buat tabel dan jalankan kueri](https://athena-in-action.workshop.aws/30-basics/301-create-tables.html) dari Amazon Athena Workshop. | Insinyur data | 

### Siapkan pemantauan log di QuickSight dasbor
<a name="set-up-log-monitoring-in-the-quicksight-dashboard"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat QuickSight dasbor menggunakan Athena sebagai sumber data. | Buka QuickSight konsol Amazon dan buat QuickSight dasbor dengan mengikuti petunjuk di [Visualize with QuickSight using Athena tutorial dari Amazon Athena](https://athena-in-action.workshop.aws/30-basics/307-quicksight.html) Workshop. | DBA, Insinyur data | 

## Sumber daya terkait
<a name="visualize-amazon-redshift-audit-logs-using-amazon-athena-and-amazon-quicksight-resources"></a>
+ [Buat tabel dan jalankan kueri di Athena](https://athena-in-action.workshop.aws/30-basics/301-create-tables.html)
+ [Visualisasikan dengan QuickSight menggunakan Athena](https://athena-in-action.workshop.aws/30-basics/307-quicksight.html)

## Lampiran
<a name="attachments-90e69009-001e-4ced-bef0-3c361f93ae87"></a>

[Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip](samples/p-attach/90e69009-001e-4ced-bef0-3c361f93ae87/attachments/attachment.zip)

# Visualisasikan laporan kredensi IAM untuk semua akun AWS menggunakan Amazon Quick Sight
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight"></a>

*Parag Nagwekar dan Arun Chandapillai, Amazon Web Services*

## Ringkasan
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-summary"></a>


| 
| 
| Peringatan: Pengguna IAM memiliki kredensi jangka panjang, yang menghadirkan risiko keamanan. Untuk membantu mengurangi risiko ini, kami menyarankan agar Anda memberikan pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. | 
| --- |

Anda dapat menggunakan laporan kredensi AWS Identity and Access Management (IAM) untuk membantu Anda memenuhi persyaratan keamanan, audit, dan kepatuhan organisasi Anda. [Laporan kredensyal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html) menyediakan daftar semua pengguna di akun AWS Anda dan menunjukkan status kredensialnya, seperti kata sandi, kunci akses, dan perangkat autentikasi multi-faktor (MFA). Anda dapat menggunakan laporan kredensyal untuk beberapa akun AWS yang dikelola oleh [AWS Organizations](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/core-concepts.html).

Pola ini mencakup langkah-langkah dan kode untuk membantu Anda membuat dan membagikan laporan kredensi IAM untuk semua akun AWS di organisasi Anda dengan menggunakan dasbor Amazon Quick Sight. Anda dapat berbagi dasbor dengan pemangku kepentingan di organisasi Anda. Laporan dapat membantu organisasi Anda mencapai hasil bisnis yang ditargetkan berikut:
+ Identifikasi insiden keamanan yang terkait dengan pengguna IAM
+ Lacak migrasi real-time pengguna IAM ke otentikasi sistem masuk tunggal (SSO)
+ Lacak Wilayah AWS yang diakses oleh pengguna IAM
+ Tetap patuh
+ Berbagi informasi dengan pemangku kepentingan lainnya

## Prasyarat dan batasan
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ [Organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tutorials_basic.html) dengan akun anggota
+ [Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) dengan izin untuk mengakses akun di Organizations
+ [AWS Command Line Interface (AWS CLI) versi 2[,](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions) diinstal dan dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [Berlangganan](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) [edisi Amazon Quick Enterprise](https://docs.aws.amazon.com/quicksight/latest/user/editions.html)

## Arsitektur
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-architecture"></a>

**Tumpukan teknologi**
+ Amazon Athena
+ Amazon EventBridge
+ Penglihatan Cepat Amazon
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Glue
+ AWS Identity and Access Management (IAM)
+ AWS Lambda
+ AWS Organizations

**Arsitektur target**

Diagram berikut menunjukkan arsitektur untuk menyiapkan alur kerja yang menangkap data laporan kredensyal IAM dari beberapa akun AWS.

![\[Screenshot berikut menggambarkan diagram arsitektur\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8724ff28-40f6-4c43-9c65-fbd18bbbfd0f/images/e780916a-4ab7-4fdc-8ecc-c837c7d90d13.png)


1. EventBridge memanggil fungsi Lambda setiap hari.

1. Fungsi Lambda mengasumsikan peran IAM di setiap akun AWS di seluruh organisasi. Kemudian, fungsi membuat laporan kredensyal IAM dan menyimpan data laporan dalam bucket S3 terpusat. Anda harus mengaktifkan enkripsi dan menonaktifkan akses publik pada bucket S3.

1. Crawler AWS Glue merayapi bucket S3 setiap hari dan memperbarui tabel Athena yang sesuai.

1. Quick Sight mengimpor dan menganalisis data dari laporan kredensyal dan membangun dasbor yang dapat divisualisasikan oleh dan dibagikan dengan pemangku kepentingan.

## Alat
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang memudahkan untuk menganalisis data di Amazon S3 dengan menggunakan SQL standar.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, fungsi Lambda, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di akun AWS lainnya.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor. Quick Sight adalah komponen inti dalam Amazon Quick, menyediakan visualisasi data interaktif, analisis dalam memori SPICE, analitik tertanam, dan berbagi dasbor.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

**Kode**

Kode untuk pola ini tersedia di GitHub [getiamcredsreport-allaccounts-org](https://github.com/aws-samples/getiamcredsreport-allaccounts-org)repositori. Anda dapat menggunakan kode dari repositori ini untuk membuat laporan kredensi IAM di seluruh akun AWS di Organizations dan menyimpannya di lokasi pusat.

## Epik
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-epics"></a>

### Menyiapkan infrastruktur
<a name="set-up-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan edisi Amazon Quick Enterprise. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | Administrator AWS, AWS DevOps, administrator Cloud, arsitek Cloud | 
| Integrasikan Amazon Quick Sight dengan Amazon S3 dan Athena. | Anda harus [mengotorisasi](https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-connect-to-datasources.html) Quick Sight untuk menggunakan Amazon S3 dan Athena sebelum Anda menerapkan tumpukan AWS. CloudFormation  | Administrator AWS, AWS DevOps, administrator Cloud, arsitek Cloud | 

### Menyebarkan infrastruktur
<a name="deploy-the-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning GitHub repositori. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | Administrator AWS | 
| Menyebarkan infrastruktur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | Administrator AWS | 
| Buat kebijakan izin IAM. | [Buat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) untuk setiap akun AWS di seluruh organisasi Anda dengan izin berikut:<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "Action": [<br />        "iam:GenerateCredentialReport",<br />        "iam:GetCredentialReport"<br />        ],<br />      "Resource": "*"<br />    }<br />  ]<br />}</pre> | AWS DevOps, Administrator Cloud, Arsitek cloud, Insinyur data | 
| Buat peran IAM dengan kebijakan kepercayaan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html)<pre>{<br />   "Version": "2012-10-17",		 	 	 <br />   "Statement":[<br />      {<br />         "Effect":"Allow",<br />         "Principal":{<br />            "AWS":[<br />               "arn:aws:iam::<MasterAccountID>:role/<LambdaRole>"<br />            ]<br />         },<br />         "Action":"sts:AssumeRole"<br />      }<br />   ]<br />}</pre>Ganti `arn:aws:iam::<MasterAccountID>:role/<LambdaRole>` dengan ARN dari peran Lambda yang Anda catat sebelumnya.Organizations biasanya menggunakan otomatisasi untuk membuat peran IAM untuk akun AWS mereka. Kami menyarankan Anda menggunakan otomatisasi ini, jika tersedia. Atau, Anda dapat menggunakan `CreateRoleforOrg.py` skrip dari**** repositori kode. Skrip memerlukan peran administratif yang ada atau peran IAM lainnya yang memiliki izin untuk membuat kebijakan dan peran IAM di setiap akun AWS. | Administrator cloud, arsitek Cloud, administrator AWS | 
| Konfigurasikan Amazon Quick Sight untuk memvisualisasikan data. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight.html) | AWS DevOps, Administrator Cloud, Arsitek cloud, Insinyur data | 

## Informasi tambahan
<a name="visualize-iam-credential-reports-for-all-aws-accounts-using-amazon-quicksight-additional"></a>

**Pertimbangan tambahan**

Pertimbangkan hal berikut:
+ Setelah menggunakan CloudFormation infrastruktur, Anda dapat menunggu laporan yang dibuat di Amazon S3 dan dianalisis oleh Athena hingga Lambda dan AWS Glue berjalan sesuai jadwal mereka. Atau, Anda dapat menjalankan Lambda secara manual untuk mendapatkan laporan di Amazon S3, lalu menjalankan crawler AWS Glue untuk mendapatkan tabel Athena yang dibuat dari data.
+ Quick adalah alat yang ampuh untuk menganalisis dan memvisualisasikan data berdasarkan kebutuhan bisnis Anda. Anda dapat menggunakan [parameter](https://docs.aws.amazon.com/quicksight/latest/user/parameters-in-quicksight.html) di Quick untuk mengontrol data widget berdasarkan bidang data yang Anda pilih. Selain itu, Anda dapat menggunakan analisis Cepat untuk membuat parameter (misalnya, bidang Akun, Tanggal, dan Pengguna seperti`partition_0`,`partition_1`, dan `user` masing-masing) dari kumpulan data Anda untuk menambahkan kontrol parameter untuk Akun, Tanggal, dan Pengguna.
+ Untuk membuat dasbor Quick Sight Anda sendiri, lihat Lokakarya [Cepat dari situs web](https://catalog.workshops.aws/quicksight/en-US) AWS Workshop Studio.
+ Untuk melihat contoh dasbor Quick Sight, lihat repositori GitHub [getiamcredsreport-allaccounts-org](https://github.com/aws-samples/getiamcredsreport-allaccounts-org)kode.

**Hasil bisnis yang ditargetkan**

Anda dapat menggunakan pola ini untuk mencapai hasil bisnis yang ditargetkan berikut:
+ **Identifikasi insiden keamanan yang terkait dengan pengguna IAM** — Selidiki setiap pengguna di setiap akun AWS di organisasi Anda dengan menggunakan satu panel kaca. Anda dapat melacak tren Wilayah AWS individual yang paling baru diakses pengguna IAM dan layanan yang mereka gunakan.
+ **Lacak migrasi real-time pengguna IAM ke otentikasi SSO** — Dengan menggunakan SSO, pengguna dapat masuk sekali dengan satu kredensi dan mengakses beberapa akun dan aplikasi AWS. Jika Anda berencana untuk memigrasikan pengguna IAM ke SSO, pola ini dapat membantu Anda beralih ke SSO dan melacak semua penggunaan kredensi pengguna IAM (seperti akses ke AWS Management Console atau penggunaan kunci akses) di semua akun AWS.
+ **Lacak Wilayah AWS yang diakses oleh pengguna IAM** — Anda dapat mengontrol akses pengguna IAM ke Wilayah untuk berbagai tujuan, seperti kedaulatan data dan pengendalian biaya. Anda juga dapat melacak penggunaan Wilayah oleh setiap pengguna IAM.
+ **Tetap patuh** - Dengan mengikuti prinsip hak istimewa terkecil, Anda hanya dapat memberikan izin IAM tertentu yang diperlukan untuk melakukan tugas tertentu. Selain itu, Anda dapat melacak akses ke layanan AWS, AWS Management Console, dan penggunaan kredensyal jangka panjang.
+ **Berbagi informasi dengan pemangku kepentingan lainnya** — Anda dapat berbagi dasbor yang dikuratori dengan pemangku kepentingan lainnya, tanpa memberi mereka akses ke laporan kredensi IAM atau akun AWS.

# Lebih banyak pola
<a name="analytics-more-patterns-pattern-list"></a>

**Topics**
+ [Mengautentikasi pengguna aplikasi React yang ada dengan menggunakan Amazon Cognito dan AWS Amplify UI](authenticate-react-app-users-cognito-amplify-ui.md)
+ [Secara otomatis mengekstrak konten dari file PDF menggunakan Amazon Ttract](automatically-extract-content-from-pdf-files-using-amazon-textract.md)
+ [Buat model peramalan awal dingin dengan menggunakan DeepAR untuk deret waktu di SageMaker Amazon AI Studio Lab](build-a-cold-start-forecasting-model-by-using-deepar.md)
+ [Membuat laporan biaya dan penggunaan terperinci untuk klaster EMR Amazon dengan menggunakan AWS Cost Explorer](create-detailed-cost-and-usage-reports-for-amazon-emr-clusters-by-using-aws-cost-explorer.md)
+ [Buat laporan biaya dan penggunaan terperinci untuk Amazon RDS dan Amazon Aurora](create-detailed-cost-and-usage-reports-for-amazon-rds-and-amazon-aurora.md)
+ [Buat laporan biaya dan penggunaan terperinci untuk pekerjaan AWS Glue dengan menggunakan AWS Cost Explorer](create-detailed-cost-and-usage-reports-for-aws-glue-jobs-by-using-aws-cost-explorer.md)
+ [Mengirimkan data DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose dengan AWS CDK](deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.md)
+ [Menerapkan pekerjaan AWS Glue dengan pipeline AWS CodePipeline CI/CD](deploy-an-aws-glue-job-with-an-aws-codepipeline-ci-cd-pipeline.md)
+ [Sematkan komponen visual Amazon Quick Sight ke dalam aplikasi web dengan menggunakan otomatisasi Amazon Cognito dan IAc](embed-quick-sight-visual-components-into-web-apps-cognito-iac.md)
+ [Perkirakan biaya penyimpanan untuk tabel Amazon DynamoDB](estimate-storage-costs-for-an-amazon-dynamodb-table.md)
+ [Jalankan kueri Amazon Redshift SQL dengan menggunakan Terraform](execute-redshift-sql-queries-using-terraform.md)
+ [Ekstrak dan kueri atribut AWS IoT SiteWise metadata di danau data](extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake.md)
+ [Hasilkan wawasan data dengan menggunakan AWS Mainframe Modernization dan Amazon Q di Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Hasilkan wawasan z/OS data Db2 dengan menggunakan dan AWS Mainframe Modernization Amazon Q di Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Berikan instans SageMaker notebook akses sementara ke CodeCommit repositori di akun AWS lain](give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account.md)
+ [Identifikasi dan beri tahu kapan sumber daya Amazon Data Firehose tidak dienkripsi dengan kunci AWS KMS](identify-and-alert-when-amazon-data-firehose-resources-are-not-encrypted-with-an-aws-kms-key.md)
+ [Impor pustaka psycopg2 AWS Lambda untuk berinteraksi dengan database PostgreSQL Anda](import-psycopg2-library-lambda.md)
+ [Menyerap dan menganalisis log keamanan AWS di Microsoft Sentinel](ingest-analyze-aws-security-logs-sentinel.md)
+ [Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dalam mode SSL dengan menggunakan AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrasikan database Oracle ke Amazon RDS for Oracle dengan menggunakan adaptor file datar Oracle GoldenGate](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Migrasikan Database Oracle ke Amazon Redshift menggunakan AWS DMS dan AWS SCT](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Memigrasikan data dari lingkungan Hadoop lokal ke Amazon S3 menggunakan AWS untuk Amazon S3 DistCp PrivateLink](migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.md)
+ [Migrasi dari Couchbase Server ke Couchbase Capella di AWS](migrate-from-couchbase-server-to-couchbase-capella-on-aws.md)
+ [Memigrasikan beban kerja Cloudera lokal ke Platform Data Cloudera di AWS](migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.md)
+ [Kelola failover Multi-AZ untuk cluster EMR dengan menggunakan Application Recovery Controller](multi-az-failover-spark-emr-clusters-arc.md)
+ [Mengotomatiskan blue/green penyebaran database global Amazon Aurora dengan menggunakan prinsip IAc](p-automate-blue-green-deployments-aurora-global-databases-iac.md)
+ [Menyediakan AWS Service Catalog produk berdasarkan AWS CloudFormation template dengan menggunakan GitHub Actions](provision-aws-service-catalog-products-using-github-actions.md)
+ [Jalankan pengujian unit untuk pekerjaan ETL Python dalam AWS Glue menggunakan kerangka pytest](run-unit-tests-for-python-etl-jobs-in-aws-glue-using-the-pytest-framework.md)
+ [Siapkan dasbor pemantauan Grafana untuk AWS ParallelCluster](set-up-a-grafana-monitoring-dashboard-for-aws-parallelcluster.md)
+ [Membongkar data dari klaster Amazon Redshift di seluruh akun ke Amazon S3](unload-data-from-amazon-redshift-cross-accounts-to-amazon-s3.md)
+ [Visualisasikan hasil AI/ML model menggunakan Flask dan AWS Elastic Beanstalk](visualize-ai-ml-model-results-using-flask-and-aws-elastic-beanstalk.md)