

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de un filtro de datos
<a name="creating-data-filters"></a>

Puede crear uno o varios filtros de datos para cada tabla del Catálogo de datos.

**Para crear un filtro de datos para una tabla del Catálogo de datos (consola)**

1. Abra la consola de Lake Formation en [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

   Inicie sesión como administrador del lago de datos, como propietario de la tabla de destino o como entidad principal con permiso de Lake Formation en la tabla de destino.

1. En el panel de navegación, en **Catálogo de datos**, seleccione **Filtros de datos**.

1. En la página **Filtros de datos**, seleccione **Crear filtro nuevo**.

1. En el cuadro de diálogo **Crear filtro de datos**, introduzca la información siguiente:
   + Nombre del filtro de datos 
   + Base de datos de destino. Indique la base de datos que contiene la tabla.
   + Tabla de destino 
   + Acceso a nivel de columna. Deje esta opción como **Acceso a todas las columnas** para especificar únicamente el filtrado solo de filas. Elija **Incluir columnas** o **Excluir columnas** para especificar el filtrado de columnas o celdas y, a continuación, especifique las columnas que desea incluir o excluir.

     Columnas anidadas: si aplica el filtro a una tabla que contiene columnas anidadas, puede especificar explícitamente las subestructuras de las columnas de estructura anidada dentro de un filtro de datos. 

     Al conceder el permiso SELECT a una entidad principal en este filtro, la entidad principal que ejecute la siguiente consulta solo verá los datos de `customer.customerName` y no de `customer.customerId`.

     ```
     SELECT "customer" FROM "example_db"."example_table";
     ```  
![La configuración de acceso a nivel de columnas muestra la opción Incluir columnas seleccionada con 4 de las 11 columnas marcadas.](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/nested-column-filter.png)

      Al conceder permisos a la columna `customer`, la entidad principal recibe el acceso a la columna y a los campos anidados debajo de la columna (`customerName` y `customerID`). 
   + Expresión de filtro de filas. Introduzca una expresión de filtro para especificar el filtro de filas o celdas. Para conocer los tipos de datos y operadores compatibles, consulte [Compatibilidad con PartiQL en expresiones de filtro de filas](partiql-support.md). Elija **Acceso a todas las filas** para conceder acceso a todas.

     Puede incluir estructuras de columnas parciales de columnas anidadas en una expresión de filtro de filas para filtrar las filas que contienen un valor concreto.

     Cuando a una entidad principal se le conceden permisos para una tabla con una expresión de filtro de filas `Select * from example_nestedtable where customer.customerName <>'John'` y el acceso a **Nivel de columna** se establece en **Acceso a todas las columnas**, los resultados de la consulta solo muestran las filas en las que `customerName <>'John'` se evalúa como verdadero.

   La siguiente captura de pantalla muestra un filtro de datos que implementa el filtrado de celdas. En las consultas a la tabla `orders`, deniega el acceso a la columna `customer_name` y muestra solo las filas que tienen "pharma" en la columna `product_type`.  
![La ventana del filtro de datos contiene estos campos, dispuestos en vertical: nombre del filtro de datos; base de datos de destino; tabla de destino; grupo de botones de opción con las opciones Acceso a todas las columnas, Incluir columnas y Excluir columnas; Seleccionar columnas (lista desplegable); expresión de filtro de filas (cuadro de texto multilínea). La opción Excluir columnas está seleccionada, la columna nombre_cliente está seleccionada para su exclusión y el campo Expresión del filtro de filas contiene 'product_type='pharma'.](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/data-filter-sample-pharma.png)

1. Elija **Crear filtro**.

**Para crear un filtro de datos con políticas de filtrado de celdas en un campo anidado**

 En esta sección se utiliza el siguiente esquema de ejemplo para mostrar cómo crear un filtro de celdas de datos: 

```
[
    { name: "customer", type: "struct<customerId:string,customerName:string>" },
    { name: "customerApplication", type: "struct<appId:string>" },
    { name: "product", type: "struct<offer:struct<prodId:string,listingId:string>,type:string>" },
    { name: "purchaseId", type: "string" },
]
```

1. En la página **Crear un filtro de datos**, escriba un nombre para el filtro.

1.  A continuación, utilice el menú desplegable para elegir un nombre de base de datos y un nombre de tabla. 

1. En la sección de **Acceso a nivel de columna**, elija Columnas incluidas y seleccione una columna anidada (`customer.customerName`).

1. En la sección de **Acceso a nivel de fila**, elija la opción **Acceso a todas las filas**.

1. Elija **Crear filtro**.

   Al conceder el permiso `SELECT` en este filtro, la entidad principal tiene acceso a todas las filas de la columna `customerName`.

1. A continuación, defina otro filtro de datos para la misma base de datos o tabla.

1. En la sección de **Acceso a nivel de columna**, elija Columnas incluidas y seleccione otra columna anidada (`customer.customerid`).

1. En la sección de **Acceso a nivel de fila**, elija **Filtrar filas** e introduzca una **Expresión de filtro de fila** (`customer.customerid <> 5`).

1. Elija **Crear filtro**.

   Al conceder el permiso `SELECT` en este filtro, la entidad principal recibe acceso a todas las filas de los campos `customerName` y `customerId`, excepto a la celda en la que el valor es 5 en la columna `customerId`.