View a markdown version of this page

Membuat dan menggunakan AWS Glue DataBrew resep - AWS Glue DataBrew Panduan Developer

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

Membuat dan menggunakan AWS Glue DataBrew resep

Dalam DataBrew, resep adalah serangkaian langkah transformasi data. Anda dapat menerapkan langkah-langkah ini ke sampel data Anda, atau menerapkan resep yang sama ke kumpulan data.

Cara termudah untuk mengembangkan resep adalah dengan membuat DataBrew proyek, di mana Anda dapat bekerja secara interaktif dengan sampel data Anda—untuk informasi lebih lanjut, lihat. Membuat dan menggunakan AWS Glue DataBrew memproyeksikan Sebagai bagian dari alur kerja pembuatan proyek, resep baru (kosong) dibuat dan dilampirkan ke proyek. Anda kemudian dapat mulai membangun resep Anda dengan menambahkan transformasi data.

catatan

Anda dapat memasukkan hingga 100 transformasi data dalam satu DataBrew resep.

Saat Anda melanjutkan dengan mengembangkan resep Anda, Anda dapat menyimpan pekerjaan Anda dengan menerbitkan resep. DataBrew memelihara daftar versi yang diterbitkan untuk resep Anda. Anda dapat menggunakan versi apa pun yang diterbitkan dalam pekerjaan resep, untuk menjalankan resep (dalam pekerjaan resep) untuk mengubah kumpulan data Anda. Anda juga dapat mengunduh salinan langkah-langkah resep, sehingga Anda dapat menggunakan kembali resep di proyek lain atau transformasi kumpulan data lainnya.

Anda juga dapat mengembangkan DataBrew resep secara terprogram, menggunakan AWS Command Line Interface(AWS CLI) atau salah satu SDK AWS. Dalam DataBrew API, transformasi dikenal sebagai tindakan resep.

catatan

Dalam sesi DataBrew proyek interaktif, setiap transformasi data yang Anda terapkan menghasilkan panggilan ke DataBrew API. Panggilan API ini terjadi secara otomatis, tanpa Anda harus mengetahui detail di balik layar.

Bahkan jika Anda bukan seorang programmer, akan sangat membantu untuk memahami struktur resep dan bagaimana DataBrew mengatur tindakan resep.

Menerbitkan versi resep baru

Anda menerbitkan versi baru resep dalam sesi DataBrew proyek interaktif.

Untuk menerbitkan versi resep baru
  1. Di panel resep, pilih Publikasikan.

  2. Masukkan deskripsi untuk versi resep ini, dan pilih Publikasikan.

Anda dapat melihat semua resep yang diterbitkan, dan versinya, dengan memilih PROYEK dari panel navigasi.

Mendefinisikan struktur resep

Saat pertama kali membuat proyek menggunakan DataBrew konsol, Anda menentukan resep yang akan dikaitkan dengan proyek itu. Jika Anda tidak memiliki resep yang ada, konsol membuatnya untuk Anda.

Saat Anda bekerja dengan proyek di konsol, Anda menggunakan bilah alat transformasi untuk menerapkan tindakan ke data sampel dari kumpulan data Anda. Konsol menunjukkan langkah-langkah resep, dan urutan langkah-langkah itu, saat Anda terus membangun resep. Anda dapat mengulangi dan menyempurnakan resep sampai Anda puas dengan langkah-langkahnya.

DiMemulai dengan AWS Glue DataBrew, Anda membuat resep untuk mengubah kumpulan data permainan catur terkenal. Anda dapat mengunduh salinan langkah-langkah resep, dengan memilih Unduh sebagai JSON atau Unduh sebagai YAMAL seperti yang ditunjukkan pada gambar berikut.

Menu lainnya diperluas menampilkan Impor resep, Unduh sebagai YAMAL, dan Unduh sebagai opsi JSON.

File JSON yang diunduh berisi tindakan resep yang sesuai dengan transformasi yang Anda tambahkan ke resep Anda.

Resep baru tidak memiliki langkah apa pun. Anda dapat mewakili resep baru sebagai daftar JSON kosong, seperti yang ditunjukkan berikut.

[ ]

Berikut ini adalah contoh dari file tersebut, untukchess-project-recipe. Daftar JSON berisi beberapa objek yang menjelaskan langkah-langkah resep. Setiap objek dalam daftar JSON terlampir dalam kurawal kurawal (). { } Garis JSON dibatasi oleh koma.

[ { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] }, { "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } } ]

Lebih mudah untuk melihat masing-masing bahwa setiap tindakan adalah baris individual jika kita hanya menambahkan baris baru untuk tindakan baru, seperti yang ditunjukkan berikut.

[ { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] }, { "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } } ]

Tindakan dilakukan secara berurutan, dalam urutan yang sama seperti pada file:

  • REMOVE_VALUES— Untuk menyaring semua game di mana peringkat pemain kurang dari 1.800, peringkat minimum yang diperlukan untuk menjadi pemain catur Kelas A. Ada dua kejadian dari tindakan ini — satu untuk menghapus pemain di sisi hitam yang tidak setidaknya pemain Kelas A, dan satu lagi untuk menghapus pemain di sisi putih yang tidak pada level ini.

  • GROUP_BY— Untuk meringkas data. Dalam hal ini, GROUP_BY mengurutkan baris ke dalam grup berdasarkan nilai winner (blackdanwhite). Masing-masing kelompok tersebut kemudian dipecah lebih lanjut, mengurutkan baris menjadi subkelompok berdasarkan nilai victory_status (mate,, resignoutoftime, dandraw). Akhirnya, jumlah kejadian untuk setiap subkelompok dihitung. Ringkasan yang dihasilkan kemudian menggantikan sampel data asli.

  • REMOVE_VALUES— Untuk menghapus hasil game yang diakhiri dengandraw.

  • REPLACE_TEXT— Untuk memodifikasi nilai untukvictory_status. Ada tiga kejadian dari tindakan ini—masing-masing satu untukmate,, dan. resign oufoftime

Dalam sesi DataBrew proyek interaktif, masing-masing RecipeAction sesuai dengan transformasi data yang Anda terapkan pada sampel data.

DataBrew menyediakan lebih dari 200 tindakan resep. Untuk informasi selengkapnya, lihat Langkah resep dan referensi fungsi.

Ketentuan penggunaan

Anda dapat menggunakan kondisi untuk mempersempit ruang lingkup tindakan resep. Kondisi digunakan dalam transformasi yang menyaring data—misalnya, menghapus baris yang tidak diinginkan berdasarkan nilai kolom tertentu.

Mari kita lihat lebih dekat tindakan resep darichess-project-recipe.

{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }

Transformasi ini membaca nilai-nilai dalam black_rating kolom. ConditionExpressionsDaftar menentukan kriteria pemfilteran: Setiap baris yang memiliki black_rating nilai kurang dari 1.800 dihapus dari kumpulan data.

Transformasi tindak lanjut dalam resep melakukan hal yang sama, untukwhite_rating. Dengan cara ini, data terbatas pada game di mana setiap pemain (hitam atau putih) dinilai di Kelas A atau lebih tinggi.

Berikut adalah contoh lain dari kondisi, diterapkan ke kolom data karakter.

{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }

Transformasi ini membaca nilai-nilai di winner kolom, mencari nilai draw dan menghapus baris tersebut. Dengan cara ini, data terbatas hanya pada game-game di mana ada pemenang yang jelas.

DataBrew mendukung kondisi berikut:

  • IS— Nilai dalam kolom sama dengan nilai yang diberikan dalam kondisi.

  • IS_NOT— Nilai di kolom tidak sama dengan nilai yang diberikan dalam kondisi.

  • IS_BETWEEN— Nilai dalam kolom adalah antara LESS_THAN_EQUAL parameter GREATER_THAN_EQUAL dan.

  • CONTAINS— Nilai string di kolom berisi nilai yang disediakan dalam kondisi.

  • NOT_CONTAINS— Nilai dalam kolom tidak mengandung string karakter yang disediakan dalam kondisi.

  • STARTS_WITH— Nilai di kolom dimulai dengan string karakter yang disediakan dalam kondisi.

  • NOT_STARTS_WITH— Nilai di kolom tidak dimulai dengan string karakter yang disediakan dalam kondisi.

  • ENDS_WITH— Nilai di kolom diakhiri dengan string karakter yang disediakan dalam kondisi.

  • NOT_ENDS_WITH— Nilai di kolom tidak berakhir dengan string karakter yang disediakan dalam kondisi.

  • LESS_THAN— Nilai dalam kolom kurang dari nilai yang diberikan dalam kondisi.

  • LESS_THAN_EQUAL— Nilai dalam kolom kurang dari atau sama dengan nilai yang diberikan dalam kondisi.

  • GREATER_THAN— Nilai dalam kolom lebih besar dari nilai yang diberikan dalam kondisi.

  • GREATER_THAN_EQUAL— Nilai dalam kolom lebih besar dari atau sama dengan nilai yang diberikan dalam kondisi.

  • IS_INVALID— Nilai di kolom memiliki tipe data yang salah.

  • IS_MISSING— Tidak ada nilai di kolom.