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.
Entregue datos a Apache Iceberg Tables con Amazon Data Firehose
Apache Iceberg es un formato de tabla de código abierto de alto rendimiento para realizar análisis de macrodatos. Apache Iceberg aporta la fiabilidad y la simplicidad de SQL las tablas a los lagos de datos de Amazon S3 y hace posible que los motores de análisis de código abierto, como Spark, Flink, Trino, Hive e Impala, trabajen simultáneamente con los mismos datos. Para obtener más información sobre Apache Iceberg, consulte. https://iceberg.apache.org/
Puede usar Firehose para entregar datos de streaming directamente a Apache Iceberg Tables en Amazon S3. Con esta función, puede enrutar los registros de un único flujo a distintas tablas de Iceberg de Apache y aplicar automáticamente operaciones de inserción, actualización y eliminación a los registros de las tablas de Iceberg de Apache. Firehose garantiza la entrega de una sola vez a Iceberg Tables. Esta función requiere el uso de. AWS Glue Data Catalog
nota
Firehose es compatible con las mesas Apache Iceberg como destino en EE. UU. Este (Norte de Virginia), EE. UU. Oeste (Oregón), Europa (Irlanda), Asia Pacífico (Tokio), Canadá (Central) y Asia Pacífico (Sídney). Regiones de AWS
Consideraciones y limitaciones
El soporte de Firehose para las tablas Apache Iceberg tiene las siguientes consideraciones y limitaciones.
Rendimiento: si utiliza Direct PUT como fuente para enviar datos a las tablas de Apache Iceberg, el rendimiento máximo por transmisión es de 5 MiB/second in US East (N. Virginia), US West (Oregon), and Europe (Ireland) Regions and 1 MiB/second en las regiones de Asia Pacífico (Tokio), Canadá (Central) y Asia Pacífico (Sídney). Si solo quieres insertar datos en las tablas de Iceberg sin actualizaciones ni eliminaciones y quieres aumentar el rendimiento de tu transmisión, puedes utilizar el formulario Firehose Limits para solicitar un aumento del límite
de rendimiento. Columnas: para los nombres y valores de las columnas, Firehose solo toma el primer nivel de nodos de un anidado de varios niveles. JSON Por ejemplo, Firehose selecciona los nodos que están disponibles en el primer nivel, incluido el campo de posición. Los nombres de las columnas y los tipos de datos de los datos de origen deben coincidir con los de las tablas de destino para que Firehose los entregue correctamente. En este caso, Firehose espera que en las tablas Iceberg haya una columna de tipo de datos de estructura o de mapa que coincida con el campo de posición. Firehose admite 16 niveles de anidación. El siguiente es un ejemplo de un anidado. JSON
{ "version":"2016-04-01", "deviceId":"<solution_unique_device_id>", "sensorId":"<device_sensor_id>", "timestamp":"2024-01-11T20:42:45.000Z", "value":"<actual_value>", "position":{ "x":143.595901, "y":476.399628, "z":0.24234876 } }
Si los nombres de las columnas o los tipos de datos no coinciden, Firehose genera un error y envía los datos al depósito de errores de S3. Si todos los nombres de las columnas y los tipos de datos coinciden en las tablas de Iceberg de Apache, pero hay un campo adicional en el registro de origen, Firehose omite el nuevo campo.
Un JSON objeto por registro: solo puede enviar un JSON objeto en un registro de Firehose. Si agregas y envías varios JSON objetos dentro de un registro, Firehose arroja un error y envía los datos al depósito de errores de S3. Si agrega registros KPLe ingiere datos en Firehose con Amazon Kinesis Data Streams como fuente, Firehose desagrega automáticamente y usa un objeto por registro. JSON
-
Optimización de la compactación y el almacenamiento: cada vez que escribes con Firehose, este archiva y genera instantáneas, pequeños archivos de datos y elimina archivos. Tener miles de archivos de datos pequeños aumenta la sobrecarga de metadatos y afecta al rendimiento de lectura. Para obtener un rendimiento óptimo de las consultas, quizás desee considerar una solución que recoja periódicamente archivos de datos pequeños y los reescriba en un menor número de archivos de datos más grandes. Este proceso se denomina compactación. AWS Glue Data Catalog admite la compactación automática de las tablas Apache Iceberg. Para obtener más información, consulte Gestión de compactación en la Guía del usuario de AWS Glue. Para obtener información adicional, consulte Compactación automática de tablas Apache Iceberg
. Además de compactar los archivos de datos, también puede optimizar las tablas Iceberg reduciendo el consumo de almacenamiento con una VACUUMinstrucción que realiza el mantenimiento de las tablas de Apache Iceberg. Como alternativa, también puede utilizar una AWS Glue Data Catalog herramienta que también permita optimizar las tablas de Apache Iceberg mediante la eliminación automática de los archivos de datos, los archivos huérfanos y las instantáneas caducadas que ya no sean necesarias. Para obtener más información, consulte esta entrada del blog sobre la optimización del almacenamiento de las tablas Apache
Iceberg.