Configuración de la proyección de particiones
Configurar la proyección de particiones en las propiedades de una tabla es un proceso de dos pasos:
-
Especifique los intervalos de datos y los patrones relevantes para cada columna de partición, o utilice una plantilla personalizada.
-
Habilite la proyección de particiones para la tabla.
nota
Antes de agregar propiedades de proyección de particiones a una tabla existente, la columna de partición para la que va a configurar las propiedades de proyección de particiones ya debe existir en el esquema de la tabla. Si la columna de partición aún no existe, debe agregar una columna de partición a la tabla existente manualmente. AWS Glue no realiza este paso automáticamente.
En esta sección se muestra cómo establecer estas propiedades de tabla para AWS Glue. Para configurarlas, puede utilizar la consola de AWS Glue, las consultas CREATE TABLE de Athena o las operaciones de AWS Glue API. El siguiente procedimiento muestra cómo establecer las propiedades en la consola de AWS Glue.
: cómo configurar y habilitar la proyección de particiones mediante la consola de AWS Glue
Inicie sesión en la AWS Management Console y abra la consola de AWS Glue en https://console.aws.amazon.com/glue/
. -
Seleccione la pestaña Tablas.
En la pestaña Tablas puede editar tablas existentes o elegir Agregar tablas para crear otras nuevas. Para obtener información sobre cómo agregar tablas manualmente o con un rastreador, consulte Trabajo con tablas en la consola de AWS Glue en la Guía para desarrolladores de AWS Glue.
-
En la lista de tablas, elija el vínculo de la tabla que desea editar.
-
Seleccione Acciones, Editar la tabla.
-
En la página Editar la tabla, en la sección Propiedades de la tabla, agregue el siguiente par de clave-valor en cada columna particionada:
-
En Clave, añada
projection.
.columnName
.type -
En Valor, añada uno de los tipos admitidos:
enum
,integer
,date
, oinjected
. Para obtener más información, consulte Tipos admitidos para la proyección de particiones.
-
-
Siguiendo las instrucciones de Tipos admitidos para la proyección de particiones, añada pares clave-valor adicionales de acuerdo con sus requisitos de configuración.
La siguiente configuración de tabla de ejemplo configura la columna
year
para la proyección de particiones, lo que restringe los valores que se pueden devolver a un intervalo comprendido entre 2010 y 2016. -
Añada un par clave-valor para habilitar la proyección de particiones. En Clave, escriba
projection.enabled
, y en su Valor, escribatrue
.nota
Puede deshabilitar la proyección de particiones en esta tabla en cualquier momento estableciendo
projection.enabled
comofalse
. -
Cuando termine de actualizar las etiquetas, elija Guardar.
-
En el Editor de consultas de Athena, pruebe la consulta de las columnas que configuró para la tabla.
La siguiente consulta de ejemplo utiliza
SELECT DISTINCT
para devolver los valores únicos de la columnayear
. La base de datos contiene datos de 1987 a 2016, pero la propiedadprojection.year.range
restringe los valores devueltos a los años 2010 a 2016.nota
Si establece
projection.enabled
comotrue
pero no puede configurar una o más columnas de partición, recibirá un mensaje de error como el siguiente:HIVE_METASTORE_ERROR: Table
.database_name
.table_name
is configured for partition projection, but the following partition columns are missing projection configuration: [column_name
] (tabledatabase_name
.table_name
)
Procedimientos para especificar ubicaciones de almacenamiento de S3 personalizadas
Al editar propiedades de tabla en AWS Glue, también puede especificar una plantilla de ruta de Amazon S3 personalizada para las particiones proyectadas. Una plantilla personalizada permite a Athena asignar correctamente valores de partición a ubicaciones de archivos de Amazon S3 personalizadas que no siguen un patrón .../column=value/...
típico.
El uso de una plantilla personalizada es opcional. Sin embargo, si utiliza una plantilla personalizada, la plantilla debe contener un marcador de posición para cada columna de partición. Las ubicaciones con plantilla deben terminar con una barra diagonal para que los archivos de datos particionados se alojen en una “carpeta” por partición.
Para especificar una plantilla de ubicación de partición personalizada
-
Siguiendo los pasos para configurar y habilitar la proyección de particiones mediante la consola de AWS Glue, agregue un par clave-valor adicional que especifique una plantilla personalizada de la siguiente manera:
-
En Clave, escriba
storage.location.template
. -
En Valor, especifique una ubicación que incluya un marcador de posición para cada columna de partición. Asegúrese de que cada marcador de posición (y la ruta de S3 en sí) termine con una sola barra diagonal.
En los siguientes valores de plantilla de ejemplo se asume una tabla con columnas de partición
a
,b
yc
.s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/${c}/
s3://amzn-s3-demo-bucket/table_root/c=${c}/${b}/some_static_subdirectory/${a}/${b}/${c}/${c}/
En la misma tabla, el siguiente valor de plantilla de ejemplo no es válido porque no contiene marcador de posición para la columna
c
.s3://amzn-s3-demo-bucket/table_root/a=${a}/${b}/some_static_subdirectory/
-
-
Seleccione Apply.