

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

# Transformasi data dengan transformasi AWS Glue terkelola
<a name="edit-jobs-transforms"></a>

 AWS Glue Studiomenyediakan dua jenis transformasi: 
+  **AWS Glue-native transforms** - tersedia untuk semua pengguna dan dikelola oleh. AWS Glue 
+  **Transformasi visual khusus** - memungkinkan Anda mengunggah transformasi Anda sendiri untuk digunakan AWS Glue Studio 

## AWS Gluenode transformasi data terkelola
<a name="edit-jobs-transforms-glue-managed"></a>

AWS Glue Studio menyediakan serangkaian transformasi bawaan yang dapat Anda gunakan untuk memproses data Anda. Data Anda melewati dari satu simpul dalam diagram tugas ke simpul yang lain dalam struktur data yang disebut `DynamicFrame`, yang merupakan ekstensi untuk `DataFrame` Apache Spark SQL.

Dalam diagram pra-populasi untuk suatu pekerjaan, antara sumber data dan node target data adalah simpul transformasi **Change Schema**. Anda dapat mengkonfigurasi simpul transformasi ini untuk memodifikasi data Anda, atau Anda dapat menggunakan transformasi tambahan. 

Transformasi bawaan berikut tersedia denganAWS Glue Studio:
+ **[ChangeSchema](transforms-configure-applymapping.md)**: Petakan kunci properti data di sumber data ke kunci properti data di target data. Anda dapat mengganti nama kunci, memodifikasi tipe data untuk kunci, dan memilih kunci mana yang akan dibuang dari set data.
+ **[SelectFields](transforms-configure-select-fields.md)**: Pilih kunci properti data yang ingin Anda simpan.
+ **[DropFields](transforms-configure-drop-fields.md)**: Pilih kunci properti data yang ingin Anda jatuhkan.
+ **[RenameField](transforms-configure-rename-field.md)**: Ganti nama kunci properti data tunggal.
+ **[Spigot](transforms-configure-spigot.md)**: Menulis sampel data ke sebuah bucket Amazon S3.
+ **[Join](transforms-configure-join.md)**: Menggabungkan dua set data menjadi satu set data menggunakan frasa perbandingan pada kunci properti data tertentu. Anda dapat menggunakan join bagian dalam, luar, kiri, kanan, kiri semi, dan lawan kiri.
+ **[Union](transforms-configure-union.md)**: Gabungkan baris dari lebih dari satu sumber data yang memiliki skema yang sama.
+ **[SplitFields](transforms-configure-split-fields.md)**: Pisahkan kunci properti data menjadi dua`DynamicFrames`. Output adalah sebuah kumpulan `DynamicFrames`: satu dengan kunci properti data yang dipilih, dan satu dengan kunci properti data yang tersisa. 
+ **[SelectFromCollection](transforms-selectfromcollection-overview.md)**: Pilih salah satu `DynamicFrame` dari koleksi`DynamicFrames`. Outputnya adalah `DynamicFrame` yang dipilih.
+ **[FillMissingValues](transforms-configure-fmv.md)**: Temukan catatan dalam kumpulan data yang memiliki nilai yang hilang dan tambahkan bidang baru dengan nilai yang disarankan yang ditentukan oleh imputasi
+ **[Filter](transforms-filter.md)**: Membagi set data menjadi dua, berdasarkan syarat filter.
+  **[Jatuhkan Bidang Null](transforms-dropnull-fields.md)**: Menghapus kolom dari kumpulan data jika semua nilai dalam kolom adalah 'null'. 
+  **[Jatuhkan Duplikat](transforms-drop-duplicates.md)**: Menghapus baris dari sumber data Anda dengan memilih untuk mencocokkan seluruh baris atau menentukan kunci. 
+ **[SQL](transforms-sql.md)**: Memasukkan kode SparkSQL ke bidang entri teks untuk menggunakan kueri SQL untuk mengubah data. Outputnya adalah satu `DynamicFrame`. 
+  **[Agregat](transforms-aggregate-fields.md)**: Melakukan perhitungan (seperti rata-rata, jumlah, min, maks) pada bidang dan baris yang dipilih, dan membuat bidang baru dengan nilai yang baru dihitung. 
+ **[Flatten](transforms-flatten.md)**: Ekstrak bidang di dalam struct ke bidang tingkat atas.
+ **[UUID](transforms-uuid.md)**: Tambahkan kolom dengan Universally Unique Identifier untuk setiap baris.
+ **[Identifier](transforms-identifier.md)**: Tambahkan kolom dengan pengidentifikasi numerik untuk setiap baris.
+ **[Ke stempel waktu](transforms-to-timestamp.md)**: Ubah kolom menjadi tipe stempel waktu.
+ **[Format timestamp](transforms-format-timestamp.md)**: Mengkonversi kolom stempel waktu ke string yang diformat.
+ **[Transformasi Router Bersyarat](transforms-conditional-router.md)**: Terapkan beberapa kondisi ke data yang masuk. Setiap baris data yang masuk dievaluasi oleh kondisi filter grup dan diproses menjadi grup yang sesuai. 
+  **[Transformasi Kolom Gabungan](transforms-concatenate-columns.md)**: Bangun kolom string baru menggunakan nilai kolom lain dengan spacer opsional. 
+  **[Transformasi String Split](transforms-split-string.md)**: Memecah string menjadi array token menggunakan ekspresi reguler untuk menentukan bagaimana pemisahan dilakukan. 
+  **[Array To Columns transform](transforms-array-to-columns.md)**: Ekstrak beberapa atau semua elemen kolom tipe array ke kolom baru. 
+  **[Tambahkan transformasi Timestamp Saat Ini](transforms-add-current-timestamp.md)**: Tandai baris dengan waktu pemrosesan data. Ini berguna untuk tujuan audit atau untuk melacak latensi dalam pipa data. 
+  **[Pivot Rows to Columns transform](transforms-pivot-rows-to-columns.md)**: Agregat kolom numerik dengan memutar nilai unik pada kolom terpilih yang menjadi kolom baru. Jika beberapa kolom dipilih, nilainya digabungkan untuk memberi nama kolom baru. 
+  **[Unpivot Columns To Rows transform](transforms-unpivot-columns-to-rows.md)**: Ubah kolom menjadi nilai kolom baru yang menghasilkan baris untuk setiap nilai unik. 
+  **[Transformasi Pemrosesan Autobalance](transforms-autobalance-processing.md)**: Mendistribusikan kembali data dengan lebih baik di antara para pekerja. Ini berguna jika data tidak seimbang atau karena berasal dari sumber tidak memungkinkan pemrosesan paralel yang cukup di atasnya. 
+  **[Transformasi Kolom Derived](transforms-derived-column.md)**: Tentukan kolom baru berdasarkan rumus matematika atau ekspresi SQL di mana Anda dapat menggunakan kolom lain dalam data, serta konstanta dan literal. 
+  **[Transformasi pencarian](transforms-lookup.md)**: Tambahkan kolom dari tabel katalog yang ditentukan saat kunci cocok dengan kolom pencarian yang ditentukan dalam data. 
+  **[Explode Array atau Map Into Rows transform](transforms-explode-array.md)**: Ekstrak nilai dari struktur bersarang menjadi baris individual yang lebih mudah dimanipulasi. 
+  **[Transformasi pencocokan rekaman](transforms-record-matching.md)**: Memanggil transformasi klasifikasi data pembelajaran mesin Record Matching yang ada. 
+  **[Hapus baris null transform](transforms-remove-null-rows.md)**: Hapus dari baris dataset yang memiliki semua kolom sebagai null, atau kosong. 
+  **[Mengurai transformasi kolom JSON](transforms-parse-json-column.md)**: Parse kolom string yang berisi data JSON dan mengubahnya menjadi struct atau kolom array, tergantung apakah JSON adalah objek atau array, masing-masing. 
+  **[Ekstrak transformasi jalur JSON](transforms-extract-json-path.md)**: Ekstrak kolom baru dari kolom string JSON. 
+  **[Ekstrak fragmen string dari ekspresi reguler](transforms-regex-extractor.md)**: Ekstrak fragmen string menggunakan ekspresi reguler dan buat kolom baru darinya, atau beberapa kolom jika menggunakan grup regex. 
+ **[Transformasi kustom](transforms-custom.md)**: Masukkan kode ke bidang entri teks untuk menggunakan transformasi kustom. Outputnya adalah kumpulan `DynamicFrames`. 

# Menggunakan resep persiapan data di AWS Glue Studio
<a name="glue-studio-data-preparation"></a>

 Transformasi **resep persiapan data** memungkinkan Anda untuk membuat resep persiapan data dari awal menggunakan antarmuka penulisan gaya kisi interaktif. Ini juga memungkinkan Anda untuk mengimpor AWS Glue DataBrew resep yang ada dan kemudian mengeditnya AWS Glue Studio. 

 Node **Resep Persiapan Data** tersedia dari panel Sumber Daya. Anda dapat menghubungkan simpul **Resep Persiapan Data** ke node lain dalam alur kerja visual, apakah itu node sumber Data atau node transformasi lainnya. Setelah memilih AWS Glue DataBrew resep dan versi, langkah-langkah yang diterapkan dalam resep terlihat di tab properti simpul. 

## Prasyarat
<a name="glue-studio-databrew-prerequisites"></a>
+  Jika mengimpor AWS Glue DataBrew resep, Anda memiliki izin IAM yang diperlukan seperti yang dijelaskan dalam. [Impor AWS Glue DataBrew resep di AWS Glue Studio](glue-studio-data-preparation-import-recipe.md) 
+  Sesi pratinjau data harus dibuat. 

