

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# FileSize
<a name="dqdl-rule-types-FileSize"></a>

 FileSize 規則類型可讓您確保檔案符合特定的檔案大小條件。這適用於下列使用案例：

1.  確保生產者不會傳送空白或小得多的檔案進行處理。

1.  確保您的目標儲存貯體沒有較小的檔案，這可能會導致效能問題。

 FileSize 會收集下列指標：

1.  合規： 傳回符合您已建立的規則閾值的檔案百分比 

1.  檔案計數：規則掃描的檔案數目 

1.  檔案大小下限 (位元組) 

1.  檔案大小上限 (位元組) 

```
Dataset.*.FileSize.Compliance: 1.00, 
Dataset.*.FileCount: 8.00, 
Dataset.*.MaximumFileSize: 327413121.00, 
Dataset.*.MinimumFileSize: 204558920.00
```

 這些指標不支援異常偵測。

 **驗證檔案大小** 

 在 file.dat 大於 2 MB 時，此規則將通過。

```
FileSize "s3://amzn-s3-demo-bucket/file.dat" > 2 MB
```

 支援的單位包括 B (位元組)、MB (百萬位元組)、GB (十億位元組) 和 TB (兆位元組)。

 **驗證資料夾中檔案的大小** 

```
FileSize "s3://bucket/" > 5 B
FileSize "s3://bucket/" < 2 GB
```

 如果 s3://amzn-s3-demo-bucket 中的 70% 檔案介於 2 GB 與 1 TB 之間，則此規則將通過。

```
FileSize "s3://amzn-s3-demo-bucket/" between 2 GB and 1 TB  with threshold > 0.7
```

 **直接從資料框推斷檔案名稱** 

 您不一定必須提供檔案路徑。例如，當您在 Data Catalog 中編寫規則時，可能很難找到目錄資料表正在使用的資料夾。 AWS Glue Data Quality 可以找到用來填入資料框架的特定資料夾或檔案。

**注意**  
 此功能只有在檔案成功讀取到 DynamicFrame 或 DataFrame 時才有效。

```
FileSize < 10 MB with threshold > 0.7
```

 **選用的以檔案為基礎的規則標籤：**

 標籤可讓您控制規則行為。

 **recentFiles** 

 此標籤會先保留最新的檔案，以限制處理的檔案數目。

```
FileSize "s3://amzn-s3-demo-bucket/" > 5 B with recentFiles = 1
```

 **uriRegex** 

**注意**  
 此`uriRegex`標籤可在 AWS Glue 5.0 和更新版本中使用。

 此標籤透過將 regex 模式套用至檔案路徑來篩選檔案。只會處理路徑符合模式的檔案。您也可以使用負 lookahead 來排除符合模式的檔案。

```
# Match only files with a .dat extension
FileSize "s3://bucket/" > 5 B with uriRegex = "\.dat$"
# Exclude files ending in .tmp using a negative lookahead
FileSize "s3://bucket/" > 5 B with uriRegex = "(?!.*\.tmp$).*"
```

 **filterOrder** 

**注意**  
 此`filterOrder`標籤可在 AWS Glue 5.0 和更新版本中使用。

 當您同時使用多個篩選條件標籤，例如 `recentFiles`和 `uriRegex` 時，該`filterOrder`標籤會控制套用它們的順序。預設順序為 `recentFiles` ，然後是 `uriRegex`。

```
FileSize "s3://bucket/" > 5 B with recentFiles = 5 with uriRegex = "\.dat$" with filterOrder = ["uriRegex","recentFiles"]
```

 **failFast** 

 設為 時`"true"`，規則會在第一個未通過大小條件的檔案上立即傳回失敗，而不是評估所有檔案並計算合規比率。

```
FileSize "s3://bucket/" > 2 MB with failFast = "true"
```

 有幾個考量：

1.  在 AWS Glue ETL 中，您必須在 Amazon S3 或 Data Catalog 轉換後立即評估 DataQuality 轉換。

1.  此規則無法在 AWS Glue 互動式工作階段中運作。