

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

 El tipo de regla FileSize le permite asegurarse de que los archivos cumplan ciertos criterios de tamaño de archivo. Esto resulta útil para los siguientes casos de uso: 

1.  Asegurarse de que los productores no envíen archivos vacíos o sustancialmente más pequeños para su procesamiento. 

1.  Asegurarse de que sus buckets de destino no tengan archivos más pequeños, lo que podría provocar problemas de rendimiento. 

 FileSize recopila las siguientes métricas: 

1.  Conformidad: devuelve el porcentaje (%) de archivos que cumplen el umbral de la regla que ha establecido 

1.  Recuento de archivos: el número de archivos que ha analizado la regla 

1.  Tamaño mínimo de archivo en bytes 

1.  Tamaño máximo de archivo en bytes 

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

 Estas métricas no admiten la detección de anomalías. 

 **Validación del tamaño de los archivos** 

 Esta regla se aplicará cuando el archivo file.dat ocupe más de 2 MB. 

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

 Las unidades compatibles incluyen B (bytes), MB (megabytes), GB (gigabytes) y TB (terabytes). 

 **Validación del tamaño de los archivos en las carpetas** 

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

 Esta regla se aplicará si el 70 % de los archivos de s3://amzn-s3-demo-bucket tienen entre 2 GB y 1 TB. 

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

 **Cómo inferir los nombres de los archivos directamente de los marcos de datos** 

 No siempre tiene que proporcionar una ruta de archivo. Por ejemplo, al crear la regla en el Catálogo de datos, puede resultar difícil encontrar qué carpetas usan las tablas del catálogo. AWS Calidad de datos de Glue puede encontrar las carpetas o archivos específicos que se usan para rellenar su marco de datos. 

**nota**  
 Esta característica solo funcionará cuando los archivos se lean correctamente en DynamicFrame o DataFrame. 

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

 **Etiquetas de reglas opcionales basadas en archivos:** 

 Las etiquetas permiten controlar el comportamiento de las reglas. 

 **recentFiles** 

 Esta etiqueta limita el número de archivos procesados dejando primero el archivo más reciente. 

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

 **uriRegex** 

**nota**  
 La etiqueta AWS está disponible en `uriRegex` Glue 5.0 y versiones posteriores. 

 Esta etiqueta filtra los archivos mediante la aplicación de un patrón de expresión regular a la ruta del archivo. Solo se procesan los archivos cuyas rutas coinciden con el patrón. También puede usar una anticipación negativa para excluir los archivos que coinciden con un patrón. 

```
# 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** 

**nota**  
 La etiqueta AWS está disponible en `filterOrder` Glue 5.0 y versiones posteriores. 

 Cuando utiliza varias etiquetas de filtro, como `recentFiles` y `uriRegex`, en conjunto, la etiqueta `filterOrder` controla el orden en que se aplican. El orden predeterminado es primero `recentFiles` y luego `uriRegex`. 

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

 **failFast** 

 Cuando se establece en `"true"`, la regla devuelve un error de inmediato en el primer archivo que no cumple la condición de tamaño, en lugar de evaluar todos los archivos y calcular una tasa de cumplimiento. 

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

 Existen algunas consideraciones: 

1.  En la ETL de AWS Glue, debe tener la transformación EvaluateDataQuality inmediatamente después de una transformación de Amazon S3 o del Catálogo de datos. 

1.  Esta regla no funcionará en las sesiones interactivas de AWS Glue. 