## Batasan
<a name="glue-studio-databrew-limitations"></a>
+  AWS Glue DataBrew resep hanya didukung di [ DataBrew daerah komersial](https://docs.aws.amazon.com/general/latest/gr/databrew.html). 
+  Tidak semua AWS Glue DataBrew resep didukung olehAWS Glue. Beberapa resep tidak akan dapat dijalankanAWS Glue Studio. 
  +  Resep dengan `UNION` dan `JOIN` transformasi tidak didukung, namun, AWS Glue Studio sudah memiliki node transformasi “Join” dan “Union” yang dapat digunakan sebelum atau sesudah simpul **Resep Persiapan Data**. 
+  Node **Resep Persiapan Data** didukung untuk pekerjaan yang dimulai dengan AWS Glue versi 4.0. Versi ini akan dipilih secara otomatis setelah simpul **Resep Persiapan Data** ditambahkan ke pekerjaan. 
+  Simpul **Resep Persiapan Data** membutuhkan Python. Ini secara otomatis diatur ketika simpul **Resep Persiapan Data** ditambahkan ke pekerjaan. 
+  Menambahkan simpul **Resep Persiapan Data** baru ke grafik visual akan secara otomatis memulai ulang sesi Pratinjau Data Anda dengan pustaka yang benar untuk menggunakan simpul **Resep Persiapan Data**. 
+  Transformasi berikut tidak didukung untuk impor atau pengeditan di simpul **Resep Persiapan Data**:`GROUP_BY`,, `PIVOT``UNPIVOT`, dan`TRANSPOSE`. 

## Fitur tambahan
<a name="glue-studio-data-preparation-recipe-transform-features"></a>

 Ketika Anda telah memilih transformasi **Resep Persiapan Data**, Anda memiliki kemampuan untuk mengambil tindakan tambahan setelah memilih **resep Penulis**. 
+  Tambahkan langkah — Anda dapat menambahkan langkah tambahan ke resep sesuai kebutuhan dengan memilih ikon tambahkan langkah, atau menggunakan bilah alat di panel Pratinjau dengan memilih tindakan.   
![\[Tangkapan layar menunjukkan ikon tambahkan resep.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/add-recipe-icon.png)  
![\[Tangkapan layar menunjukkan ikon tambahkan resep.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/author-recipe-toolbar.png)
+  Impor resep — pilih **Lebih dari** itu **Impor resep** untuk digunakan dalam AWS Glue Studio pekerjaan Anda.   
![\[Tangkapan layar menunjukkan lebih banyak ikon.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-preparation-recipe-node-more-icon.png)  
![\[Tangkapan layar menunjukkan lebih banyak ikon.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-preparation-recipe-node-more-features.png)
+  Unduh sebagai YAMG — pilih **Lainnya** lalu **Unduh sebagai YAMG untuk** mengunduh resep Anda untuk disimpan di luar. AWS Glue Studio
+  Unduh sebagai JSON — pilih **Lainnya** lalu **Unduh sebagai JSON** untuk mengunduh resep Anda untuk disimpan di luar. AWS Glue Studio
+  Urungkan dan ulangi langkah resep — Anda dapat membatalkan dan mengulang langkah resep di panel Pratinjau saat bekerja dengan data di kisi.   
![\[Tangkapan layar menunjukkan lebih banyak ikon.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/author-recipe-toolbar-undo-redo.png)

# Penulis dan jalankan resep persiapan data dalam pekerjaan ETL AWS Glue visual
<a name="glue-studio-data-preparation-recipe-transform-tutorial"></a>

 Dalam skenario ini, Anda dapat membuat resep persiapan data tanpa harus terlebih dahulu membuatnya DataBrew. Sebelum Anda dapat mulai membuat resep, Anda harus: 
+  Miliki sesi Pratinjau Data yang aktif berjalan. Ketika sesi pratinjau data SIAP, maka **Resep Penulis** akan menjadi aktif dan Anda dapat mulai menulis atau mengedit resep Anda.   
![\[Tangkapan layar menunjukkan sesi Pratinjau Data sebagai lengkap.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-preparation-recipe-data-preview-complete.png)
+  Pastikan sakelar untuk **pustaka lem impor otomatis** diaktifkan.   
![\[Tangkapan layar menunjukkan opsi untuk mengimpor pustaka lem secara otomatis diaktifkan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-preparation-recipe-automatically-import-glue-libraries.png)

   Anda dapat melakukan ini dengan memilih ikon roda gigi di panel Pratinjau Data.   
![\[Tangkapan layar menunjukkan opsi untuk mengimpor pustaka lem secara otomatis diaktifkan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-preview-preferences.png)

**Untuk menulis resep persiapan data di AWS Glue Studio:**

1.  Tambahkan transformasi **Resep Persiapan Data** ke kanvas pekerjaan Anda. Transformasi Anda harus terhubung ke induk node sumber data. Saat menambahkan simpul **Resep Persiapan Data**, node akan memulai ulang dengan pustaka yang tepat dan Anda akan melihat Bingkai Data sedang disiapkan.   
![\[Tangkapan layar menunjukkan pemuatan bingkai data setelah menambahkan Resep Persiapan Data.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-preparation-preparing-dataframe.png)

1.  Setelah sesi Pratinjau Data siap, data dengan langkah-langkah yang diterapkan sebelumnya akan muncul di bagian bawah layar. 

1.  Pilih **Resep Penulis**. Ini akan memungkinkan Anda untuk memulai resep baru AWS Glue Studio.   
![\[Tangkapan layar menunjukkan panel Transform dengan bidang untuk orang tua Nama dan Node, serta opsi untuk Resep Penulis.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/data-preparation-recipe-transform-tab-new.png)

1.  Di panel **Transform** di sebelah kanan kanvas pekerjaan, masukkan nama untuk resep persiapan data Anda. 

1.  Di sisi kiri, kanvas akan diganti dengan tampilan grid data Anda. Di sebelah kanan, panel **Transform** akan berubah untuk menunjukkan langkah-langkah resep Anda. Pilih **Tambahkan langkah** untuk menambahkan langkah pertama dalam resep Anda.   
![\[Tangkapan layar menunjukkan panel Transform setelah memilih Tambah Langkah. Ketika Anda memilih kolom, opsi akan berubah secara dinamis. Anda dapat memilih untuk mengurutkan, mengambil tindakan pada kolom, dan memfilter nilai.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/author-recipe-preview-data-transform-panel.png)

1.  Di panel **Transform**, pilih untuk mengurutkan, mengambil tindakan pada kolom, dan memfilter nilai. Misalnya, pilih **Ganti nama kolom**.   
![\[Tangkapan layar menunjukkan panel Transform setelah memilih Tambah Langkah. Ketika Anda memilih kolom, opsi akan berubah secara dinamis. Anda dapat memilih untuk mengurutkan, mengambil tindakan pada kolom, dan memfilter nilai.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/author-recipe-add-step.png)

1.  Di panel Transform di sisi kanan, opsi untuk mengganti nama kolom memungkinkan Anda memilih kolom sumber untuk mengganti nama, dan memasukkan nama kolom baru. Setelah Anda melakukannya, pilih **Terapkan**. 

    Anda dapat melihat pratinjau setiap langkah, membatalkan langkah, dan menyusun ulang langkah-langkah dan menggunakan salah satu ikon tindakan, seperti Filter, Urutkan, Pisahkan, Gabungkan, dll. Saat Anda melakukan tindakan di kisi data, langkah-langkahnya ditambahkan ke resep di panel Transform.   
![\[Tangkapan layar menunjukkan kisi data Pratinjau dengan bilah alat yang disorot. Anda dapat menerapkan tindakan dengan menggunakan salah satu alat dan itu akan ditambahkan ke resep di panel Transform di sebelah kanan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/author-recipe-preview-data-grid.png)

    Jika Anda perlu membuat perubahan, Anda dapat melakukan ini di panel Pratinjau dengan melihat pratinjau hasil dari setiap langkah, membatalkan langkah, dan menyusun ulang langkah-langkah. Contoh: 
   +  Undo/redo langkah - batalkan langkah dengan memilih ikon **undo**. Anda dapat mengulangi langkah dengan memilih ikon **redo**.   
![\[Tangkapan layar menunjukkan lebih banyak ikon.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/author-recipe-toolbar-undo-redo.png)
   +  Susun ulang langkah — saat Anda menyusun ulang langkah, AWS Glue Studio akan memvalidasi setiap langkah dan memberi tahu Anda jika langkah tersebut tidak valid. 

1.  Setelah Anda menerapkan langkah, panel Transform akan menunjukkan semua langkah dalam resep Anda. Anda dapat menghapus semua langkah untuk memulai dari awal, menambahkan lebih banyak langkah dengan memilih ikon tambahkan, atau memilih **Selesai Penulisan Resep**.   
![\[Tangkapan layar menunjukkan panel Transform dengan langkah-langkah yang ditambahkan ke resep Anda. Setelah selesai, pilih Selesai Penulisan Resep atau pilih ikon tambahkan untuk menambahkan lebih banyak langkah ke resep.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/author-recipe-done-authoring-recipe.png)

1.  Pilih **Simpan** di sisi kanan atas layar Anda. Langkah resep Anda tidak akan disimpan sampai Anda menyimpan pekerjaan Anda. 

# Impor AWS Glue DataBrew resep di AWS Glue Studio
<a name="glue-studio-data-preparation-import-recipe"></a>

 Dalam AWS Glue DataBrew, resep adalah serangkaian langkah transformasi data. AWS Glue DataBrew resep menentukan bagaimana mengubah data yang telah dibaca dan tidak menjelaskan di mana dan bagaimana membaca data, serta bagaimana dan di mana untuk menulis data. Ini dikonfigurasi di node Sumber dan Target diAWS Glue Studio. Untuk informasi selengkapnya tentang resep, lihat [Membuat dan menggunakan AWS Glue DataBrew resep](https://docs.aws.amazon.com/databrew/latest/dg/recipes.html). 

 Untuk menggunakan AWS Glue DataBrew resepAWS Glue Studio, mulailah dengan membuat resep di AWS Glue DataBrew. Jika Anda memiliki resep yang ingin Anda gunakan, Anda dapat melewati langkah ini. 

## Izin IAM untuk AWS Glue DataBrew
<a name="glue-studio-databrew-permissions"></a>

 Topik ini memberikan informasi untuk membantu Anda memahami tindakan dan sumber daya yang dapat digunakan oleh administrator IAM dalam kebijakan AWS Identity and Access Management (IAM) untuk transformasi Resep Persiapan Data. 

 Untuk informasi tambahan tentang keamanan di AWS Glue, lihat [Manajemen Akses](https://docs.aws.amazon.com/glue/latest/dg/security.html). 

**catatan**  
 Tabel berikut mencantumkan izin yang dibutuhkan pengguna jika mengimpor resep yang ada AWS Glue DataBrew . 


**Persiapan Data Resep mengubah tindakan**  

| Tindakan | Deskripsi | 
| --- | --- | 
| databrew:ListRecipes | Memberikan izin untuk mengambil resep AWS Glue DataBrew . | 
| databrew:ListRecipeVersions | Memberikan izin untuk mengambil versi AWS Glue DataBrew resep. | 
| databrew:DescribeRecipe | Memberikan izin untuk mengambil deskripsi AWS Glue DataBrew resep. | 



 Peran yang Anda gunakan untuk mengakses fungsi ini harus memiliki kebijakan yang memungkinkan beberapa AWS Glue DataBrew tindakan. Anda dapat mencapainya dengan menggunakan `AWSGlueConsoleFullAccess` kebijakan yang mencakup tindakan yang diperlukan atau menambahkan kebijakan sebaris berikut ke peran Anda: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "databrew:ListRecipes",
        "databrew:ListRecipeVersions",
        "databrew:DescribeRecipe"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------



 Untuk menggunakan transformasi Resep Persiapan Data, Anda harus menambahkan `IAM:PassRole` tindakan ke kebijakan izin. 


**Izin tambahan yang diperlukan**  

| Tindakan | Deskripsi | 
| --- | --- | 
| iam:PassRole | Memberikan izin kepada IAM untuk memungkinkan pengguna melewati peran yang disetujui. | 

Tanpa izin ini terjadi kesalahan berikut:

```
"errorCode": "AccessDenied"
"errorMessage": "User: arn:aws:sts::account_id:assumed-role/AWSGlueServiceRole is not 
authorized to perform: iam:PassRole on resource: arn:aws:iam::account_id:role/service-role/AWSGlueServiceRole 
because no identity-based policy allows the iam:PassRole action"
```



## Mengimpor resep AWS Glue DataBrew
<a name="glue-studio-databrew-import-steps"></a>

**Untuk mengimpor AWS Glue DataBrew resep dan menggunakannya diAWS Glue Studio:**

 Jika Anda memiliki simpul **Resep Persiapan Data** yang ada dan Anda ingin mengedit langkah-langkah resep secara langsung AWS Glue Studio, Anda harus mengimpor langkah-langkah resep ke dalam AWS Glue Studio pekerjaan Anda. 

1.  Mulai AWS Glue pekerjaan AWS Glue Studio dengan sumber data. 

1.  Tambahkan simpul **Resep Persiapan Data** ke kanvas pekerjaan.   
![\[Tangkapan layar menunjukkan Tambahkan modal simpul dengan resep persiapan data yang tersedia untuk seleksi.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/glue-add-node-data-preparation-recipe.png)

1.  Di panel Transform, masukkan nama untuk resep Anda. 

1.  Pilih satu atau lebih node induk dengan memilih node yang tersedia di kanvas dari daftar drop-down. 

1.  Pilih **Resep Penulis**. Jika **Resep Penulis** berwarna abu-abu, itu tidak tersedia sampai orang tua node dipilih dan sesi pratinjau data telah selesai.   
![\[Author Data Preparation Recipe form with name field and node parents selection dropdown.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/glue-author-data-preparation-recipe.png)

1.  Bingkai data memuat dan menunjukkan informasi terperinci tentang data sumber Anda. 

    Pilih ikon **tindakan lainnya** dan pilih **Impor resep**.   
![\[Data preparation interface showing "Build your Recipe" with an "Add step" button.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/glue-dataframe-import-recipe.png)

1.  Gunakan panduan resep Impor untuk menyelesaikan langkah-langkahnya. Pada langkah 1, cari resep Anda, pilih, dan pilih **Berikutnya**.   
![\[Import recipe interface showing two recipes, with one selected for import.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/import-recipe-step-1.png)

1.  Pada langkah 2, pilih opsi impor Anda. Anda dapat memilih untuk Menambahkan resep baru ke resep yang ada atau Timpa resep yang sudah ada. Pilih **Berikutnya**.   
![\[Import recipe interface showing selected recipe, version, and two imported steps.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/import-recipe-step-2.png)

1.  Pada langkah 3, validasi langkah-langkah resep. Setelah Anda mengimpor AWS Glue DataBrew resep Anda, Anda dapat mengedit resep ini langsung di AWS Glue Studio.   
![\[Recipe import interface showing two steps and a validation progress indicator.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/import-recipe-step-3.png)  
![\[Import recipe interface showing validated steps for sorting and formatting data.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/import-recipe-step-3-validated-2.png)

1.  Setelah ini, langkah-langkah akan diimpor sebagai bagian dari AWS Glue pekerjaan Anda. Buat perubahan konfigurasi yang diperlukan di tab **Detail pekerjaan**, seperti menamai pekerjaan Anda dan menyesuaikan kapasitas yang dialokasikan sesuai kebutuhan. Pilih **Simpan** untuk menyimpan pekerjaan dan resep Anda. 
**catatan**  
 JOIN, UNION, GROUP\$1BY, PIVOT, UNPIVOT, TRANSPOSE tidak didukung untuk impor resep, juga tidak akan tersedia dalam mode pembuatan resep. 

1.  Secara opsional, Anda dapat menyelesaikan penulisan pekerjaan dengan menambahkan node transformasi lain sesuai kebutuhan dan menambahkan node target Data. 

    Jika Anda menyusun ulang langkah-langkah setelah mengimpor resep, AWS Glue lakukan validasi pada langkah-langkah tersebut. Misalnya, jika Anda mengganti nama dan kemudian menghapus kolom, dan Anda memindahkan langkah hapus di atas, maka langkah ganti nama akan menjadi tidak valid. Anda kemudian dapat mengedit langkah-langkah untuk memperbaiki kesalahan validasi. 

# Migrasi dari AWS Glue DataBrew ke AWS Glue Studio
<a name="databrew-migration-to-glue-studio"></a>

 Jika Anda memiliki resep AWS Glue DataBrew, gunakan daftar periksa berikut untuk memigrasikan resep Anda ke Glue AWS Studio. 


| Jika Anda ingin | Kemudian lakukan ini | 
| --- | --- | 
|  Izinkan pengguna untuk mengambil AWS Glue DataBrew resep, versi resep, dan deskripsi resep.  |  Tambahkan izin IAM ke kebijakan yang memungkinkan peran Anda mengakses tindakan yang diperlukan. Lihat [Izin IAM untuk AWS Glue DataBrew](glue-studio-data-preparation-import-recipe.md#glue-studio-databrew-permissions).  | 
|  Impor AWS Glue DataBrew resep yang ada ke AWS Glue Studio.  |  Ikuti langkah-langkah di [Mengimpor resep AWS Glue DataBrew](glue-studio-data-preparation-import-recipe.md#glue-studio-databrew-import-steps).  | 
|  Impor resep dengan JOIN dan UNION.  |  Resep dengan transformasi UNION dan JOIN tidak didukung. Gunakan transformasi Gabung dan Serikat di AWS Glue Studio sebelum atau sesudah simpul Resep Persiapan Data.  | 

# Menggunakan Change Schema untuk memetakan ulang kunci properti data
<a name="transforms-configure-applymapping"></a>

Transformasi *Change Schema* memetakan ulang kunci properti data sumber ke dalam konfigurasi yang diinginkan untuk data target. Dalam simpul transformasi Skema Perubahan, Anda dapat:
+ Mengubah nama beberapa kunci properti data.
+ Mengubah tipe data kunci properti data, jika tipe data baru didukung dan ada path transformasi antara dua tipe data.
+ Memilih subset kunci properti data dengan menunjukkan kunci properti data yang ingin Anda buang.

Anda juga dapat menambahkan node *Change Schema* tambahan ke diagram pekerjaan sesuai kebutuhan — misalnya, untuk memodifikasi sumber data tambahan atau mengikuti transformasi *Gabung*. 

## Menggunakan Change Schema dengan tipe data desimal
<a name="transforms-configure-applymapping-decimal-datatype"></a>

 Saat menggunakan transformasi **Change Schema** dengan tipe data desimal, transformasi **Change Schema** memodifikasi presisi ke nilai default (10,2). Untuk memodifikasi ini dan mengatur presisi untuk kasus penggunaan Anda, Anda dapat menggunakan transformasi **Kueri SQL** dan mentransmisikan kolom dengan presisi tertentu. 

 Misalnya, jika Anda memiliki kolom input bernama "DecimalCol" dari jenis Desimal, dan Anda ingin memetakannya kembali ke kolom keluaran bernama "OutputDecimalCol" dengan presisi spesifik (18,6), Anda akan: 

1.  Tambahkan transformasi **Query SQL** berikutnya setelah transformasi **Change Schema**. 

1.  Dalam transformasi **SQL Query**, gunakan kueri SQL untuk mentransmisikan kolom yang dipetakan ulang ke presisi yang diinginkan. Kueri SQL akan terlihat seperti ini: 

   ```
   SELECT col1, col2, CAST(DecimalCol AS DECIMAL(18,6)) AS OutputDecimalCol
   FROM __THIS__
   ```

    Dalam query SQL di atas: 
   +  `col1` dan `col2` adalah kolom lain dalam data Anda yang ingin Anda lewati tanpa modifikasi. 
   +  `DecimalCol` adalah nama kolom asli dari data input. 
   +  `CAST (DecimalCol AS DECIMAL (18,6)) `melemparkan` DecimalCol `ke tipe Desimal dengan presisi 18 digit dan 6 tempat desimal. 
   +  `AS OutputDecimalCol `mengganti nama kolom yang dicor menjadi` `. OutputDecimalCol 

 Dengan menggunakan transformasi **SQL Query**, Anda dapat mengganti presisi default yang ditetapkan oleh transformasi **Change Schema** dan secara eksplisit melemparkan kolom Desimal ke presisi yang diinginkan. **Pendekatan ini memungkinkan Anda memanfaatkan transformasi **Change Schema** untuk mengganti nama dan merestrukturisasi data Anda sambil menangani persyaratan presisi untuk kolom Desimal melalui transformasi SQL Query berikutnya.** 

## Menambahkan transformasi Change Schema ke pekerjaan Anda
<a name="transforms-configure-applymapping-add-to-job"></a>

**catatan**  
Transformasi **Change Schema** tidak peka huruf besar/kecil.

**Untuk menambahkan node transformasi Change Schema ke diagram pekerjaan Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **Change Schema** untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Di panel properti node, masukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transform** di panel properti node.

1. Memodifikasi skema input:
   + Untuk mengubah nama kunci properti data, masukkan nama baru untuk kunci tersebut di bidang **Kunci target**.
   + Untuk mengubah tipe data untuk kunci properti data, pilih tipe data baru untuk kunci tersebut dari daftar **Jenis data**.
   + Untuk menghapus kunci properti data dari skema target, pilih kotak centang **Buang** untuk kunci itu.

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Menggunakan Drop Duplikat
<a name="transforms-drop-duplicates"></a>

 Transformasi Drop Duplicates menghapus baris dari sumber data Anda dengan memberi Anda dua opsi. Anda dapat memilih untuk menghapus baris duplikat yang benar-benar sama, atau Anda dapat memilih untuk memilih bidang yang cocok dan hanya menghapus baris tersebut berdasarkan bidang yang Anda pilih. 

 Misalnya, dalam kumpulan data ini, Anda memiliki baris duplikat di mana semua nilai di beberapa baris persis sama dengan baris lain, dan beberapa nilai dalam baris sama atau berbeda. 


| Baris | Nama | Email | Umur | Status | Catatan | 
| --- | --- | --- | --- | --- | --- | 
| 1 | Sukacita | sukacita @gmail | 33 | NY |  | 
| 2 | Tim | tim @gmail | 45 | OH |  | 
| 3 | Mawar | mawar @gmail | 23 | NJ |  | 
| 4 | Tim | tim @gmail | 42 | OH |  | 
| 5 | Mawar | mawar @gmail | 23 | NJ |  | 
| 6 | Tim | tim @gmail | 42 | OH | ini adalah baris duplikat dan cocok sepenuhnya pada semua nilai sebagai baris \$14 | 
| 7 | Mawar | mawar @gmail | 23 | NJ | Ini adalah baris duplikat dan cocok sepenuhnya pada semua nilai sebagai baris \$15 | 

 Jika Anda memilih untuk mencocokkan seluruh baris, baris 6 dan 7 akan dihapus dari kumpulan data. Kumpulan data sekarang: 


| Baris | Nama | Email | Umur | Status | 
| --- | --- | --- | --- | --- | 
| 1 | Sukacita | sukacita @gmail | 33 | NY | 
| 2 | Tim | tim @gmail | 45 | OH | 
| 3 | Mawar | mawar @gmail | 23 | NJ | 
| 4 | Tim | tim @gmail | 42 | OH | 
| 5 | Mawar | mawar @gmail | 23 | NJ | 

 Jika Anda memilih untuk menentukan kunci, Anda dapat memilih untuk menghapus baris yang cocok dengan 'nama' dan 'email'. Ini memberi Anda kontrol yang lebih baik tentang apa yang dimaksud dengan 'baris duplikat' untuk kumpulan data Anda. Dengan menentukan 'nama' dan 'email', kumpulan data sekarang: 


| Baris | Nama | Email | Umur | Status | 
| --- | --- | --- | --- | --- | 
| 1 | Sukacita | sukacita @gmail | 33 | NY | 
| 2 | Tim | tim @gmail | 45 | OH | 
| 3 | Mawar | mawar @gmail | 23 | NJ | 



 Beberapa hal yang perlu diingat: 
+  Agar baris dikenali sebagai duplikat, nilainya peka huruf besar. semua nilai dalam baris harus memiliki casing yang sama - ini berlaku untuk salah satu opsi yang Anda pilih (Cocokkan seluruh baris atau Tentukan kunci). 
+  Semua nilai dibaca sebagai string. 
+  Transformasi **Drop Duplicates** menggunakan perintah Spark DropDuplicates. 
+  Saat menggunakan transformasi **Drop Duplicates**, baris pertama disimpan dan baris lainnya dijatuhkan. 
+  Transformasi **Drop Duplicates** tidak mengubah skema kerangka data. Jika Anda memilih untuk menentukan kunci, semua bidang disimpan dalam kerangka data yang dihasilkan. 

# Menggunakan SelectFields untuk menghapus sebagian besar kunci properti data
<a name="transforms-configure-select-fields"></a>

Anda dapat membuat subset kunci properti data dari dataset menggunakan transformasi. *SelectFields* Anda menunjukkan kunci properti data mana yang ingin Anda simpan dan sisanya akan dihapus dari set data.

**catatan**  
*SelectFields*Transformasinya peka huruf besar/kecil. Gunakan *ApplyMapping*jika Anda memerlukan cara case-insensitive untuk memilih bidang.

**Untuk menambahkan node SelectFields transformasi ke diagram pekerjaan Anda**

1. (Opsional) Buka panel Resource, lalu pilih **SelectFields**untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transformasi** di panel detail simpul.

1. Di bawah judul **SelectFields**, pilih kunci properti data dalam kumpulan data yang ingin Anda simpan. Kunci properti data yang tidak dipilih akan dibuang dari set data.

   Anda juga dapat memilih kotak centang yang ada di samping judul kolom **Bidang** untuk secara otomatis memilih semua kunci properti data dalam set data. Kemudian Anda dapat membatalkan pilihan kunci properti data individu untuk menghapusnya dari set data.

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Menggunakan DropFields untuk menyimpan sebagian besar kunci properti data
<a name="transforms-configure-drop-fields"></a>

Anda dapat membuat subset kunci properti data dari dataset menggunakan transformasi. *DropFields* Anda menunjukkan kunci properti data mana yang ingin Anda hapus dari set data dan kunci sisanya akan dipertahankan.

**catatan**  
*DropFields*Transformasinya peka huruf besar/kecil. Gunakan *Ubah Skema* jika Anda memerlukan cara yang tidak peka huruf besar/kecil untuk memilih bidang.

**Untuk menambahkan node DropFields transformasi ke diagram pekerjaan Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **DropFields**untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transformasi** di panel detail simpul.

1. Di bawah judul **DropFields**, pilih kunci properti data untuk dijatuhkan dari sumber data.

   Anda juga dapat memilih kotak centang yang ada di samping judul kolom **Bidang** untuk secara otomatis memilih semua kunci properti data dalam set data. Kemudian Anda dapat membatalkan pilihan masing-masing kunci properti data untuk mempertahankannya dalam set data.

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Mengganti nama sebuah bidang dalam set data
<a name="transforms-configure-rename-field"></a>

Anda dapat menggunakan *RenameField*transformasi untuk mengubah nama kunci properti individual dalam kumpulan data. 

**catatan**  
*RenameField*Transformasinya peka huruf besar/kecil. Gunakan *ApplyMapping*jika Anda membutuhkan transformasi case-insensitive.

**Tip**  
Jika Anda menggunakan transformasi *Change Schema*, Anda dapat mengganti nama beberapa kunci properti data dalam dataset dengan satu transformasi.

**Untuk menambahkan node RenameField transformasi ke diagram pekerjaan Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **RenameField**untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transformasi**.

1. Pada judul **Bidang data**, pilih sebuah kunci properti dari sumber data dan kemudian masukkan nama baru di bidang **Nama bidang baru**. 

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Menggunakan Spigot untuk mengambil sampel dari set data Anda
<a name="transforms-configure-spigot"></a>

Untuk menguji transformasi yang dilakukan oleh tugas Anda, Anda mungkin ingin mendapatkan sampel data untuk memeriksa apakah transformasi bekerja sebagaimana mestinya. Transformasi *Spigot* menulis subset catatan dari set data ke file JSON dalam sebuah bucket Amazon S3. Metode pengambilan sampel data dapat berupa jumlah tertentu dari catatan dari awal file atau faktor probabilitas yang digunakan untuk memilih catatan.

**Untuk menambahkan simpul transformasi Spigot ke diagram tugas Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **Spigot** untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transformasi** di panel detail simpul.

1. Masukkan sebuah path Amazon S3 atau pilih **Jelajahi S3** untuk memilih lokasi di Amazon S3. Ini adalah lokasi di mana tugas menulis file JSON yang berisi sampel data.

1. Masukkan informasi untuk metode pengambilan sampel. Anda dapat menentukan nilai untuk **Jumlah catatan** untuk menulis mulai dari awal set data dan **Ambang probabilitas** (dimasukkan sebagai nilai desimal dengan nilai maksimum 1) dari pemilihan catatan yang diberikan. 

   Misalnya, untuk menulis 50 catatan pertama dari set data, Anda akan mengatur **Jumlah catatan** ke 50 dan **Ambang probabilitas** ke 1 (100%).

# Menggabungkan set data
<a name="transforms-configure-join"></a>

Transformasi *Join* memungkinkan Anda untuk menggabungkan dua set data menjadi satu. Anda menentukan nama-nama kunci dalam skema dari setiap set data yang akan dibandingkan. Output `DynamicFrame` berisi baris di mana kunci memenuhi syarat penggabungan. Baris di setiap set data yang memenuhi syarat penggabungan digabungkan menjadi satu baris dalam output `DynamicFrame` yang berisi semua kolom yang ditemukan di salah satu set data.

**Untuk menambahkan simpul transformasi Join ke diagram tugas Anda**

1. Jika hanya ada satu sumber data yang tersedia, maka Anda harus menambahkan simpul sumber data baru ke diagram tugas.

1. Pilih salah satu simpul sumber untuk penggabungan. Buka panel Resource dan kemudian pilih **Gabung** untuk menambahkan transformasi baru ke diagram pekerjaan Anda.

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas.

1. Pada tab **Properti simpul**, pada judul **Simpul**, tambahkan simpul induk sehingga ada dua set data yang menyediakan masukan untuk penggabungan. Induk dapat berupa simpul sumber data atau simpul transformasi. 
**catatan**  
Sebuah transformasi join hanya dapat memiliki dua simpul induk.

1. Pilih tab **Transformasi**.

   Jika Anda melihat pesan yang menunjukkan bahwa ada nama kunci yang bertentangan, Anda dapat:
   + Pilih **Selesaikan untuk secara** otomatis menambahkan node *ApplyMapping*transformasi ke diagram pekerjaan Anda. ApplyMapping Node menambahkan awalan ke kunci apa pun dalam kumpulan data yang memiliki nama yang sama dengan kunci di kumpulan data lainnya. Sebagai contoh, jika Anda menggunakan nilai default **right**, maka setiap kunci dalam set data kanan yang memiliki nama yang sama dengan kunci pada set data kiri akan diubah namanya menjadi `(right)key name`.
   + Secara manual, tambahkan simpul transformasi sebelumnya dalam diagram tugas untuk menghapus atau mengubah nama kunci yang bertentangan.

1. Pilih jenis penggabungan dalam daftar **Jenis penggabungan**. 
   + **Penggabungan dalam**: Mengembalikan baris dengan kolom dari kedua set data untuk setiap kecocokan berdasarkan syarat penggabungan. Baris yang tidak memenuhi syarat penggabungan tidak dikembalikan.
   + **Penggabungan kiri**: Semua baris dari set data kiri dan hanya baris dari set data kanan yang memenuhi syarat penggabungan. 
   + **Penggabungan kanan**: Semua baris dari set data kanan dan hanya baris dari set data kiri yang memenuhi syarat penggabungan.
   + **Penggabungan luar**: Semua baris dari kedua set data.
   + **Penggabungan semi kiri**: Semua baris dari set data kiri yang memiliki kecocokan di set data kanan berdasarkan syarat penggabungan. 
   + **Penggabungan kebalikan kiri**: Semua baris di set data kiri yang tidak memiliki kecocokan di set data kanan berdasarkan syarat penggabungan. 

1. Pada tab **Transformasi**, pada judul **Syarat penggabungan**, pilih **Tambahkan syarat**. Pilih kunci properti dari setiap set data yang akan dibandingkan. Kunci properti di sisi kiri operator perbandingan disebut sebagai set data kiri dan kunci properti di sebelah kanan disebut sebagai set data kanan. 

   Untuk syarat penggabungan yang lebih kompleks, Anda dapat menambahkan kunci pencocokan tambahan dengan memilih **Tambahkan syarat** lebih dari sekali. Jika Anda secara tidak sengaja menambahkan sebuah syarat, Anda dapat memilih ikon hapus (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/delete-icon-black.png)) untuk menghapusnya.

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

Untuk contoh skema output penggabungan, pertimbangkan penggabungan antara dua set data dengan kunci properti berikut:

```
Left: {id, dept, hire_date, salary, employment_status}
Right: {id, first_name, last_name, hire_date, title}
```

Penggabungan dikonfigurasi untuk mencocokkan berdasarkan kunci `id` dan `hire_date` menggunakan operator perbandingan `=`. 

Karena kedua set data mengandung kunci `id` dan `hire_date`, Anda pilih **Ubah** untuk secara otomatis menambahkan prefiks **right** ke kunci dalam set data kanan. 

Kunci dalam skema output akan:

```
{id, dept, hire_date, salary, employment_status, 
(right)id, first_name, last_name, (right)hire_date, title}
```

# Menggunakan Union untuk menggabungkan baris
<a name="transforms-configure-union"></a>

 Anda menggunakan node transformasi Union ketika Anda ingin menggabungkan baris dari lebih dari satu sumber data yang memiliki skema yang sama. 

 Ada beberapa jenis transformasi Union: 

1. SEMUA — saat menerapkan SEMUA, serikat yang dihasilkan tidak menghapus baris duplikat.

1. DISTINCT — saat menerapkan DISTINCT, gabungan yang dihasilkan menghapus baris duplikat.

 **Serikat vs Bergabung** 

 Anda menggunakan Union untuk menggabungkan baris. Anda menggunakan Gabung untuk menggabungkan kolom. 

**Menggunakan transformasi Union di kanvas Visual ETL**

1.  Tambahkan lebih dari satu sumber data untuk melakukan transformasi serikat. Untuk menambahkan sumber data, buka Panel Sumber Daya, lalu pilih sumber data dari tab Sumber. Sebelum menggunakan transformasi Union, Anda harus memastikan bahwa semua sumber data yang terlibat dalam serikat memiliki skema dan struktur yang sama. 

1.  Bila Anda memiliki setidaknya dua sumber data yang ingin Anda gabungkan menggunakan transformasi Union, buat transformasi Union dengan menambahkannya ke kanvas. Buka Resource Panel di kanvas dan cari 'Union'. Anda juga dapat memilih tab Transforms di Resource Panel dan gulir ke bawah sampai Anda menemukan Union transform, lalu pilih **Union**. 

1. Pilih node Union pada kanvas pekerjaan. Di jendela properti Node, pilih node induk untuk terhubung ke transformasi Union.

1. AWS Gluememeriksa kompatibilitas untuk memastikan bahwa transformasi Union dapat diterapkan ke semua sumber data. Jika skema untuk sumber data sama, operasi akan diizinkan. Jika sumber data tidak memiliki skema yang sama, pesan kesalahan yang tidak valid ditampilkan: “Skema input dari gabungan ini tidak sama. Pertimbangkan ApplyMapping untuk menggunakan untuk mencocokkan skema.” Untuk memperbaikinya, pilih Gunakan **ApplyMapping**. 

1. Pilih jenis Union.

   1. Semua - Secara default, tipe All Union dipilih; ini akan menghasilkan baris duplikat jika ada dalam kombinasi data.

   1. Distinct - Pilih Distinct jika Anda ingin baris duplikat dihapus dari kombinasi data yang dihasilkan.

# Menggunakan SplitFields untuk membagi kumpulan data menjadi dua
<a name="transforms-configure-split-fields"></a>

*SplitFields*Transformasi memungkinkan Anda untuk memilih beberapa kunci properti data dalam dataset input dan memasukkannya ke dalam satu kumpulan data dan kunci yang tidak dipilih ke dalam kumpulan data terpisah. Output dari transformasi ini adalah sebuah kumpulan `DynamicFrames`.

**catatan**  
Anda harus menggunakan *SelectFromCollection*transformasi untuk mengubah koleksi `DynamicFrames` menjadi satu `DynamicFrame` sebelum Anda dapat mengirim output ke lokasi target.

*SplitFields*Transformasinya peka huruf besar/kecil. Tambahkan *ApplyMapping*transformasi sebagai node induk jika Anda memerlukan nama kunci properti case-insensitive.

**Untuk menambahkan node SplitFields transformasi ke diagram pekerjaan Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **SplitFields**untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transformasi**.

1. Pilih kunci properti mana yang ingin Anda masukkan ke dalam set data pertama. Kunci yang tidak Anda pilih akan ditempatkan di set data kedua.

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

1. Konfigurasikan node *SelectFromCollection*transformasi untuk memproses kumpulan data yang dihasilkan.

# Gambaran umum transformasi *SelectFromCollection*
<a name="transforms-selectfromcollection-overview"></a>

Transformasi tertentu memiliki beberapa kumpulan data sebagai outputnya, bukan satu kumpulan data, misalnya,. *SplitFields* *SelectFromCollection*Transformasi memilih satu dataset (`DynamicFrame`) dari kumpulan dataset (array). `DynamicFrames` Output untuk transformasi tersebut adalah `DynamicFrame` yang dipilih. 

Anda harus menggunakan transformasi ini setelah Anda menggunakan transformasi yang menciptakan koleksi `DynamicFrames`, seperti:
+ Transformasi kode kustom
+ *SplitFields*

Jika Anda tidak menambahkan node *SelectFromCollection*transformasi ke diagram pekerjaan Anda setelah salah satu dari transformasi ini, Anda akan mendapatkan kesalahan untuk pekerjaan Anda. 

Induk simpul untuk transformasi ini haruslah sebuah simpul yang mengembalikan koleksi `DynamicFrames`. Jika Anda memilih sebuah induk untuk simpul transformasi yang mengembalikan satu `DynamicFrame` ini, seperti transformasi *Join*, maka tugas Anda akan mengembalikan kesalahan. 

Demikian pula, jika Anda menggunakan *SelectFromCollection*node dalam diagram pekerjaan Anda sebagai induk untuk transformasi yang mengharapkan satu `DynamicFrame` sebagai input, pekerjaan Anda mengembalikan kesalahan.

![\[Tangkapan layar menunjukkan bidang Induk simpul pada tab properti Simpul dari panel detail simpul. Induk simpul yang dipilih adalah SplitFields dan pesan kesalahan yang ditampilkan berbunyi "Induk simpul Split Fields menghasilkan output sebuah koleksi, tetapi simpul Drop Fields tidak menerima sebuah koleksi."\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/screenshot-edit-splitfields-wrong-parent.png)


# Menggunakan SelectFromCollection untuk memilih kumpulan data mana yang akan disimpan
<a name="transforms-configure-select-collection"></a>

Gunakan *SelectFromCollection*transformasi untuk mengubah koleksi `DynamicFrames` menjadi satu`DynamicFrame`.

**Untuk menambahkan node SelectFromCollection transformasi ke diagram pekerjaan Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **SelectFromCollection**untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transformasi**.

1. Pada judul **Indeks bingkai**, pilih nomor indeks array yang sesuai dengan `DynamicFrame` yang ingin Anda pilih dari koleksi `DynamicFrames` tersebut.

   Misalnya, jika node induk untuk transformasi ini adalah *SplitFields*transformasi, pada tab **skema Output** dari node itu Anda dapat melihat skema untuk masing-masing. `DynamicFrame` Jika Anda ingin menyimpan `DynamicFrame` yang dikaitkan dengan skema untuk **Output 2**, Anda akan memilih **1** untuk nilai **Indeks bingkai**, yang merupakan nilai kedua dalam daftar.

   Hanya `DynamicFrame` yang Anda pilih yang disertakan dalam output.

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Menemukan dan mengisi nilai yang hilang dalam set data
<a name="transforms-configure-fmv"></a>

Anda dapat menggunakan *FillMissingValues*transformasi untuk menemukan catatan dalam kumpulan data yang memiliki nilai yang hilang dan menambahkan bidang baru dengan nilai yang ditentukan oleh imputasi. Set data input digunakan untuk melatih model machine learning (ML) yang menentukan apa nilai yang hilang seharusnya. Jika Anda menggunakan kumpulan data tambahan, maka setiap set tambahan digunakan sebagai data pelatihan untuk model ML, sehingga hasilnya mungkin tidak akurat.

**Untuk menggunakan node FillMissingValues transformasi dalam diagram pekerjaan Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **FillMissingValues**untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan.

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut. 

1. Pilih tab **Transformasi**.

1. Untuk **Bidang data**, pilih kolom atau nama kolom dari sumber data yang ingin Anda analisis nilai-nilai hilangnya.

1. (Opsional) Dalam bidang **Nama bidang baru**, masukkan nama untuk bidang yang ditambahkan ke setiap catatan yang akan menyimpan nilai pengganti perkiraan untuk bidang yang dianalisis. Jika bidang yang dianalisis tidak memiliki nilai yang hilang, maka nilai di bidang yang dianalisis akan disalin ke bidang baru. 

   Jika Anda tidak menentukan nama untuk bidang baru, maka nama default-nya adalah nama kolom yang dianalisis dengan ditambahkan `_filled`. Misalnya, jika Anda memasukkan **Age** untuk **Bidang data** dan tidak menentukan nilai untuk **Nama bidang baru**, maka sebuah bidang baru bernama **Age\$1filled** akan ditambahkan ke setiap catatan.

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Mem-filter kunci dalam set data
<a name="transforms-filter"></a>

Gunakan transformasi *Filter* untuk membuat set data baru dengan mem-filter catatan dari set data masukan berdasarkan ekspresi reguler. Baris yang tidak memenuhi syarat filter dihapus dari output.
+ Untuk tipe data string, Anda dapat mem-filter baris di mana nilai kunci cocok dengan string yang ditentukan.
+ Untuk tipe data numerik, Anda dapat mem-filter baris dengan membandingkan nilai kunci untuk nilai yang ditentukan menggunakan operator perbandingan `<`, `>`, `=`, `!=`, `<=`, dan `>=`.

Jika Anda menentukan beberapa syarat filter, hasilnya digabungkan menggunakan operator `AND` secara default, tetapi Anda dapat memilih `OR` sebagai gantinya.

Transformasi *Filter* peka huruf besar-kecil. Tambahkan *ApplyMapping*transformasi sebagai node induk jika Anda memerlukan nama kunci properti case-insensitive.

**Untuk menambahkan simpul transformasi Filter ke diagram tugas Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **Filter** untuk menambahkan transformasi baru ke diagram pekerjaan Anda, jika diperlukan. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pilih tab **Transformasi**.

1. Pilih salah satu **Global AND** atau **Global OR**. Ini menentukan bagaimana beberapa syarat filter digabungkan. Semua syarat digabungkan menggunakan operasi `AND` atau `OR`. Jika Anda hanya memiliki satu syarat filter, maka Anda dapat memilih salah satu.

1. Pilih tombol **Tambahkan syarat** di bagian **Syarat filter** untuk menambahkan syarat filter. 

   Di bidang **Kunci**, pilih nama sebuah kunci properti dari set data. Di bidang **Operasi**, pilih operator perbandingan. Di bidang **Nilai**, masukkan nilai perbandingan. Berikut ini adalah beberapa contoh syarat filter:
   + `year >= 2018`
   + `State matches 'CA*'`

   Ketika Anda mem-filter nilai-nilai string, pastikan bahwa nilai perbandingan menggunakan format ekspresi reguler yang cocok dengan bahasa skrip yang dipilih di properti tugas (Python atau Scala).

1. Tambahkan syarat filter tambahan, sesuai kebutuhan. 

1. (Opsional) Setelah mengkonfigurasi properti simpul transformasi, Anda dapat melihat skema yang telah diubah untuk data Anda dengan memilih tab **Skema output** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Jika Anda belum menentukan IAM role pada tab **Detail tugas**, maka Anda akan diminta untuk memasukkan IAM role di sini.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Menggunakan DropNullFields untuk menghapus bidang dengan nilai null
<a name="transforms-dropnull-fields"></a>

 Gunakan *DropNullFields*transformasi untuk menghapus bidang dari kumpulan data jika semua nilai di bidang adalah 'null'. Secara default, AWS Glue Studio akan mengenali objek null, tetapi beberapa nilai seperti string kosong, string yang “null”, -1 integer atau placeholder lain seperti nol, tidak secara otomatis dikenali sebagai nol. 

**Untuk menggunakan DropNullFields**

1.  Tambahkan DropNullFields simpul ke diagram pekerjaan. 

1.  Pada tab **properti Node**, pilih nilai tambahan yang mewakili nilai nol. Anda dapat memilih untuk memilih tidak ada atau semua nilai:   
![\[Tangkapan layar menunjukkan tab Transform untuk DropNullFields node.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/DropNullFields-transform-tab.png)
   +  String Kosong (“” atau “) - bidang yang berisi string kosong akan dihapus 
   +  “null string” - bidang yang berisi string dengan kata 'null' akan dihapus 
   +  -1 integer - bidang yang berisi -1 (negatif satu) integer akan dihapus 

1.  Jika diperlukan, Anda juga dapat menentukan nilai null kustom. Ini adalah nilai nol yang mungkin unik untuk kumpulan data Anda. Untuk menambahkan nilai null kustom, pilih **Tambahkan nilai baru**. 

1.  Masukkan nilai null kustom. Misalnya, ini bisa nol, atau nilai apa pun yang digunakan untuk mewakili nol dalam kumpulan data. 

1.  Pilih tipe data di bidang drop-down. Tipe data dapat berupa String atau Integer. 
**catatan**  
 Nilai null kustom dan tipe datanya harus sama persis agar bidang dikenali sebagai nilai nol dan bidang dihapus. Pencocokan sebagian di mana hanya nilai null kustom yang cocok tetapi tipe data tidak tidak akan mengakibatkan bidang dihapus. 

# Menggunakan kueri SQL untuk mengubah data
<a name="transforms-sql"></a>

Anda dapat menggunakan transformasi **SQL** untuk menulis transformasi Anda sendiri dalam bentuk kueri SQL.

Sebuah simpul transformasi SQL dapat memiliki beberapa set data sebagai input, tetapi hanya menghasilkan set data tunggal sebagai output. Ia berisi bidang teks, di mana Anda memasukkan kueri Apache SparkSQL. Anda dapat menetapkan alias untuk setiap set data yang digunakan sebagai masukan, untuk membantu hanya kueri SQL. Untuk informasi lebih lanjut tentang sintaksis SQL, lihat [dokumentasi Spark SQL](https://spark.apache.org/docs/latest/sql-ref.html).

**catatan**  
Jika Anda menggunakan transformasi Spark SQL dengan sumber data yang terletak di VPC, tambahkan VPC endpoint AWS Glue ke VPC yang berisi sumber data. Untuk informasi selengkapnya tentang konfigurasi titik akhir pengembangan, lihat [Menambah Titik Akhir Pengembangan](https://docs.aws.amazon.com/glue/latest/dg/add-dev-endpoint.html), [Menyiapkan Lingkungan Anda untuk Titik Akhir Pengembangan](https://docs.aws.amazon.com/glue/latest/dg/start-development-endpoint.html), dan [Mengakses Titik Akhir Pengembangan Anda](https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint-elastic-ip.html) dalam *Panduan Developer AWS Glue *.

**Untuk menggunakan simpul transformasi SQL ke diagram tugas Anda**

1. (Opsional) Tambahkan simpul transformasi ke diagram tugas, jika diperlukan. Pilih **SQL Query** untuk jenis node.
**catatan**  
 Jika Anda menggunakan sesi pratinjau data dan SQL kustom atau node kode kustom, sesi pratinjau data akan mengeksekusi SQL atau blok kode apa adanya untuk seluruh kumpulan data. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah simpul induk belum dipilih, atau jika Anda ingin beberapa masukan untuk transformasi SQL, pilih sebuah simpul dari **Induk simpul** yang akan digunakan sebagai sumber masukan untuk transformasi. Tambahkan simpul induk tambahan sesuai kebutuhan.

1. Pilih tab **Transformasi** di panel detail simpul. 

1. Set data sumber untuk kueri SQL diidentifikasi berdasarkan nama yang Anda tentukan dalam bidang **Nama** untuk setiap simpul. Jika Anda tidak ingin menggunakan nama-nama ini, atau jika nama-nama tidak cocok untuk kueri SQL, maka Anda dapat mengaitkan nama untuk setiap set data. Konsol tersebut menyediakan alias default, seperti `MyDataSource`.

   Sebagai contoh, jika induk simpul untuk simpul transformasi SQL bernama `Rename Org PK field`, Anda dapat mengaitkan nama `org_table` dengan set data ini. Alias ini kemudian dapat digunakan dalam kueri SQL sebagai ganti nama simpul. 

1. Dalam bidang entri teks pada judul **Blok kode**, tempel atau masukkan kueri SQL. Bidang teks menampilkan penyorotan sintaksis SQL dan saran kata kunci.

1. Dengan simpul transformasi SQL yang sudah dipilih, pilih tab **Skema output**, dan kemudian pilih **Edit**. Berikan kolom dan tipe data yang menggambarkan bidang output kueri SQL.

   Tentukan skema menggunakan tindakan berikut di bagian **Skema output** pada halaman tersebut:
   + Untuk mengubah nama kolom, tempatkan kursor di kotak teks **Kunci** untuk kolom (juga disebut sebagai *bidang* atau *kunci properti*) dan masukkan nama baru.
   + Untuk mengubah tipe data untuk kolom, pilih tipe data baru untuk kolom tersebut dari daftar drop-down.
   + Untuk menambahkan kolom tingkat atas baru pada skema, pilih tombol Overflow (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/edit-schema-actions-button.png)), dan kemudian pilih **Tambah kunci akar**. Kolom baru ditambahkan di bagian atas skema.
   + Untuk menghapus kolom dari skema, pilih ikon hapus (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/delete-icon-black.png)) di ujung kanan nama kunci. 

1. Setelah Anda selesai menentukan skema output, pilih **Terapkan** untuk menyimpan perubahan dan keluar dari editor skema. Jika Anda tidak ingin menyimpan perubahan, pilih **Batalkan** untuk mengedit editor skema.

1. (Opsional) Setelah mengkonfigurasi properti simpul dan properti transformasi, Anda dapat melihat pratinjau set data yang diubah dengan memilih tab **Pratinjau data** di panel detail simpul. Pertama kali Anda memilih tab ini untuk setiap simpul dalam tugas Anda, Anda akan diminta untuk memberikan IAM role untuk mengakses data. Ada biaya yang terkait dengan penggunaan fitur ini, dan penagihan akan dimulai langsung setelah Anda memberikan IAM role.

# Menggunakan Agregat untuk melakukan perhitungan ringkasan pada bidang yang dipilih
<a name="transforms-aggregate-fields"></a>

**Untuk menggunakan transformasi Agregat**

1.  Tambahkan node Agregat ke diagram pekerjaan. 

1.  Pada tab **Properti Node**, pilih bidang untuk dikelompokkan bersama dengan memilih bidang drop-down (opsional). Anda dapat memilih lebih dari satu bidang sekaligus atau mencari nama bidang dengan mengetikkan di bilah pencarian. 

    Ketika bidang dipilih, nama dan tipe data ditampilkan. Untuk menghapus bidang, pilih 'X' di bidang.   
![\[Tangkapan layar menunjukkan tab Transform untuk node Aggregate.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/Aggregate-transform-tab.png)

1.  Pilih **Agregat kolom lain**. Diperlukan untuk memilih setidaknya satu bidang.   
![\[Tangkapan layar menunjukkan bidang saat memilih Agregat kolom lain.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/Aggregate-fieldtoaggregate.png)

1.  Pilih bidang di **bidang untuk agregat** drop-down. 

1.  Pilih fungsi agregasi untuk diterapkan ke bidang yang dipilih: 
   +  rata-rata - menghitung rata-rata 
   +  CountDistinct - menghitung jumlah nilai non-null yang unik 
   +  count - menghitung jumlah nilai non-null 
   +  pertama - mengembalikan nilai pertama yang memenuhi kriteria 'kelompok dengan' 
   +  last - mengembalikan nilai terakhir yang memenuhi kriteria 'grup dengan' 
   +  kurtosis - menghitung ketajaman puncak kurva distribusi frekuensi 
   +  max - mengembalikan nilai tertinggi yang memenuhi kriteria 'kelompok dengan' 
   +  min - mengembalikan nilai terendah yang memenuhi kriteria 'kelompok dengan' 
   +  kemiringan - ukuran asimetri distribusi probabilitas distribusi normal 
   +  stddev\$1pop - menghitung standar deviasi populasi dan mengembalikan akar kuadrat dari varians populasi 
   +  jumlah - jumlah semua nilai dalam kelompok 
   +  SumDistinct - jumlah nilai yang berbeda dalam kelompok 
   +  var\$1samp - varians sampel grup (mengabaikan nol) 
   +  var\$1pop - varians populasi grup (mengabaikan nol) 

# Ratakan struct bersarang
<a name="transforms-flatten"></a>

*Ratakan* bidang struct bersarang dalam data, sehingga menjadi bidang tingkat atas. Bidang baru diberi nama menggunakan nama bidang yang diawali dengan nama bidang struct untuk mencapainya, dipisahkan oleh titik-titik. 

Misalnya, jika data memiliki bidang tipe Struct bernama “phone\$1numbers”, yang di antara bidang lainnya memiliki salah satu tipe “Struct” bernama “home\$1phone” dengan dua bidang: “country\$1code” dan “number”. Setelah diratakan, kedua bidang ini akan menjadi bidang tingkat atas bernama: “phone\$1numbers.home\$1phone.country\$1code” dan “phone\$1numbers.home\$1phone.number” masing-masing.

**Untuk menambahkan node transformasi *Flatten* dalam diagram pekerjaan Anda**

1. Buka panel Resource dan kemudian pilih tab **Transforms**, lalu **Flatten** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Anda juga dapat menggunakan bilah pencarian dengan memasukkan 'Ratakan', lalu mengklik simpul Flatten. Node yang dipilih pada saat menambahkan node akan menjadi induknya.  
![\[Tangkapan layar menunjukkan Panel Sumber Daya dan bilah pencarian yang diisi dengan kata 'Flatten'. Hasil pencarian menunjukkan transformasi Flatten.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transform-flatten.png)

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. (Opsional) Pada tab **Transform**, Anda dapat membatasi level bersarang maksimum untuk meratakan. Misalnya, menyetel nilai itu ke 1 berarti hanya struct tingkat atas yang akan diratakan. Mengatur max ke 2 akan meratakan level atas dan struct langsung di bawahnya.

# Tambahkan kolom UUID
<a name="transforms-uuid"></a>

Saat Anda menambahkan kolom *UUID* (Universally Unique Identified), setiap baris akan diberi string 36 karakter yang unik.

**Untuk menambahkan node transformasi *UUID* dalam diagram pekerjaan Anda**

1. Buka panel Resource dan kemudian pilih **UUID** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. (Opsional) Pada **Transform** tab, Anda dapat menyesuaikan nama kolom baru. Secara default akan diberi nama “uuid”.

# Tambahkan kolom pengenal
<a name="transforms-identifier"></a>

Tetapkan *Identifier* numerik untuk setiap baris dalam kumpulan data.

**Untuk menambahkan node transformasi *Identifier* dalam diagram pekerjaan Anda**

1. Buka panel Resource dan kemudian pilih **Identifier** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. (Opsional) Pada **Transform** tab, Anda dapat menyesuaikan nama kolom baru. Secara default, itu akan diberi nama “id”.

1. (Opsional) Jika pekerjaan memproses dan menyimpan data secara bertahap, Anda ingin menghindari id yang sama untuk digunakan kembali di antara pekerjaan berjalan.

   Pada tab **Transform**, tandai opsi kotak centang **unik**. Ini akan menyertakan stempel waktu pekerjaan di pengenal, membuatnya unik di antara beberapa proses. Untuk memungkinkan angka yang lebih besar, kolom bukan tipe panjang akan menjadi desimal.

# Ubah kolom menjadi tipe stempel waktu
<a name="transforms-to-timestamp"></a>

Anda dapat menggunakan *stempel waktu transformasi Ke* untuk mengubah tipe data kolom numerik atau string menjadi stempel waktu, sehingga dapat disimpan dengan tipe data tersebut atau diterapkan ke transformasi lain yang memerlukan stempel waktu.

**Untuk menambahkan simpul transformasi To *timestamp* di diagram pekerjaan Anda**

1. Buka panel Resource dan kemudian pilih To **timestamp** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan nama kolom yang akan dikonversi.

1. Pada tab **Transform**, tentukan cara mengurai kolom yang dipilih dengan memilih jenisnya.

   Jika nilainya adalah angka, itu dapat dinyatakan dalam detik (stempel waktu Unix/Python), milidetik atau mikrodetik, pilih opsi yang sesuai.

   Jika nilainya adalah string yang diformat, pilih tipe “iso”, string harus sesuai dengan salah satu varian format ISO, misalnya: “2022-11-02T 14:40:59.915 Z”.

   Jika Anda tidak tahu jenisnya pada saat ini atau baris yang berbeda menggunakan tipe yang berbeda, maka Anda dapat memilih” deteksi otomatis “dan sistem akan membuat tebakan terbaiknya, dengan biaya kinerja yang kecil.

1. (Opsional) Pada tab **Transform**, alih-alih mengonversi kolom yang dipilih, Anda dapat membuat yang baru dan menyimpan yang asli dengan memasukkan nama untuk kolom baru.

# Ubah kolom stempel waktu menjadi string yang diformat
<a name="transforms-format-timestamp"></a>

Format kolom timestamp menjadi string berdasarkan pola. Anda dapat menggunakan *stempel waktu Format* untuk mendapatkan tanggal dan waktu sebagai string dengan format yang diinginkan. Anda dapat menentukan format menggunakan [sintaks tanggal Spark](https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html) serta sebagian besar kode tanggal [Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).

Misalnya, jika Anda ingin string tanggal Anda diformat seperti “2023-01-01 00:00”, Anda dapat menentukan format tersebut menggunakan sintaks Spark sebagai “HH:mm” atau kode tanggal Python yang setara sebagai “%y-%m-%d %H: %Myyyy-MM-dd ”

**Untuk menambahkan node transformasi *stempel waktu Format* dalam diagram pekerjaan Anda**

1. Buka panel Resource dan kemudian pilih **Format timestamp** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan nama kolom yang akan dikonversi.

1. Pada tab **Transform**, masukkan pola **format Timestamp** untuk digunakan, dinyatakan menggunakan [sintaks tanggal Spark atau kode tanggal](https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html) [Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).

1. (Opsional) Pada tab **Transform**, alih-alih mengonversi kolom yang dipilih, Anda dapat membuat yang baru dan menyimpan yang asli dengan memasukkan nama untuk kolom baru.

# Membuat transformasi Router Bersyarat
<a name="transforms-conditional-router"></a>

 Transformasi Router Bersyarat memungkinkan Anda menerapkan beberapa kondisi ke data yang masuk. Setiap baris data yang masuk dievaluasi oleh kondisi filter grup dan diproses menjadi grup yang sesuai. Jika baris memenuhi lebih dari satu kondisi filter grup, transformasi meneruskan baris ke beberapa grup. Jika baris tidak memenuhi kondisi apa pun, itu dapat dijatuhkan atau dirutekan ke grup keluaran default. 

 Transformasi ini mirip dengan transformasi filter, tetapi berguna bagi pengguna yang ingin menguji data input yang sama pada beberapa kondisi. 

**Untuk menambahkan transformasi Router Bersyarat:**

1.  Pilih node tempat Anda akan melakukan transformasi router bersyarat. Ini bisa berupa simpul sumber atau transformasi lain. 

1.  Pilih **Tindakan**, lalu gunakan bilah pencarian untuk menemukan dan memilih 'Conditional Router'. Transformasi **Router Bersyarat** ditambahkan bersama dengan dua node keluaran. Satu node keluaran, 'Grup default', berisi catatan yang tidak memenuhi salah satu kondisi yang ditentukan dalam node keluaran lainnya. Grup default tidak dapat diedit.   
![\[Tangkapan layar menunjukkan node transformasi router bersyarat yang terhubung ke node sumber. Node keluaran ditampilkan bercabang dari node router bersyarat.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transform-conditional-router-node.png)

    Anda dapat menambahkan grup keluaran tambahan dengan memilih **Tambah grup**. Untuk setiap grup keluaran, Anda dapat memberi nama grup dan menambahkan kondisi filter dan operator logis.   
![\[Tangkapan layar menunjukkan tab transformasi router bersyarat dengan opsi untuk memberi nama grup keluaran, operator logis, dan filter bersyarat.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transform-conditional-router-tab.png)

1.  Ganti nama nama grup keluaran dengan memasukkan nama baru untuk grup. AWS Glue Studioakan secara otomatis memberi nama grup Anda untuk Anda (misalnya, 'output\$1group\$11'). 

1.  Pilih operator logis (**AND**, **OR**) dan tambahkan **kondisi Filter** dengan menentukan **Kunci**, **Operasi**, dan **Nilai**. Operator logis memungkinkan Anda untuk menerapkan lebih dari satu kondisi filter dan melakukan operator logis pada setiap kondisi filter yang Anda tentukan. 

    Saat menentukan kunci, Anda dapat memilih dari kunci yang tersedia dalam skema Anda. Anda kemudian dapat memilih operasi yang tersedia tergantung pada jenis kunci yang Anda pilih. Misalnya, jika tipe kuncinya adalah 'string', maka operasi yang tersedia untuk dipilih adalah 'cocok'.   
![\[Tangkapan layar menunjukkan tab transformasi router bersyarat dengan bidang kondisi filter untuk kunci, operasi, dan nilai.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transform-conditional-router-filter-condition.png)

1.  Masukkan nilai di bidang **Nilai**. Untuk menambahkan kondisi filter tambahan, pilih **Tambahkan kondisi**. Untuk menghapus kondisi filter, pilih ikon tempat sampah. 

# Menggunakan transformasi Kolom Concatenate untuk menambahkan kolom
<a name="transforms-concatenate-columns"></a>

 Transformasi Concatenate memungkinkan Anda membangun kolom string baru menggunakan nilai kolom lain dengan spacer opsional. Misalnya, jika kita mendefinisikan kolom gabungan “tanggal” sebagai rangkaian “tahun”, “bulan” dan “hari” (dalam urutan itu) dengan “-” sebagai spacer, kita akan mendapatkan: 


| hari | bulan | tahun | date | 
| --- | --- | --- | --- | 
| 01 | 01 | 2020 | 2020-01-01 | 
| 02 | 01 | 2020 | 2020-01-02 | 
| 03 | 01 | 2020 | 2020-01-03 | 
| 04 | 01 | 2020 | 2020-01-04 | 

**Untuk menambahkan transformasi Concatenate:**

1. Buka panel Sumber Daya. Kemudian pilih **Concatenate Columns** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan nama kolom yang akan menahan string gabungan serta kolom untuk digabungkan. Urutan di mana Anda memeriksa kolom di dropdown akan menjadi urutan yang digunakan.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Concatenate.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-concatenate-transform-tab.png)

1. **Spacer - opsional** - Masukkan string untuk ditempatkan di antara bidang gabungan. Secara default, tidak ada spacer.

1. **Nilai nol - opsional** - Masukkan string untuk digunakan ketika nilai kolom adalah nol. Secara default, dalam kasus di mana kolom memiliki nilai 'NULL' atau 'NA', string kosong digunakan.

# Menggunakan transformasi Split String untuk memecah kolom string
<a name="transforms-split-string"></a>

 Transformasi Split String memungkinkan Anda memecah string menjadi array token menggunakan ekspresi reguler untuk menentukan bagaimana pemisahan dilakukan. Anda kemudian dapat menyimpan kolom sebagai tipe array atau menerapkan transformasi **Array To Columns** setelah yang ini, untuk mengekstrak nilai array ke bidang tingkat atas, dengan asumsi bahwa setiap token memiliki makna yang kita ketahui sebelumnya. Juga, jika urutan token tidak relevan (misalnya, satu set kategori), Anda dapat menggunakan transformasi **Explode** untuk menghasilkan baris terpisah untuk setiap nilai. 

 Misalnya, Anda dapat membagi kolom “kategori” menggunakan koma sebagai pola untuk menambahkan kolom “categories\$1arr”. 


| product\$1id | kategori | kategori\$1arr | 
| --- | --- | --- | 
| 1 | olahraga, musim dingin | [olahraga, musim dingin] | 
| 2 | kebun, alat-alat | [kebun, alat] | 
| 3 | videogame | [videogame] | 
| 4 | permainan, boardgame, sosial | [permainan, boardgame, sosial] | 

**Untuk menambahkan transformasi Split String:**

1. Buka panel Resource dan kemudian pilih Split String untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab properti Node, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, pilih kolom untuk dibagi dan masukkan pola yang akan digunakan untuk membagi string. Dalam kebanyakan kasus, Anda hanya dapat memasukkan karakter kecuali jika memiliki arti khusus sebagai ekspresi reguler dan perlu diloloskan. Karakter yang perlu melarikan diri adalah: `\.[]{}()<>*+-=!?^$|` dengan menambahkan garis miring terbalik di depan karakter. Misalnya jika Anda ingin memisahkan dengan titik ('.') Anda harus memasukkan`\.`. Namun, koma tidak memiliki arti khusus dan hanya dapat ditentukan apa adanya:`,`.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Split String.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-split-string-transform-tab.png)

1. (Opsional) Jika Anda ingin menyimpan kolom string asli, maka Anda dapat memasukkan nama untuk kolom array baru, dengan cara ini menjaga kolom string asli dan kolom array tokenized baru.

# Menggunakan transformasi Array To Columns untuk mengekstrak elemen array ke kolom tingkat atas
<a name="transforms-array-to-columns"></a>

 Transformasi Array To Columns memungkinkan Anda mengekstrak beberapa atau semua elemen kolom tipe array ke kolom baru. Transformasi akan mengisi kolom baru sebanyak mungkin jika array memiliki nilai yang cukup untuk diekstrak, secara opsional mengambil elemen dalam posisi yang ditentukan. 

 Misalnya, jika Anda memiliki kolom array “subnet”, yang merupakan hasil dari penerapan transformasi “Split String” pada subnet ip v4, Anda dapat mengekstrak posisi pertama dan seterusnya ke kolom baru “first\$1octect” dan “forth\$1octect”. Output dari transformasi dalam contoh ini adalah (perhatikan dua baris terakhir memiliki array yang lebih pendek dari yang diharapkan): 


| subnet | first\$1octect | keempat\$1oktek | 
| --- | --- | --- | 
| [54, 240, 197, 238] | 54 | 238 | 
| [192, 168, 0, 1] | 192 | 1 | 
| [192, 168] | 192 |  | 
| [] |  |  | 

**Untuk menambahkan transformasi Array Ke Kolom:**

1. Buka panel Resource dan kemudian pilih **Array To Columns untuk** menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, pilih kolom array untuk mengekstrak dan masukkan daftar kolom baru untuk token yang diekstrak.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Array To Columns.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-array-to-columns-transform-tab.png)

1. (Opsional) Jika Anda tidak ingin mengambil token array untuk menetapkan ke kolom, Anda dapat menentukan indeks yang akan diambil yang akan ditetapkan ke daftar kolom dalam urutan yang sama ditentukan. Misalnya jika kolom output adalah “column1, column2, column3" dan indeks “4, 1, 3", elemen keempat dari array akan pergi ke column1, yang pertama ke column2 dan yang ketiga ke column3 (jika array lebih pendek dari nomor indeks, nilai NULL akan ditetapkan).

# Menggunakan transformasi Add Current Timestamp
<a name="transforms-add-current-timestamp"></a>

 Transformasi **Add Current Timestamp** memungkinkan Anda menandai baris dengan waktu pemrosesan data. Ini berguna untuk tujuan audit atau untuk melacak latensi dalam pipa data. Anda dapat menambahkan kolom baru ini sebagai tipe data stempel waktu atau string yang diformat. 

**Untuk menambahkan transformasi Add Current Timestamp:**

1. Buka panel Resource dan kemudian pilih **Add Current Timestamp** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya. 

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Add Current Timestamp.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-add-current-timestamp-transform-tab.png)

1. (Opsional) Pada **Transform** tab, masukkan nama khusus untuk kolom baru dan format jika Anda lebih suka kolom menjadi string tanggal yang diformat.

# Menggunakan Pivot Rows to Columns transform
<a name="transforms-pivot-rows-to-columns"></a>

 Transformasi **Pivot Rows to Columns** memungkinkan Anda untuk menggabungkan kolom numerik dengan memutar nilai unik pada kolom terpilih yang menjadi kolom baru (jika beberapa kolom dipilih, nilainya digabungkan untuk memberi nama kolom baru). Dengan begitu baris dikonsolidasikan sementara memiliki lebih banyak kolom dengan agregasi parsi untuk setiap nilai unik. Misalnya, jika Anda memiliki kumpulan data penjualan ini berdasarkan bulan dan negara (diurutkan agar lebih mudah diilustrasikan): 


| tahun | bulan | negeri | jumlah | 
| --- | --- | --- | --- | 
| 2020 | Jan | inggris | 32 | 
| 2020 | Jan | de | 42 | 
| 2020 | Jan | µs | 64 | 
| 2020 | Februari | inggris | 67 | 
| 2020 | Februari | de | 4 | 
| 2020 | Februari | de | 7 | 
| 2020 | Februari | µs | 6 | 
| 2020 | Februari | µs | 12 | 
| 2020 | Jan | µs | 90 | 

 **Jika **jumlah** pivot dan **negara** sebagai kolom agregasi, kolom baru akan dibuat dari kolom negara asli.** Pada tabel di bawah ini, Anda memiliki kolom baru untuk **de**, **uk**, dan **kami**, bukan kolom **negara**. 


| tahun | bulan | de | inggris | µs | 
| --- | --- | --- | --- | --- | 
| 2020 | Jan | 42 | 32 | 64 | 
| 2020 | Jan | 11 | 67 | 18 | 
| 2021 | Jan |  |  | 90 | 

 Jika sebaliknya Anda ingin memutar bulan dan kabupaten, Anda mendapatkan kolom untuk setiap kombinasi nilai kolom tersebut: 


| tahun | Jan\$1de | Jan\$1UK | Jan\$1us | Feb\$1de | Feb\$1Inggris | Feb\$1US | 
| --- | --- | --- | --- | --- | --- | --- | 
| 2020 | 42 | 32 | 64 | 11 | 67 | 18 | 
| 2021 |  |  | 90 |  |  |  | 

**Untuk menambahkan transformasi Pivot Rows To Columns:**

1. Buka panel Resource dan kemudian pilih **Pivot Rows To Columns untuk** menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, pilih kolom numerik yang akan digabungkan untuk menghasilkan nilai untuk kolom baru, fungsi agregasi untuk diterapkan dan kolom untuk mengubah nilai uniknya menjadi kolom baru.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Pivot Rows To Columns.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-pivot-rows-to-columns-transform-tab.png)

# Menggunakan transformasi Kolom Unpivot Ke Baris
<a name="transforms-unpivot-columns-to-rows"></a>

 Transformasi **Unpivot** memungkinkan Anda mengonversi kolom menjadi nilai kolom baru yang menghasilkan baris untuk setiap nilai unik. Ini kebalikan dari pivot tetapi perhatikan bahwa itu tidak setara karena tidak dapat memisahkan baris dengan nilai identik yang digabungkan atau membagi kombinasi ke dalam kolom asli (Anda dapat melakukannya nanti menggunakan transformasi Split). Misalnya, jika Anda memiliki tabel berikut: 


| tahun | bulan | de | inggris | µs | 
| --- | --- | --- | --- | --- | 
| 2020 | Jan | 42 | 32 | 64 | 
| 2020 | Februari | 11 | 67 | 18 | 
| 2021 | Jan |  |  | 90 | 

 Anda dapat membuka pivot kolom: “de”, “uk” dan “us” ke dalam kolom “negara” dengan nilai “jumlah”, dan dapatkan yang berikut (diurutkan di sini untuk tujuan ilustrasi): 


| tahun | bulan | negeri | jumlah | 
| --- | --- | --- | --- | 
| 2020 | Jan | inggris | 32 | 
| 2020 | Jan | de | 42 | 
| 2020 | Jan | µs | 64 | 
| 2020 | Februari | inggris | 67 | 
| 2020 | Februari | de | 11 | 
| 2020 | Februari | µs | 18 | 
| 2021 | Jan | µs | 90 | 

 Perhatikan kolom yang memiliki nilai NULL (“de” dan “uk of Jan 2021) tidak dihasilkan secara default. Anda dapat mengaktifkan opsi itu untuk mendapatkan: 


| tahun | bulan | negeri | jumlah | 
| --- | --- | --- | --- | 
| 2020 | Jan | inggris | 32 | 
| 2020 | Jan | de | 42 | 
| 2020 | Jan | µs | 64 | 
| 2020 | Februari | inggris | 67 | 
| 2020 | Februari | de | 11 | 
| 2020 | Februari | µs | 18 | 
| 2021 | Jan | µs | 90 | 
| 2021 | Jan | de |  | 
| 2021 | Jan | inggris |  | 

**Untuk menambahkan Kolom Unpivot ke Rows transform:**

1. Buka panel Resource dan kemudian pilih **Unpivot Columns to Rows** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan kolom baru yang akan dibuat untuk menyimpan nama dan nilai kolom yang dipilih untuk di-unpivot.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Unpivot Columns To Rows.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-unpivot-columns-to-rows-transform-tab.png)

# Menggunakan transformasi Autobalance Processing untuk mengoptimalkan runtime Anda
<a name="transforms-autobalance-processing"></a>

 Transformasi **Autobalance Processing** mendistribusikan kembali data di antara para pekerja untuk kinerja yang lebih baik. Ini membantu dalam kasus di mana data tidak seimbang atau karena berasal dari sumber tidak memungkinkan pemrosesan paralel yang cukup di atasnya. Ini umum terjadi di mana sumbernya di-gzip atau JDBC. Redistribusi data memiliki biaya kinerja yang sederhana, sehingga optimasi mungkin tidak selalu mengkompensasi upaya itu jika data sudah seimbang. Di bawahnya, transformasi menggunakan repartisi Apache Spark untuk menetapkan kembali data secara acak di antara sejumlah partisi yang optimal untuk kapasitas cluster. Untuk pengguna tingkat lanjut, dimungkinkan untuk memasukkan sejumlah partisi secara manual. Selain itu, dapat digunakan untuk mengoptimalkan penulisan tabel yang dipartisi dengan mengatur ulang data berdasarkan kolom yang ditentukan. Ini menghasilkan file output yang lebih terkonsolidasi. 

****

1. Buka panel Resource dan kemudian pilih **Autobalance Processing** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. (Opsional) Pada tab **Transform**, Anda dapat memasukkan sejumlah partisi. Secara umum, disarankan agar Anda membiarkan sistem memutuskan nilai ini, namun Anda dapat menyetel pengganda atau memasukkan nilai tertentu jika Anda perlu mengontrolnya. Jika Anda akan menyimpan data yang dipartisi oleh kolom, Anda dapat memilih kolom yang sama dengan kolom partisi ulang. Dengan cara ini akan meminimalkan jumlah file pada setiap partisi dan menghindari memiliki banyak file per partisi, yang akan menghambat kinerja alat yang menanyakan data tersebut.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Autobalance Processing.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-autobalance-processing-transform-tab.png)

# Menggunakan transformasi Kolom Derived untuk menggabungkan kolom lain
<a name="transforms-derived-column"></a>

 Transformasi **Kolom Derived** memungkinkan Anda untuk menentukan kolom baru berdasarkan rumus matematika atau ekspresi SQL di mana Anda dapat menggunakan kolom lain dalam data, serta konstanta dan literal. Misalnya, untuk mendapatkan kolom “persentase” dari kolom “sukses” dan “hitung”, Anda dapat memasukkan ekspresi SQL: “sukses \$1 100/count \$1\$1 '%'”. 

 Contoh hasil: 


| keberhasilan | count | persentase | 
| --- | --- | --- | 
| 14 | 100 | 14% | 
| 6 | 20 | 3% | 
| 3 | 40 | 7,5% | 

**Untuk menambahkan transformasi Kolom Derived:**

1. Buka panel Resource dan kemudian pilih **Derived Column** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan nama kolom dan ekspresi untuk kontennya.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Kolom Derived.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-dervied-column-transform-tab.png)

# Menggunakan transformasi Lookup untuk menambahkan data yang cocok dari tabel katalog
<a name="transforms-lookup"></a>

 Transformasi **Pencarian** memungkinkan Anda menambahkan kolom dari tabel katalog yang ditentukan saat kunci cocok dengan kolom pencarian yang ditentukan dalam data. Ini setara dengan melakukan gabungan luar kiri antara data dan tabel pencarian menggunakan kolom pencocokan kondisi. 

**Untuk menambahkan transformasi Pencarian:**

1. Buka panel Resource dan kemudian pilih **Lookup** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan nama tabel katalog yang memenuhi syarat untuk digunakan untuk melakukan pencarian. Misalnya, jika database Anda adalah “mydb” dan tabel Anda “mytable” kemudian masukkan “mydb.mytable”. Kemudian masukkan kriteria untuk menemukan kecocokan di tabel pencarian, jika kunci pencarian disusun. Masukkan daftar kolom kunci yang dipisahkan dengan koma. Jika satu atau beberapa kolom kunci tidak memiliki nama yang sama maka Anda perlu menentukan pemetaan kecocokan. 

   Misalnya, jika kolom data adalah “user\$1id” dan “region” dan di tabel pengguna kolom yang sesuai diberi nama “id” dan “region “, lalu di **kolom Kolom yang cocok**, masukkan:” user\$1id = id, region”. Anda dapat melakukan region=region tetapi tidak diperlukan karena mereka sama.

1. Terakhir, masukkan kolom untuk dibawa dari baris yang cocok di tabel pencarian untuk memasukkannya ke dalam data. Jika tidak ada kecocokan yang ditemukan, kolom tersebut akan disetel ke NULL.
**catatan**  
Di bawah transformasi **Pencarian**, ia menggunakan gabungan kiri agar efisien. Jika tabel pencarian memiliki kunci komposit, pastikan kolom yang cocok diatur agar sesuai dengan semua kolom kunci sehingga hanya satu kecocokan yang dapat terjadi. Jika tidak, beberapa baris pencarian akan cocok dan ini akan menghasilkan baris tambahan yang ditambahkan untuk masing-masing kecocokan tersebut.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Pencarian.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-lookup-transform-tab.png)

# Menggunakan transformasi Explode Array atau Map Into Rows
<a name="transforms-explode-array"></a>

 Transformasi **Explode** memungkinkan Anda mengekstrak nilai dari struktur bersarang menjadi baris individual yang lebih mudah dimanipulasi. Dalam kasus array, transformasi akan menghasilkan baris untuk setiap nilai array, mereplikasi nilai untuk kolom lain di baris. Dalam kasus peta, transformasi akan menghasilkan baris untuk setiap entri dengan kunci dan nilai sebagai kolom ditambah kolom lain di baris. 

 Misalnya, jika kita memiliki kumpulan data ini yang memiliki kolom array “kategori” dengan beberapa nilai. 


| product\$1id | kategori | 
| --- | --- | 
| 1 | [olahraga, musim dingin] | 
| 2 | [kebun, alat] | 
| 3 | [videogame] | 
| 4 | [permainan, boardgame, sosial] | 
| 5 | [] | 

 Jika Anda meledakkan kolom 'kategori' ke dalam kolom dengan nama yang sama, Anda akan mengganti kolom tersebut. Anda dapat memilih yang ingin Anda NULLs sertakan untuk mendapatkan yang berikut (dipesan untuk tujuan ilustrasi): 


| product\$1id | kategori | 
| --- | --- | 
| 1 | olahraga | 
| 1 | musim dingin | 
| 2 | taman | 
| 2 | alat | 
| 3 | videogame | 
| 4 | gim | 
| 4 | permainan papan | 
| 4 | sosial | 
| 5 |  | 

**Untuk menambahkan transformasi Explode Array Atau Map Into Rows:**

1. Buka panel Resource dan kemudian pilih **Explode Array Or Map Into Rows** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. (Opsional) Pada tab **properti Node**, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar Induk simpul untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, pilih kolom yang akan meledak (harus berupa array atau tipe peta). Kemudian masukkan nama untuk kolom untuk item array atau nama kolom untuk kunci dan nilai jika Anda meledakkan peta.

1. (Opsional) Pada **Transform** tab, secara default jika kolom yang akan meledak adalah NULL atau memiliki struktur kosong, itu akan dihilangkan pada kumpulan data yang meledak. Jika Anda ingin menyimpan baris (dengan kolom baru sebagai NULL) maka centang “Sertakan NULLs”.  
![\[Tangkapan layar menunjukkan tab Transform untuk transformasi Explode Array atau Map Into Rows.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/transforms-explode-array-transform-tab.png)

# Menggunakan transformasi Record Matching untuk menjalankan transformasi klasifikasi data yang ada
<a name="transforms-record-matching"></a>

Transformasi ini memanggil transformasi klasifikasi data pembelajaran mesin Record Matching yang ada.

Transformasi mengevaluasi data saat ini terhadap model terlatih berdasarkan label. Kolom “match\$1id” ditambahkan untuk menetapkan setiap baris ke sekelompok item yang dianggap setara berdasarkan pelatihan algoritma. Untuk informasi lebih lanjut, lihat [Rekam pencocokan dengan Lake Formation FindMatches](https://docs.aws.amazon.com/glue/latest/dg/machine-learning.html).

**catatan**  
Versi yang AWS Glue digunakan oleh pekerjaan visual harus cocok dengan versi yang AWS Glue digunakan untuk membuat transformasi Record Matching.

![\[Tangkapan layar menunjukkan pratinjau data untuk transformasi.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/recording-matching-transform-1.png)


**Untuk menambahkan node transformasi Record Matching ke diagram pekerjaan Anda**

1. Buka panel Resource, lalu pilih **Record Matching** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. Di panel properti node, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan ID yang diambil dari halaman **Transformasi pembelajaran mesin**:  
![\[Tangkapan layar menunjukkan ID dari halaman Transformasi pembelajaran mesin.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/recording-matching-transform-2.png)

1. (Opsional) Pada **Transform** tab, Anda dapat mencentang opsi untuk menambahkan skor kepercayaan. Dengan biaya komputasi ekstra, model akan memperkirakan skor kepercayaan untuk setiap pertandingan sebagai kolom tambahan.

# Menghapus baris nol
<a name="transforms-remove-null-rows"></a>

Transformasi ini menghapus dari baris dataset yang memiliki semua kolom sebagai null. Selain itu, Anda dapat memperluas kriteria ini untuk menyertakan bidang kosong, sehingga dapat menjaga baris di mana setidaknya satu kolom tidak kosong.

**Untuk menambahkan Remove Null Rows, ubah node ke diagram pekerjaan Anda**

1. Buka panel Resource, lalu pilih **Remove Null Rows** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. Di panel properti node, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. (Opsional) Pada tab **Transform**, centang opsi **Extended** jika Anda ingin meminta baris tidak hanya untuk tidak menjadi nol tetapi juga tidak kosong, dengan cara ini string kosong, array atau peta akan dianggap nol untuk tujuan transformasi ini.

# Mengurai kolom string yang berisi data JSON
<a name="transforms-parse-json-column"></a>

Transformasi ini mengurai kolom string yang berisi data JSON dan mengubahnya menjadi struct atau kolom array, tergantung apakah JSON adalah objek atau array, masing-masing. Secara opsional Anda dapat menyimpan kolom yang diurai dan asli.

Skema JSON dapat disediakan atau disimpulkan (dalam kasus objek JSON), dengan pengambilan sampel opsional.

**Untuk menambahkan node transformasi Kolom JSON Parse ke diagram pekerjaan Anda**

1. Buka panel Resource, lalu pilih **Parse JSON Column** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. Di panel properti node, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, pilih kolom yang berisi string JSON.

1. <STRING>(Opsional) Pada tab **Transform**, masukkan skema yang diikuti data JSON menggunakan sintaks SQL, misalnya: “field1 STRING, field2 INT” dalam kasus objek atau “ARRAY” dalam kasus array.

   Jika kasus array skema diperlukan tetapi dalam kasus objek, jika skema tidak ditentukan itu akan disimpulkan menggunakan data. Untuk mengurangi dampak menyimpulkan skema (terutama pada kumpulan data besar), Anda dapat menghindari membaca seluruh data dua kali dengan memasukkan **Rasio sampel yang akan digunakan untuk** menyimpulkan skema. Jika nilainya lebih rendah dari 1, rasio sampel acak yang sesuai digunakan untuk menyimpulkan skema. Jika data dapat diandalkan dan objek konsisten di antara baris, Anda dapat menggunakan rasio kecil seperti 0,1 untuk meningkatkan kinerja.

1. (Opsional) Pada **Transform** tab, Anda dapat memasukkan nama kolom baru jika Anda ingin menyimpan kolom string asli dan kolom yang diuraikan.

# Mengekstrak jalur JSON
<a name="transforms-extract-json-path"></a>

Transformasi ini mengekstrak kolom baru dari kolom string JSON. Transformasi ini berguna ketika Anda hanya membutuhkan beberapa elemen data dan tidak ingin mengimpor seluruh konten JSON ke dalam skema tabel.

**Untuk menambahkan node transformasi Extract JSON Path ke diagram pekerjaan Anda**

1. Buka panel Resource, lalu pilih **Extract JSON Path** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. Di panel properti node, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, pilih kolom yang berisi string JSON. Masukkan salah satu ekspresi jalur JSON yang dipisahkan dengan koma, masing-masing merujuk cara mengekstrak nilai dari array atau objek JSON. Misalnya, jika kolom JSON berisi objek dengan properti “prop\$11" dan “prop2" Anda dapat mengekstrak keduanya dengan menentukan nama mereka “prop\$11, prop\$12".

   Jika bidang JSON memiliki karakter khusus, misalnya untuk mengekstrak properti dari JSON ini `{"a. a": 1}` Anda dapat menggunakan jalur. `$['a. a']` Pengecualian adalah koma karena dicadangkan untuk jalur terpisah. Kemudian masukkan nama kolom yang sesuai untuk setiap jalur, dipisahkan dengan koma.

1. (Opsional) Pada **Transform** tab, Anda dapat memeriksa untuk menjatuhkan kolom JSON setelah diekstraksi, ini masuk akal ketika Anda tidak memerlukan sisa data JSON setelah Anda mengekstrak bagian yang Anda butuhkan.

# Mengekstrak fragmen string menggunakan ekspresi reguler
<a name="transforms-regex-extractor"></a>

Transformasi ini mengekstrak fragmen string menggunakan ekspresi reguler dan membuat kolom baru darinya, atau beberapa kolom jika menggunakan grup regex.

**Untuk menambahkan node transformasi Regex Extractor ke diagram pekerjaan Anda**

1. Buka panel Resource, lalu pilih **Regex Extractor** untuk menambahkan transformasi baru ke diagram pekerjaan Anda. Node yang dipilih pada saat menambahkan node akan menjadi induknya.

1. Di panel properti node, Anda dapat memasukkan nama untuk node dalam diagram pekerjaan. Jika sebuah induk simpul belum dipilih, maka pilihlah sebuah simpul dari daftar **Induk simpul** untuk digunakan sebagai sumber masukan untuk transformasi tersebut.

1. Pada tab **Transform**, masukkan ekspresi reguler dan kolom yang perlu diterapkan. Kemudian masukkan nama kolom baru untuk menyimpan string yang cocok. Kolom baru akan menjadi null hanya jika kolom sumber adalah null, jika regex tidak cocok kolom akan kosong.

   Jika regex menggunakan grup, ada nama kolom yang sesuai dipisahkan dengan koma tetapi Anda dapat melewati grup dengan membiarkan nama kolom kosong.

   Misalnya, jika Anda memiliki kolom “purchase\$1date” dengan string menggunakan format tanggal ISO panjang dan pendek, maka Anda ingin mengekstrak tahun, bulan, hari dan jam, bila tersedia. Perhatikan grup jam adalah opsional, jika tidak di baris yang tidak tersedia, semua grup yang diekstraksi akan menjadi string kosong (karena regex tidak cocok). Dalam hal ini, kami tidak ingin grup membuat waktu opsional tetapi yang dalam, jadi kami membiarkan nama kosong dan tidak diekstraksi (grup itu akan menyertakan karakter T).  
![\[Tangkapan layar menunjukkan konfigurasi ekspresi reguler untuk ekstraktor Regex.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/regex-extractor-1.png)

   Menghasilkan pratinjau data:  
![\[Tangkapan layar menunjukkan konfigurasi pratinjau data untuk ekstraktor Regex.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/regex-extractor-2.png)

# Membuat sebuah transformasi kustom
<a name="transforms-custom"></a>

Jika Anda perlu melakukan transformasi yang lebih rumit pada data Anda, atau ingin menambahkan kunci properti data ke set data, maka Anda dapat menambahkan transformasi **Kode kustom** ke diagram tugas Anda. Simpul kode kustom memungkinkan Anda untuk memasukkan sebuah skrip yang melakukan transformasi. 

Saat menggunakan kode kustom, Anda harus menggunakan editor skema untuk menunjukkan perubahan yang dibuat pada output melalui kode kustom tersebut. Saat mengedit skema, Anda dapat melakukan tindakan-tindakan berikut:
+ Menambah atau menghapus kunci properti data
+ Mengubah jenis data kunci properti data
+ Mengubah nama kunci properti data
+ Melakukan restrukturisasi kunci properti yang di-nest

Anda harus menggunakan *SelectFromCollection*transformasi untuk memilih satu `DynamicFrame` dari hasil node transformasi Kustom Anda sebelum Anda dapat mengirim output ke lokasi target. 

Gunakan tugas berikut untuk menambahkan simpul transformasi kustom ke diagram tugas Anda.

## Menambahkan simpul transformasi kode kustom ke diagram tugas
<a name="transforms-custom-addnode"></a>

**Untuk menambahkan simpul transformasi kustom ke diagram tugas Anda**

1. (Opsional) Buka panel Resource dan kemudian pilih **Custom transform** untuk menambahkan transformasi kustom ke diagram pekerjaan Anda. 

1. Pada tab **Properti simpul**, masukkan nama untuk simpul dalam diagram tugas. Jika sebuah simpul induk belum dipilih, atau jika Anda ingin beberapa masukan untuk transformasi kustom, kemudian pilih sebuah simpul dari **Induk simpul** yang akan digunakan sebagai sumber masukan untuk transformasi.

## Memasukkan kode untuk simpul transformasi kustom
<a name="transforms-custom-addcode"></a>

Anda dapat mengetik atau menyalin kode ke dalam bidang input. Tugas menggunakan kode ini untuk melakukan transformasi data. Anda dapat memberikan potongan kode baik Python atau Scala. Kode harus mengambil satu atau beberapa `DynamicFrames` sebagai masukan dan mengembalikan sebuah koleksi `DynamicFrames`. 

**Untuk memasukkan skrip untuk simpul transformasi kustom**

1. Dengan simpul transformasi kustom yang sudah dipilih dalam diagram tugas, pilih tab **Transformasi**. 

1. Dalam bidang entri teks pada judul **Blok kode**, tempel atau masukkan kode untuk transformasi. Kode yang Anda gunakan harus sesuai dengan bahasa yang ditentukan untuk tugas di tab **Detail tugas**.

   Saat mengacu pada node input dalam kode Anda, AWS Glue Studio beri nama yang `DynamicFrames` dikembalikan oleh node diagram pekerjaan secara berurutan berdasarkan urutan pembuatan. Gunakan salah satu metode penamaan berikut dalam kode Anda:
   + Pembuatan kode klasik — Gunakan nama fungsional untuk merujuk ke node dalam diagram pekerjaan Anda.
     + Simpul sumber data :`DataSource0`, `DataSource1`, `DataSource2`, dan seterusnya.
     + Simpul transformasi: `Transform0`, `Transform1`, `Transform2`, dan seterusnya.
   + Pembuatan kode baru - Gunakan nama yang ditentukan pada tab **properti Node** dari sebuah node, ditambahkan dengan '`_node1`', '`_node2`', dan seterusnya. Misalnya,`S3bucket_node1`, `ApplyMapping_node2``S3bucket_node2`,`MyCustomNodeName_node1`.

   Untuk informasi selengkapnya tentang pembuat kode baru, lihat[Pembuatan kode skrip](job-editor-features.md#code-gen).

Contoh berikut menunjukkan format kode yang akan dimasukkan dalam kotak kode:

------
#### [ Python ]

Contoh berikut mengambil `DynamicFrame` yang pertama diterima, mengonversinya menjadi `DataFrame` untuk menerapkan metode filter asli (hanya menyimpan catatan yang memiliki lebih dari 1000 suara), kemudian mengubahnya kembali menjadi `DynamicFrame` sebelum mengembalikannya.

```
def FilterHighVoteCounts (glueContext, dfc) -> DynamicFrameCollection:
    df = dfc.select(list(dfc.keys())[0]).toDF()
    df_filtered = df.filter(df["vote_count"] > 1000)
    dyf_filtered = DynamicFrame.fromDF(df_filtered, glueContext, "filter_votes")
    return(DynamicFrameCollection({"CustomTransform0": dyf_filtered}, glueContext))
```

------
#### [ Scala ]

Contoh berikut mengambil `DynamicFrame` yang pertama diterima, mengonversinya menjadi `DataFrame` untuk menerapkan metode filter asli (hanya menyimpan catatan yang memiliki lebih dari 1000 suara), kemudian mengubahnya kembali menjadi `DynamicFrame` sebelum mengembalikannya.

```
object FilterHighVoteCounts {
  def execute(glueContext : GlueContext, input : Seq[DynamicFrame]) : Seq[DynamicFrame] = {
    val frame = input(0).toDF()
    val filtered = DynamicFrame(frame.filter(frame("vote_count") > 1000), glueContext)
    Seq(filtered)
  }
}
```

------

## Mengedit skema di simpul transformasi kustom
<a name="transforms-custom-editschema"></a>

Saat Anda menggunakan simpul transformasi khusus, AWS Glue Studio tidak dapat secara otomatis menyimpulkan skema keluaran yang dibuat oleh transformasi. Anda menggunakan editor skema untuk menggambarkan perubahan skema yang diimplementasikan oleh kode transformasi kustom.

Sebuah simpul kode kustom dapat memiliki sejumlah simpul induk, masing-masing menyediakan `DynamicFrame` sebagai masukan untuk kode kustom Anda. Sebuah simpul kode kustom mengembalikan sebuah koleksi `DynamicFrames`. Setiap `DynamicFrame` yang digunakan sebagai masukan memiliki skema terkait. Anda harus menambahkan skema yang menggambarkan setiap `DynamicFrame` yang dikembalikan oleh simpul kode kustom. 

**catatan**  
 Saat Anda mengatur skema Anda sendiri pada transformasi khusus, AWS Glue Studio tidak mewarisi skema dari node sebelumnya. Untuk memperbarui skema, pilih simpul transformasi kustom, lalu pilih tab Pratinjau data. Setelah pratinjau dibuat, pilih 'Use Preview Schema'. Skema kemudian akan digantikan oleh skema menggunakan data pratinjau. 

**Untuk mengedit skema output untuk simpul transformasi kustom**

1. Dengan simpul transformasi kustom yang sudah dipilih dalam diagram tugas, di panel detail simpul, pilih tab **Skema output**. 

1. Pilih **Edit** untuk membuat perubahan pada skema. 

   Jika Anda memiliki kunci properti data yang di-nest, seperti array atau objek, Anda dapat memilih iko **Expand-Rows** (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/expand-rows-icon.png)) di kanan atas dari setiap panel skema untuk memperluas daftar kunci properti data anak. Setelah Anda memilih ikon ini, ia akan berubah ke ikon **Collapse-Rows** (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/collapse-rows-icon.png)), yang dapat Anda pilih untuk menutup daftar kunci properti anak.

1. Memodifikasi skema menggunakan tindakan berikut di bagian di sisi kanan halaman:
   + Untuk mengubah nama kunci properti, tempatkan kursor di kotak teks **Kunci** untuk kunci properti, lalu masukkan nama baru.
   + Untuk mengubah tipe data untuk kunci properti, gunakan daftar untuk memilih tipe data baru untuk kunci properti.
   + Untuk menambahkan kunci properti tingkat atas baru pada skema, pilih ikon **Overflow** (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/edit-schema-actions-button.png)) di sebelah kiri tombol **Batalkan**, dan kemudian pilih **Tambahkan kunci akar**.
   + Untuk menambahkan kunci properti anak untuk skema, pilih ikon **Add-Key** ![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/filter-add-icon.png) yang dikaitkan dengan kunci induk. Pilih nama untuk kunci anak dan pilih tipe data.
   + Untuk menghapus kunci properti dari skema, pilih ikon **Hapus** (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/delete-icon-black.png)) yang ada di ujung kanan nama kunci. 

1. Jika kode transformasi kustom Anda menggunakan beberapa `DynamicFrames`, Anda dapat menambahkan skema output tambahan. 
   + Untuk menambahkan skema baru dan kosong, pilih ikon **Overflow** (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/edit-schema-actions-button.png)), dan kemudian pilih **Tambah skema output**.
   + Untuk menyalin skema yang ada ke skema output baru, pastikan skema yang ingin Anda salin ditampilkan dalam pemilih skema. Pilih ikon **Overflow** (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/edit-schema-actions-button.png)), dan kemudian pilih **Duplikasi**.

   Jika Anda ingin menghapus sebuah skema output, pastikan skema yang ingin Anda salin ditampilkan dalam pemilih skema. Pilih ikon **Overflow** (![\[\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/edit-schema-actions-button.png)), dan kemudian pilih **Hapus**.

1. Menambahkan kunci akar baru untuk skema baru atau mengedit kunci yang diduplikasi. 

1. Ketika Anda memodifikasi skema output, pilih **Terapkan** untuk menyimpan perubahan dan keluar dari editor skema.

   Jika Anda tidak ingin menyimpan perubahan, pilih tombol **Batalkan**.

## Mengkonfigurasi output transformasi kustom
<a name="transforms-custom-output"></a>

Sebuah transformasi kode kustom mengembalikan sebuah koleksi `DynamicFrames`, bahkan jika hanya ada satu `DynamicFrame` di set yang dihasilkan. 

**Untuk memproses output dari sebuah simpul transformasi kustom**

1. Tambahkan node *SelectFromCollection*transformasi, yang memiliki node transformasi kustom sebagai simpul induknya. Perbarui transformasi ini untuk menunjukkan set data yang ingin Anda gunakan. Untuk informasi selengkapnya, lihat [Menggunakan SelectFromCollection untuk memilih kumpulan data mana yang akan disimpan](transforms-configure-select-collection.md).

1. Tambahkan *SelectFromCollection*transformasi tambahan ke diagram pekerjaan jika Anda ingin menggunakan tambahan yang `DynamicFrames` dihasilkan oleh node transformasi kustom. 

   Pertimbangkan skenario di mana Anda menambahkan simpul transformasi kustom untuk membagi set data penerbangan menjadi beberapa set data, tetapi duplikat beberapa kunci properti pengidentifikasi di setiap skema output, seperti tanggal penerbangan atau nomor penerbangan. Anda menambahkan node *SelectFromCollection*transformasi untuk setiap skema output, dengan node transformasi kustom sebagai induknya.

1. (Opsional) Anda kemudian dapat menggunakan setiap node *SelectFromCollection*transformasi sebagai input untuk node lain dalam pekerjaan, atau sebagai induk untuk node target data.