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.
Conexión de datos de varios archivos en Amazon S3
Con la DataBrew consola, puede navegar por los depósitos y carpetas de Amazon S3 y elegir un archivo para su conjunto de datos. Sin embargo, no es necesario que un conjunto de datos esté limitado a un archivo.
Supongamos que tiene un bucket de S3 con un nombre my-databrew-bucket que contiene una carpeta denominadadatabrew-input. En esa carpeta, supongamos que tiene varios archivos JSON, todos con el mismo formato y extensión de .json archivo. En la consola, puede especificar una URL de origen des3://my-databrew-bucket/databrew-input/. A continuación, en la DataBrew consola, puede elegir esta carpeta. El conjunto de datos se compone de todos los archivos JSON de esa carpeta.
DataBrew puede procesar todos los archivos de una carpeta S3, pero solo si se cumplen las siguientes condiciones:
-
Todos los archivos de la carpeta tienen el mismo formato.
-
Todos los archivos de la carpeta tienen la misma extensión.
Para obtener más información sobre los formatos y extensiones de archivo compatibles, consulteDataBrew input formats.
Esquemas cuando se utilizan varios archivos como conjunto de datos
Cuando se utilizan varios archivos como DataBrew conjunto de datos, los esquemas deben ser los mismos en todos los archivos. De lo contrario, el espacio de trabajo del proyecto intentará elegir automáticamente uno de los esquemas de los múltiples archivos e intentará ajustar el resto de los archivos del conjunto de datos a ese esquema. Este comportamiento hace que la vista que se muestra en Project Workspace sea irregular y, en consecuencia, el resultado del trabajo también lo será.
Si los archivos deben tener esquemas diferentes, debe crear varios conjuntos de datos y perfilarlos por separado.
Uso de rutas parametrizadas para Amazon S3
En algunos casos, es posible que desee crear un conjunto de datos con archivos que sigan una determinada convención de nomenclatura o un conjunto de datos que pueda abarcar varias carpetas de Amazon S3. O puede que desee reutilizar el mismo conjunto de datos para datos con una estructura idéntica que se generan periódicamente en una ubicación de S3 con una ruta que depende de determinados parámetros. Un ejemplo es una ruta cuyo nombre corresponde a la fecha de producción de los datos.
DataBrew admite este enfoque con rutas S3 parametrizadas. Una ruta parametrizada es una URL de Amazon S3 que contiene expresiones regulares o parámetros de ruta personalizados, o ambos.
Definir un conjunto de datos con una ruta S3 mediante expresiones regulares
Las expresiones regulares de la ruta pueden resultar útiles para hacer coincidir varios archivos de una o más carpetas y, al mismo tiempo, filtrar los archivos no relacionados de esas carpetas.
He aquí un par de ejemplos:
-
Defina un conjunto de datos que incluya todos los archivos JSON de una carpeta cuyo nombre comience por
invoice. -
Defina un conjunto de datos que incluya todos los archivos de las carpetas con
2020sus nombres.
Puede implementar este tipo de enfoque mediante el uso de expresiones regulares en la ruta S3 de un conjunto de datos. Estas expresiones regulares pueden reemplazar cualquier subcadena de la clave de la URL de S3 (pero no el nombre del bucket).
Como ejemplo de una clave en una URL de S3, consulta lo siguiente. Aquí my-bucket está el nombre del bucket, US East (Ohio) es la AWS región y puppy.png es el nombre de la clave.
https://my-bucket.s3.us-west-2.amazonaws.com/puppy.png
En una ruta S3 parametrizada, todos los caracteres entre dos corchetes angulares (<y>) se tratan como expresiones regulares. A continuación se muestran dos ejemplos:
-
s3://my-databrew-bucket/databrew-input/invoice<.*>/data.jsonhace coincidir todos los archivos con nombresdata.jsonincluidos en todas las subcarpetasdatabrew-inputcuyos nombres comiencen por.invoice -
s3://my-databrew-bucket/databrew-input/<.*>2020<.*>/hace coincidir todos los archivos de las carpetas con2020sus nombres.
En estos ejemplos, .* coincide con cero o más caracteres.
nota
Solo puedes usar expresiones regulares en la parte clave de la ruta S3, la parte que va después del nombre del bucket. Por lo tanto, s3://my-databrew-bucket/<.*>-input/ es válido, pero s3://my-<.*>-bucket/<.*>-input/ no lo es.
Le recomendamos que pruebe sus expresiones regulares para asegurarse de que solo coincidan con las URL de S3 que desee y no con las que no desee.
Estos son algunos otros ejemplos de expresiones regulares:
<\d{2}>coincide con una cadena que consta exactamente de dos dígitos consecutivos, por ejemplo07o03, pero no1a2.<[a-z]+.*>coincide con una cadena que comienza con una o más letras latinas minúsculas y tiene cero o más caracteres después de ella. Un ejemplo esa3, oabc/defa-z, pero no.A2<[^/]+>coincide con una cadena que contiene cualquier carácter excepto una barra (/). En una URL de S3, las barras se utilizan para separar las carpetas de la ruta.<.*=.*>coincide con una cadena que contiene un signo igual (=), por ejemplomonth=02, oabc/day=2=10, pero no.test<\d.*\d>coincide con una cadena que comienza y termina con un dígito y puede tener cualquier otro carácter entre los dígitos, por ejemplo1abc201-02-03, o2020/Jul/21, pero no123a.
Definir un conjunto de datos con una ruta S3 mediante parámetros personalizados
Definir un conjunto de datos parametrizado mediante parámetros personalizados ofrece ventajas en comparación con el uso de expresiones regulares cuando es posible que desee proporcionar parámetros para una ubicación de S3:
Puede obtener los mismos resultados que con una expresión regular, sin necesidad de conocer la sintaxis de las expresiones regulares. Puede definir los parámetros con términos conocidos, como «empieza por» y «contiene».
Al definir un conjunto de datos dinámico con los parámetros de la ruta, puede incluir un intervalo de tiempo en la definición, como «el mes pasado» o «las últimas 24 horas». De esta forma, la definición de tu conjunto de datos se utilizará más adelante con los nuevos datos entrantes.
Estos son algunos ejemplos de cuándo es posible que desee utilizar conjuntos de datos dinámicos:
Para conectar varios archivos que están particionados por la fecha de la última actualización u otros atributos significativos en un único conjunto de datos. A continuación, puede capturar estos atributos de partición como columnas adicionales en un conjunto de datos.
Restringir los archivos de un conjunto de datos a ubicaciones de S3 que cumplan determinadas condiciones. Por ejemplo, supongamos que su ruta de S3 contiene carpetas basadas en fechas como
folder/2021/04/01/. En este caso, puedes parametrizar la fecha y restringirla a un intervalo determinado, como «entre el 1 de marzo de 2021 y el 1 de abril de 2021» o «La semana pasada».
Para definir una ruta mediante parámetros, defina los parámetros y agréguelos a su ruta con el siguiente formato:
s3://my-databrew-bucket/some-folder/{parameter1}/file-{parameter2}.json
nota
Al igual que ocurre con las expresiones regulares en una ruta de S3, solo puede usar parámetros en la parte clave de la ruta, es decir, la parte que va después del nombre del bucket.
Se requieren dos campos en la definición, el nombre y el tipo de un parámetro. El tipo puede ser Cadena, Número o Fecha. Los parámetros de tipo Fecha deben tener una definición del formato de fecha para poder DataBrew interpretar y comparar correctamente los valores de fecha. Si lo desea, puede definir las condiciones de coincidencia para un parámetro. También puede optar por añadir los valores coincidentes de un parámetro como una columna a su conjunto de datos cuando lo cargue un DataBrew trabajo o una sesión interactiva.
Ejemplo
Consideremos un ejemplo de definición de un conjunto de datos dinámico mediante parámetros de la DataBrew consola. En este ejemplo, supongamos que los datos de entrada se escriben normalmente en un bucket de S3 utilizando ubicaciones como las siguientes:
s3://databrew-dynamic-datasets/new-cases/UR/daily-report-2021-03-30.csvs3://databrew-dynamic-datasets/new-cases/UR/daily-report-2021-03-31.csvs3://databrew-dynamic-datasets/new-cases/US/daily-report-2021-03-30.csvs3://databrew-dynamic-datasets/new-cases/US/daily-report-2021-03-31.csv
Aquí hay dos partes dinámicas: un código de país, como EE. UU., y una fecha en el nombre del archivo, como el 30 de marzo de 2021. Aquí puede aplicar la misma receta de limpieza para todos los archivos. Supongamos que desea realizar su trabajo de limpieza a diario. A continuación se muestra cómo se puede definir una ruta parametrizada para este escenario:
-
Navegue hasta un archivo específico.
-
A continuación, seleccione una parte variable, como una fecha, y sustitúyala por un parámetro. En este caso, sustituya una fecha.
-
Abra el menú contextual (haga clic con el botón derecho) de Crear un parámetro personalizado y defina sus propiedades:
Nombre: fecha del informe
Tipo: fecha
Formato de fecha: aaaa- MM-dd (seleccionado entre los formatos predefinidos)
Condiciones (intervalo de tiempo): últimas 24 horas
Añadir como columna: verdadero (marcado)
Mantenga los demás campos con sus valores predeterminados.
-
Seleccione Crear.
Después de hacerlo, verá la ruta actualizada, como en la siguiente captura de pantalla.
Ahora puede hacer lo mismo con el código de país y parametrizarlo de la siguiente manera:
Nombre: código de país
Tipo: cadena
Añadir como columna: verdadero (marcado)
No es necesario especificar condiciones si todos los valores son relevantes. En la new-cases carpeta, por ejemplo, solo tenemos subcarpetas con códigos de país, por lo que no se necesitan condiciones. Si tuvieras que excluir otras carpetas, podrías usar la siguiente condición.
Este enfoque limita las subcarpetas de los casos nuevos para que contengan dos caracteres latinos en mayúscula.
Tras esta parametrización, solo tendrá los archivos coincidentes en nuestro conjunto de datos y podrá elegir Crear conjunto de datos.
nota
Cuando utilizas rangos de tiempo relativos en condiciones, los rangos de tiempo se evalúan cuando se carga el conjunto de datos. Esto es cierto tanto si se trata de intervalos de tiempo predefinidos, como «Últimas 24 horas», como de intervalos de tiempo personalizados, como «Hace 5 días». Este enfoque de evaluación se aplica tanto si el conjunto de datos se carga durante la inicialización de una sesión interactiva como si se inicia un trabajo.
Después de elegir Crear conjunto de datos, el conjunto de datos dinámico estará listo para usarse. Por ejemplo, puede usarlo primero para crear un proyecto y definir una receta de limpieza mediante una DataBrew sesión interactiva. Luego, puede crear un trabajo que esté programado para ejecutarse a diario. Este trabajo podría aplicar la receta de limpieza a los archivos del conjunto de datos que cumplen las condiciones de sus parámetros en el momento en que se inicia el trabajo.
Condiciones compatibles para los conjuntos de datos dinámicos
Puede usar condiciones para filtrar los archivos S3 coincidentes mediante parámetros o el atributo de fecha de la última modificación.
A continuación, encontrará listas de condiciones admitidas para cada tipo de parámetro.
| Nombre en el DataBrew SDK | Sinónimos del SDK | Nombre en la DataBrew consola | Description (Descripción) |
|---|---|---|---|
|
es |
eq, == |
Es exactamente |
El valor del parámetro es el mismo que el valor que se proporcionó en la condición. |
|
no lo es |
no es igual,! = |
Is not |
El valor del parámetro no es el mismo que el valor que se proporcionó en la condición. |
|
contains |
Contiene |
El valor de cadena del parámetro contiene el valor que se proporcionó en la condición. |
|
|
no contiene |
No contiene |
El valor de cadena del parámetro no contiene el valor que se proporcionó en la condición. |
|
|
comienza_con |
Empieza por |
El valor de cadena del parámetro comienza con el valor que se proporcionó en la condición. |
|
|
no comienza con |
No comienza con |
El valor de cadena del parámetro no comienza por el valor que se proporcionó en la condición. |
|
|
ends_with |
Acaba con |
El valor de cadena del parámetro termina con el valor que se proporcionó en la condición. |
|
|
no termina con_con |
No termina con |
El valor de cadena del parámetro no termina con el valor que se proporcionó en la condición. |
|
|
matches |
Coincide |
El valor del parámetro coincide con la expresión regular proporcionada en la condición. |
|
|
no coincide |
No coincide |
El valor del parámetro no coincide con la expresión regular proporcionada en la condición. |
nota
Todas las condiciones de los parámetros de cadena utilizan una comparación que distingue entre mayúsculas y minúsculas. Si no está seguro de las mayúsculas y minúsculas utilizadas en una ruta de S3, puede utilizar la condición «coincide» con un valor de expresión regular que comience por. (?i) De este modo, se obtiene una comparación que no distingue entre mayúsculas y minúsculas.
Por ejemplo, supongamos que quiere que el parámetro de cadena comience porabc, pero Abc también ABC es posible. En este caso, puede usar la condición «coincide» (?i)^abc como valor de condición.
| Nombre en el DataBrew SDK | Sinónimos del SDK | Nombre en la DataBrew consola | Description (Descripción) |
|---|---|---|---|
|
es |
eq, == |
Es exactamente |
El valor del parámetro es el mismo que el valor que se proporcionó en la condición. |
|
no lo es |
no es igual,! = |
Is not |
El valor del parámetro no es el mismo que el valor que se proporcionó en la condición. |
|
meno_que |
mucho, < |
Menor que |
El valor numérico del parámetro es inferior al valor que se proporcionó en la condición. |
|
meno_que_igual |
LTE, <= |
Menor o igual que |
El valor numérico del parámetro es menor o igual al valor que se proporcionó en la condición. |
|
mayor_que |
gt, > |
Mayor que |
El valor numérico del parámetro es mayor que el valor que se proporcionó en la condición. |
|
mayor_que_igual |
obtener, >= |
Mayor o igual que |
El valor numérico del parámetro es mayor o igual al valor que se proporcionó en la condición. |
| Nombre en el DataBrew SDK | Nombre en la DataBrew consola | Formato de valor de condición (SDK) | Description (Descripción) |
|---|---|---|---|
|
después |
Inicio |
Formato de fecha ISO 8601 similar |
El valor del parámetro de fecha es posterior a la fecha proporcionada en la condición. |
|
antes |
Final |
Formato de fecha ISO 8601 similar |
El valor del parámetro de fecha es anterior a la fecha proporcionada en la condición. |
|
relative_después |
Inicio (relativo) |
Número positivo o negativo de unidades de tiempo, como |
El valor del parámetro de fecha es posterior a la fecha relativa proporcionada en la condición. Las fechas relativas se evalúan cuando se carga el conjunto de datos, ya sea cuando se inicializa una sesión interactiva o cuando se inicia un trabajo asociado. Este es el momento que se denomina «ahora» en los ejemplos. |
|
relative_antes |
Fin (relativo) |
Número positivo o negativo de unidades de tiempo, como |
El valor del parámetro de fecha es anterior a la fecha relativa proporcionada en la condición. Las fechas relativas se evalúan cuando se carga el conjunto de datos, ya sea cuando se inicializa una sesión interactiva o cuando se inicia un trabajo asociado. Este es el momento que se denomina «ahora» en los ejemplos. |
Si usa el SDK, proporcione fechas relativas en el siguiente formato:±{number_of_time_units}{time_unit}. Puedes usar estas unidades de tiempo:
-1h (hace 1 hora)
+2d (dentro de 2 días)
-120 m (hace 120 minutos)
5000 s (dentro de 5000 segundos)
-3w (hace 3 semanas)
+4M (dentro de 4 meses)
-1y (hace 1 año)
Las fechas relativas se evalúan cuando se carga el conjunto de datos, ya sea cuando se inicializa una sesión interactiva o cuando se inicia un trabajo asociado. Este es el momento que se denomina «ahora» en los ejemplos anteriores.
Configurar los ajustes de los conjuntos de datos dinámicos
Además de proporcionar una ruta S3 parametrizada, puede configurar otros ajustes para conjuntos de datos con varios archivos. Estas configuraciones filtran los archivos S3 por su fecha de última modificación y limitan el número de archivos.
De forma similar a la configuración de un parámetro de fecha en una ruta, puede definir un intervalo de tiempo en el que se actualizaron los archivos coincidentes e incluir solo esos archivos en su conjunto de datos. Puede definir estos rangos utilizando fechas absolutas, como el «30 de marzo de 2021», o rangos relativos, como «Últimas 24 horas».
Para limitar el número de archivos coincidentes, seleccione un número de archivos superior a 0 e indique si desea los archivos coincidentes más recientes o los más antiguos.