Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghubungkan data dalam beberapa file di Amazon S3
Dengan DataBrew konsol, Anda dapat menavigasi bucket dan folder Amazon S3 dan memilih file untuk kumpulan data Anda. Namun, kumpulan data tidak perlu dibatasi pada satu file.
Misalkan Anda memiliki bucket S3 bernama my-databrew-bucket yang berisi folder bernamadatabrew-input. Dalam folder itu, misalkan Anda memiliki sejumlah file JSON, semua dengan format file dan ekstensi .json file yang sama. Di konsol, Anda dapat menentukan URL sumber daris3://my-databrew-bucket/databrew-input/. Di DataBrew konsol, Anda kemudian dapat memilih folder ini. Dataset Anda terdiri dari semua file JSON di folder itu.
DataBrew dapat memproses semua file dalam folder S3, tetapi hanya jika kondisi berikut benar:
-
Semua file dalam folder memiliki format yang sama.
-
Semua file dalam folder memiliki ekstensi file yang sama.
Untuk informasi selengkapnya tentang format dan ekstensi file yang didukung, lihatDataBrew input formats.
Skema saat menggunakan banyak file sebagai kumpulan data
Saat menggunakan banyak file sebagai DataBrew kumpulan data, skema harus sama di semua file. Jika tidak, Project Workspace secara otomatis mencoba memilih salah satu skema dari beberapa file dan mencoba menyesuaikan sisa file kumpulan data dengan skema itu. Perilaku ini menghasilkan tampilan yang ditampilkan selama Project Workspace menjadi tidak teratur, dan akibatnya, output pekerjaan juga akan tidak teratur.
Jika file Anda harus memiliki skema yang berbeda, Anda perlu membuat beberapa kumpulan data dan memprofilkannya secara terpisah.
Menggunakan jalur berparameter untuk Amazon S3
Dalam beberapa kasus, Anda mungkin ingin membuat kumpulan data dengan file yang mengikuti konvensi penamaan tertentu, atau kumpulan data yang dapat menjangkau beberapa folder Amazon S3. Atau Anda mungkin ingin menggunakan kembali kumpulan data yang sama untuk data terstruktur identik yang dihasilkan secara berkala di lokasi S3 dengan jalur yang bergantung pada parameter tertentu. Contohnya adalah jalur yang diberi nama untuk tanggal produksi data.
DataBrew mendukung pendekatan ini dengan jalur S3 berparameter. Jalur berparameter adalah URL Amazon S3 yang berisi ekspresi reguler atau parameter jalur khusus, atau keduanya.
Mendefinisikan kumpulan data dengan jalur S3 menggunakan ekspresi reguler
Ekspresi reguler di jalur dapat berguna untuk mencocokkan beberapa file dari satu atau beberapa folder dan pada saat yang sama menyaring file yang tidak terkait di folder tersebut.
Berikut adalah beberapa contoh:
-
Tentukan kumpulan data termasuk semua file JSON dari folder yang namanya dimulai dengan.
invoice -
Tentukan kumpulan data termasuk semua file dalam folder dengan
2020namanya.
Anda dapat menerapkan jenis pendekatan ini dengan menggunakan ekspresi reguler di jalur dataset S3. Ekspresi reguler ini dapat menggantikan substring apa pun di kunci URL S3 (tetapi bukan nama bucket).
Sebagai contoh kunci dalam URL S3, lihat yang berikut ini. Di sini, my-bucket adalah nama ember, US East (Ohio) adalah AWS Region, dan puppy.png merupakan nama kuncinya.
https://my-bucket.s3.us-west-2.amazonaws.com/puppy.png
Dalam jalur S3 berparameter, karakter apa pun di antara dua tanda kurung sudut (<dan>) diperlakukan sebagai ekspresi reguler. Dua contoh adalah sebagai berikut:
-
s3://my-databrew-bucket/databrew-input/invoice<.*>/data.jsoncocok dengan semua file bernamadata.json, dalam semua subfolderdatabrew-inputyang namanya dimulai denganinvoice. -
s3://my-databrew-bucket/databrew-input/<.*>2020<.*>/mencocokkan semua file2020dalam folder dengan namanya.
Dalam contoh ini, .* cocok dengan nol atau lebih karakter.
catatan
Anda hanya dapat menggunakan ekspresi reguler di bagian kunci jalur S3—bagian yang mengikuti nama bucket. Jadi, s3://my-databrew-bucket/<.*>-input/ valid, tetapi s3://my-<.*>-bucket/<.*>-input/ tidak.
Kami menyarankan Anda menguji ekspresi reguler Anda untuk memastikan bahwa mereka hanya cocok dengan URL S3 yang Anda inginkan, dan bukan yang tidak Anda inginkan.
Berikut adalah beberapa contoh ekspresi reguler lainnya:
<\d{2}>cocok dengan string yang terdiri dari tepat dua digit berturut-turut, misalnya07atau03, tetapi tidak.1a2<[a-z]+.*>cocok dengan string yang dimulai dengan satu atau lebih huruf Latin kecil dan memiliki nol atau lebih karakter lain setelahnya. Contohnya adalaha3,abc/def, ataua-z, tetapi tidakA2.<[^/]+>cocok dengan string yang berisi karakter apa pun kecuali garis miring (/). Dalam URL S3, garis miring digunakan untuk memisahkan folder di jalur.<.*=.*>cocok dengan string yang berisi tanda sama dengan (=), misalnya,, ataumonth=02abc/day=2=10, tetapi tidak.test<\d.*\d>cocok dengan string yang dimulai dan diakhiri dengan digit dan dapat memiliki karakter lain di antara digit, misalnya,1abc2, atau01-02-032020/Jul/21, tetapi tidak123a.
Mendefinisikan kumpulan data dengan jalur S3 menggunakan parameter khusus
Mendefinisikan kumpulan data berparameter menggunakan parameter khusus menawarkan keuntungan dibandingkan menggunakan ekspresi reguler saat Anda mungkin ingin memberikan parameter untuk lokasi S3:
Anda dapat mencapai hasil yang sama dengan ekspresi reguler, tanpa perlu mengetahui sintaks untuk ekspresi reguler. Anda dapat menentukan parameter menggunakan istilah yang sudah dikenal seperti “dimulai dengan” dan “berisi.”
Saat Anda menentukan kumpulan data dinamis menggunakan parameter di jalur, Anda dapat menyertakan rentang waktu dalam definisi Anda, seperti “bulan lalu” atau “24 jam terakhir.” Dengan begitu, definisi dataset Anda akan digunakan nanti dengan data baru yang masuk.
Berikut adalah beberapa contoh kapan Anda mungkin ingin menggunakan kumpulan data dinamis:
Untuk menghubungkan beberapa file yang dipartisi berdasarkan tanggal terakhir diperbarui atau atribut bermakna lainnya ke dalam satu kumpulan data. Anda kemudian dapat menangkap atribut partisi ini sebagai kolom tambahan dalam kumpulan data.
Untuk membatasi file dalam kumpulan data ke lokasi S3 yang memenuhi kondisi tertentu. Misalnya, misalkan jalur S3 Anda berisi folder berbasis tanggal seperti.
folder/2021/04/01/Dalam hal ini, Anda dapat membuat parameter tanggal dan membatasinya ke kisaran tertentu seperti “antara 01 Mar 2021 dan 01 Apr 2021" atau “Minggu lalu.”
Untuk menentukan jalur menggunakan parameter, tentukan parameter dan tambahkan ke jalur Anda menggunakan format berikut:
s3://my-databrew-bucket/some-folder/{parameter1}/file-{parameter2}.json
catatan
Seperti halnya ekspresi reguler di jalur S3, Anda hanya dapat menggunakan parameter di bagian kunci jalur—bagian yang mengikuti nama bucket.
Dua bidang diperlukan dalam definisi parameter, nama dan jenis. Tipenya bisa berupa String, Number, atau Date. Parameter tipe Tanggal harus memiliki definisi format tanggal sehingga DataBrew dapat menafsirkan dan membandingkan nilai tanggal dengan benar. Secara opsional, Anda dapat menentukan kondisi pencocokan untuk parameter. Anda juga dapat memilih untuk menambahkan nilai parameter yang cocok sebagai kolom ke kumpulan data Anda saat sedang dimuat oleh DataBrew pekerjaan atau sesi interaktif.
Contoh
Mari kita pertimbangkan contoh mendefinisikan dataset dinamis menggunakan parameter di konsol. DataBrew Dalam contoh ini, asumsikan bahwa data input secara teratur ditulis ke dalam bucket S3 menggunakan lokasi seperti ini:
s3://databrew-dynamic-datasets/new-cases/UR/daily-report-2021-03-30.csvs3://databrew-dynamic-datasets/new-cases/UR/daily-report-2021-03-31.csvs3://databrew-dynamic-datasets/new-cases/US/daily-report-2021-03-30.csvs3://databrew-dynamic-datasets/new-cases/US/daily-report-2021-03-31.csv
Ada dua bagian dinamis di sini: kode negara, seperti AS, dan tanggal dalam nama file seperti 2021-03-30. Di sini, Anda dapat menerapkan resep pembersihan yang sama untuk semua file. Katakanlah Anda ingin melakukan pekerjaan pembersihan Anda setiap hari. Berikut ini adalah bagaimana Anda dapat menentukan jalur berparameter untuk skenario ini:
-
Arahkan ke file tertentu.
-
Kemudian pilih bagian yang bervariasi, seperti tanggal, dan ganti dengan parameter. Dalam hal ini, ganti tanggal.
-
Buka menu konteks (klik kanan) untuk Buat parameter khusus dan atur properti untuknya:
Nama: tanggal laporan
Tipe: Tanggal
Format tanggal: yyyy- MM-dd (dipilih dari format yang telah ditentukan)
Kondisi (Rentang waktu): 24 jam terakhir
Tambahkan sebagai kolom: true (dicentang)
Simpan bidang lain pada nilai defaultnya.
-
Pilih Buat.
Setelah Anda melakukannya, Anda melihat jalur yang diperbarui, seperti pada tangkapan layar berikut.
Sekarang Anda dapat melakukan hal yang sama untuk kode negara dan membuat parameter sebagai berikut:
Nama: kode negara
Tipe: String
Tambahkan sebagai kolom: true (dicentang)
Anda tidak perlu menentukan kondisi jika semua nilai relevan. Di new-cases folder, misalnya, kami hanya memiliki subfolder dengan kode negara, jadi tidak perlu kondisi. Jika Anda memiliki folder lain untuk dikecualikan, Anda dapat menggunakan kondisi berikut.
Pendekatan ini membatasi subfolder kasus baru untuk berisi dua huruf Latin kapital.
Setelah parameterisasi ini, Anda hanya memiliki file yang cocok di kumpulan data kami dan dapat memilih Buat Dataset.
catatan
Saat Anda menggunakan rentang waktu relatif dalam kondisi, rentang waktu dievaluasi saat kumpulan data dimuat. Ini benar apakah rentang waktu yang telah ditentukan seperti “24 jam terakhir” atau rentang waktu khusus seperti “5 hari yang lalu”. Pendekatan evaluasi ini berlaku apakah kumpulan data dimuat selama inisialisasi sesi interaktif atau selama awal pekerjaan.
Setelah Anda memilih Buat Dataset, dataset dinamis Anda siap digunakan. Sebagai contoh, Anda dapat menggunakannya terlebih dahulu untuk membuat proyek dan menentukan resep pembersihan menggunakan DataBrew sesi interaktif. Kemudian Anda dapat membuat pekerjaan yang dijadwalkan untuk berjalan setiap hari. Pekerjaan ini mungkin menerapkan resep pembersihan ke file kumpulan data yang memenuhi kondisi parameter Anda pada saat pekerjaan dimulai.
Kondisi yang didukung untuk kumpulan data dinamis
Anda dapat menggunakan kondisi untuk memfilter file S3 yang cocok menggunakan parameter atau atribut tanggal modifikasi terakhir.
Berikut ini, Anda dapat menemukan daftar kondisi yang didukung untuk setiap jenis parameter.
| Nama dalam DataBrew SDK | Sinonim SDK | Nama di DataBrew konsol | Deskripsi |
|---|---|---|---|
|
adalah |
persamaan, == |
Tepat |
Nilai parameter sama dengan nilai yang diberikan dalam kondisi. |
|
tidak |
bukan persamaan,! = |
Is not |
Nilai parameter tidak sama dengan nilai yang diberikan dalam kondisi. |
|
mengandung |
Contains |
Nilai string parameter berisi nilai yang disediakan dalam kondisi. |
|
|
tidak mengandung |
Tidak mengandung |
Nilai string parameter tidak berisi nilai yang disediakan dalam kondisi. |
|
|
mulai_dengan |
Starts with |
Nilai string parameter dimulai dengan nilai yang disediakan dalam kondisi. |
|
|
bukan starts_with |
Tidak dimulai dengan |
Nilai string parameter tidak dimulai dengan nilai yang disediakan dalam kondisi. |
|
|
berakhir_dengan |
Ends with |
Nilai string parameter berakhir dengan nilai yang disediakan dalam kondisi. |
|
|
tidak berakhir_dengan |
Tidak berakhir dengan |
Nilai string parameter tidak berakhir dengan nilai yang disediakan dalam kondisi. |
|
|
korek api |
Cocok |
Nilai parameter cocok dengan ekspresi reguler yang disediakan dalam kondisi. |
|
|
tidak cocok |
Tidak cocok |
Nilai parameter tidak cocok dengan ekspresi reguler yang disediakan dalam kondisi. |
catatan
Semua kondisi untuk parameter String menggunakan perbandingan peka huruf besar/kecil. Jika Anda tidak yakin tentang kasus yang digunakan di jalur S3, Anda dapat menggunakan kondisi “cocok” dengan nilai ekspresi reguler yang dimulai dengan(?i). Melakukan hal ini menghasilkan perbandingan case-insensitive.
Misalnya, misalkan Anda ingin parameter string Anda dimulaiabc, tetapi Abc atau ABC juga dimungkinkan. Dalam hal ini, Anda dapat menggunakan kondisi “cocok” dengan (?i)^abc sebagai nilai kondisi.
| Nama dalam DataBrew SDK | Sinonim SDK | Nama di DataBrew konsol | Deskripsi |
|---|---|---|---|
|
adalah |
persamaan, == |
Tepat |
Nilai parameter sama dengan nilai yang diberikan dalam kondisi. |
|
tidak |
bukan persamaan,! = |
Is not |
Nilai parameter tidak sama dengan nilai yang diberikan dalam kondisi. |
|
kurang_dari |
lt, < |
Kurang dari |
Nilai numerik parameter kurang dari nilai yang disediakan dalam kondisi. |
|
less_than_equal |
lte, <= |
Kurang dari atau sama dengan |
Nilai numerik parameter kurang dari atau sama dengan nilai yang diberikan dalam kondisi. |
|
lebih besar_dari |
gt, > |
Lebih besar dari |
Nilai numerik parameter lebih besar dari nilai yang diberikan dalam kondisi. |
|
lebih besar_than_equal |
gte, >= |
Lebih besar dari atau sama dengan |
Nilai numerik parameter lebih besar dari atau sama dengan nilai yang diberikan dalam kondisi. |
| Nama dalam DataBrew SDK | Nama di DataBrew konsol | Format nilai kondisi (SDK) | Deskripsi |
|---|---|---|---|
|
setelah |
Mulai |
Format tanggal ISO 8601 seperti atau |
Nilai parameter tanggal adalah setelah tanggal yang diberikan dalam kondisi. |
|
sebelumnya |
Akhiri |
Format tanggal ISO 8601 seperti atau |
Nilai parameter tanggal sebelum tanggal yang diberikan dalam kondisi. |
|
relatif_after |
Mulai (relatif) |
Jumlah satuan waktu positif atau negatif, seperti |
Nilai parameter tanggal adalah setelah tanggal relatif yang diberikan dalam kondisi. Tanggal relatif dievaluasi saat dataset dimuat, baik saat sesi interaktif diinisialisasi atau saat pekerjaan terkait dimulai. Ini adalah momen yang disebut “sekarang” dalam contoh. |
|
relatif_before |
Akhir (relatif) |
Jumlah satuan waktu positif atau negatif, seperti |
Nilai parameter tanggal sebelum tanggal relatif yang disediakan dalam kondisi. Tanggal relatif dievaluasi saat dataset dimuat, baik saat sesi interaktif diinisialisasi atau saat pekerjaan terkait dimulai. Ini adalah momen yang disebut “sekarang” dalam contoh. |
Jika Anda menggunakan SDK, berikan tanggal relatif dalam format berikut:±{number_of_time_units}{time_unit}. Anda dapat menggunakan unit waktu ini:
-1h (1 jam lalu)
+2d (2 hari dari sekarang)
-120m (120 menit lalu)
5000s (5.000 detik dari sekarang)
-3w (3 minggu lalu)
+4M (4 bulan dari sekarang)
-1y (1 tahun lalu)
Tanggal relatif dievaluasi saat dataset dimuat, baik saat sesi interaktif diinisialisasi atau saat pekerjaan terkait dimulai. Ini adalah momen yang disebut “sekarang” dalam contoh sebelumnya.
Mengkonfigurasi pengaturan untuk kumpulan data dinamis
Selain menyediakan jalur S3 berparameter, Anda dapat mengonfigurasi pengaturan lain untuk kumpulan data dengan banyak file. Pengaturan ini memfilter file S3 berdasarkan tanggal modifikasi terakhir dan membatasi jumlah file.
Mirip dengan menyetel parameter tanggal di jalur, Anda dapat menentukan rentang waktu saat file yang cocok diperbarui dan hanya menyertakan file tersebut ke dalam kumpulan data Anda. Anda dapat menentukan rentang ini menggunakan tanggal absolut seperti “30 Maret 2021" atau rentang relatif seperti “24 jam terakhir”.
Untuk membatasi jumlah file yang cocok, pilih sejumlah file yang lebih besar dari 0 dan apakah Anda menginginkan file pencocokan terbaru atau tertua.