Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
FileFreshness
FileFreshness memastikan file data Anda segar berdasarkan kondisi yang Anda berikan. Ini menggunakan waktu modifikasi terakhir file Anda untuk memastikan bahwa file data atau seluruh folder. up-to-date
Aturan ini mengumpulkan dua metrik:
-
FileFreshness kepatuhan berdasarkan aturan yang Anda atur
-
Jumlah file yang dipindai oleh aturan
{"Dataset.*.FileFreshness.Compliance":1,"Dataset.*.FileCount":1}
Deteksi anomali tidak mempertimbangkan metrik ini.
Memeriksa kesegaran file
Aturan berikut memastikan bahwa tiket.parket dibuat dalam 24 jam terakhir.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/tickets.parquet" > (now() - 24 hours)
Memeriksa kesegaran folder
Aturan berikut berlalu jika semua file dalam folder dibuat atau dimodifikasi dalam 24 jam terakhir.
FileFreshness "s3://bucket/" >= (now() -1 days) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" >= (now() - 24 hours)
Memeriksa kesegaran folder atau file dengan ambang batas
Aturan berikut berlalu jika 10% dari file dalam folder “tiket “dibuat atau dimodifikasi dalam 10 hari terakhir.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" < (now() - 10 days) with threshold > 0.1
Memeriksa file atau folder dengan tanggal tertentu
Anda dapat memeriksa kesegaran file untuk hari-hari tertentu.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "2020-01-01" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "2023-01-01" and "2024-01-01"
Memeriksa file atau folder dengan waktu
Anda dapat menggunakan FileFreshness untuk memastikan bahwa file telah tiba berdasarkan waktu-waktu tertentu.
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between now() and (now() - 45 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "9:30 AM" and "9:30 PM" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > (now() - 10 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > now() FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between (now() - 2 hours) and (now() + 15 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between (now() - 3 days) and (now() + 15 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "2001-02-07" and (now() + 15 minutes) FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "21:45"" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "2024-01-01" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "02:30" and "04:30" FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" between "9:30 AM" and "22:15"
Pertimbangan utama:
-
FileFreshness dapat mengevaluasi file menggunakan unit hari, jam, dan menit
-
Untuk waktu, ini mendukung AM/PM dan 24 jam
-
Waktu dihitung dalam UTC kecuali penggantian ditentukan
-
Tanggal dihitung dalam UTC pada waktu 00:00
FileFreshness yang merupakan karya berbasis waktu sebagai berikut:
FileFreshness "s3://amzn-s3-demo-bucket/artifacts/file/tickets/" > "21:45"
-
Pertama, waktu “21:45" digabungkan dengan tanggal hari ini dalam format UTC untuk membuat bidang tanggal-waktu
-
Selanjutnya, tanggal-waktu dikonversi ke zona waktu yang telah Anda tentukan
-
Akhirnya, aturan dievaluasi
Tag Aturan Berbasis File Opsional:
Tag memungkinkan Anda mengontrol perilaku aturan.
RecentFiles
Tag ini membatasi jumlah file yang diproses dengan menyimpan file terbaru terlebih dahulu.
FileFreshness "s3://amzn-s3-demo-bucket/" between (now() - 100 minutes) and (now() + 10 minutes) with recentFiles = 1
UriRegex
catatan
uriRegexTag tersedia di AWS Glue 5.0 dan yang lebih baru.
Tag ini memfilter file dengan menerapkan pola regex ke jalur file. Hanya file yang jalurnya cocok dengan pola yang diproses. Anda juga dapat menggunakan lookahead negatif untuk mengecualikan file yang cocok dengan pola.
# Match only files with a .csv extension FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with uriRegex = "\.csv$" # Match Parquet files that contain "orders_" in the path FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with uriRegex = ".*orders_.*\.parquet" # Exclude files ending in .tmp using a negative lookahead FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with uriRegex = "(?!.*\.tmp$).*"
FilterOrder
catatan
filterOrderTag tersedia di AWS Glue 5.0 dan yang lebih baru.
Bila Anda menggunakan beberapa tag filter seperti recentFiles dan uriRegex bersama-sama, filterOrder tag mengontrol urutan penerapannya. Urutan default adalah yang recentFiles pertama, laluuriRegex.
FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with recentFiles = 1 with uriRegex = "inventory_" with filterOrder = ["uriRegex","recentFiles"]
Dalam contoh di atas, uriRegex filter diterapkan terlebih dahulu untuk memilih hanya file yang cocok dengan “inventaris_”, dan kemudian recentFiles = 1 mengambil file terbaru dari set yang difilter itu. TanpafilterOrder, perilaku default akan mengambil satu file terbaru terlebih dahulu dan kemudian menerapkan regex, yang dapat mengakibatkan tidak ada file yang cocok jika file terbaru tidak cocok dengan polanya.
catatan
Semua nilai dalam filterOrder daftar harus mereferensikan tag filter lain (recentFilesatauuriRegex) yang juga ada pada aturan yang sama. Tag non-filter seperti timeZone atau failFast tidak valid difilterOrder.
FailFast
Saat disetel ke"true", aturan segera mengembalikan kegagalan pada file pertama yang gagal dalam kondisi kesegaran, alih-alih mengevaluasi semua file dan menghitung rasio kepatuhan.
FileFreshness "s3://amzn-s3-demo-bucket/" > (now() - 24 hours) with failFast = "true"
Zona Waktu
Penggantian zona waktu yang diterima, lihat Zona Waktu yang Diizinkan untuk zona waktu
FileFreshness "s3://path/" > "21:45" with timeZone = "America/New_York"
FileFreshness "s3://path/" > "21:45" with timeZone = "America/Chicago"
FileFreshness "s3://path/" > "21:45" with timeZone = "Europe/Paris"
FileFreshness "s3://path/" > "21:45" with timeZone = "Asia/Shanghai"
FileFreshness "s3://path/" > "21:45" with timeZone = "Australia/Darwin"
Menyimpulkan nama file langsung dari bingkai data
Anda tidak selalu harus menyediakan jalur file. Misalnya, ketika Anda menulis aturan di Katalog Data AWS Glue, mungkin sulit untuk menemukan folder mana yang digunakan tabel katalog. AWS Glue Data Quality dapat menemukan folder atau file tertentu yang digunakan untuk mengisi kerangka data Anda dan dapat mendeteksi apakah masih segar.
catatan
Fitur ini hanya akan berfungsi ketika file berhasil dibaca ke dalam DynamicFrame atau DataFrame.
FileFreshness > (now() - 24 hours)
Aturan ini akan menemukan jalur folder atau file yang digunakan untuk mengisi frame dinamis atau bingkai data. Ini berfungsi untuk jalur Amazon S3 atau tabel Katalog Data AWS Glue berbasis Amazon S3. Ada beberapa pertimbangan:
-
Di AWS Glue ETL, Anda harus memiliki EvaluateDataQualityTransform segera setelah transformasi Amazon S3 atau AWS Glue Data Catalog.
-
Aturan ini tidak akan berfungsi di AWS Glue Interactive Sessions.
Jika Anda mencoba ini di kedua kasus, atau ketika AWS Glue tidak dapat menemukan file, AWS Glue akan memunculkan kesalahan berikut: “Unable to parse file path from DataFrame”