in

Presentación de metadatos de objetos consultables para depósitos de Amazon S3 (versión preliminar) | Servicios web de Amazon

Los clientes de AWS utilizan Amazon Simple Storage Service (Amazon S3) a una escala increíble, creando periódicamente depósitos individuales que contienen miles de millones o billones de objetos. A esa escala, encontrar objetos que cumplan criterios particulares (objetos con claves que coincidan con un patrón, objetos de un tamaño particular u objetos con una etiqueta específica) se vuelve un desafío. Nuestros clientes han tenido que crear sistemas que capturen, almacenen y consulten esta información. Estos sistemas pueden volverse complejos y difíciles de escalar, y pueden no estar sincronizados con el estado real del depósito y los objetos que contiene.

Metadatos enriquecidos
Hoy habilitamos en la vista previa la generación automática de metadatos que se capturan cuando se agregan o modifican objetos de S3 y se almacenan en archivos totalmente administrados. Iceberg apache mesas. Esto le permite utilizar herramientas compatibles con Iceberg como Amazon Athena, Amazon Redshift, Amazon QuickSighty chispa apache para consultar fácil y eficientemente los metadatos (y encontrar los objetos de interés) a cualquier escala. Como resultado, puede encontrar rápidamente los datos que necesita para sus cargas de trabajo de análisis, procesamiento de datos y capacitación en IA.

Para las respuestas de inferencia de video almacenadas en S3, Amazon Bedrock anotará el contenido que genera con metadatos que le permitirán identificar el contenido como generado por IA y saber qué modelo se utilizó para generarlo.

El esquema de metadatos contiene más de 20 elementos, incluido el nombre del depósito, la clave del objeto, el tiempo de creación/modificación, la clase de almacenamiento, el estado de cifrado, las etiquetas y los metadatos del usuario. También puede almacenar información descriptiva adicional específica de la aplicación en una tabla separada y luego unirla a la tabla de metadatos como parte de su consulta.

Cómo funciona
Puede habilitar la captura de metadatos enriquecidos para cualquiera de sus depósitos de S3 especificando la ubicación (un depósito de tabla de S3 y un nombre de tabla) donde desea que se almacenen los metadatos. La captura de actualizaciones (creación de objetos, eliminación de objetos y cambios en los metadatos de los objetos) comienza de inmediato y se almacenará en la tabla en cuestión de minutos. Cada actualización genera una nueva fila en la tabla, con un tipo de registro (CREATE, UPDATE_METADATAo DELETE) y un número de secuencia. Puede recuperar el registro histórico de un objeto determinado ejecutando una consulta que ordene los resultados por número de secuencia.

Habilitación y consulta de metadatos
Empiezo creando un depósito de tablas para mis metadatos usando el create-table-bucket comando (esto también se puede hacer desde la Consola de administración de AWS o con una llamada API):

$ aws s3tables create-table-bucket --name jbarr-table-bucket-1 --region us-east-2
--------------------------------------------------------------------------------
|                               CreateTableBucket                              |
+-----+------------------------------------------------------------------------+
|  arn|  arn:aws:s3tables:us-east-2:123456789012:bucket/jbarr-table-bucket-1   |
+-----+------------------------------------------------------------------------+

Luego especifico el depósito de la tabla (por ARN) y el nombre de la tabla deseada colocando este JSON en un archivo (lo llamaré config.json):

{
  "S3TablesDestination": {
    "TableBucketArn": "arn:aws:s3tables:us-east-2:123456789012:bucket/jbarr-table-bucket-1",
    "TableName": "jbarr_data_bucket_1_table"
  }
}

Y luego adjunto esta configuración a mi depósito de datos (para el que quiero capturar metadatos):

$ aws s3api create-bucket-metadata-table-configuration \
  --bucket jbarr-data-bucket-1 \
  --metadata-table-configuration file://./config.json \
  --region us-east-2

Para fines de prueba, instalé Apache Spark en una instancia EC2 y después de un poco de configuración pude ejecutar consultas haciendo referencia al Catálogo de tablas de Amazon S3 para Apache Iceberg paquete y agregando la tabla de metadatos (como mytablebucket) a la línea de comando:

$ bin/spark-shell \
--packages org.apache.iceberg:iceberg-spark-runtime-3.4_2.12:1.6.0 \
--jars ~/S3TablesCatalog.jar \
--master yarn \
--conf "spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions" \
--conf "spark.sql.catalog.mytablebucket=org.apache.iceberg.spark.SparkCatalog" \
--conf "spark.sql.catalog.mytablebucket.catalog-impl=com.amazon.s3tables.iceberg.S3TablesCatalog" \
--conf "spark.sql.catalog.mytablebucket.warehouse=arn:aws:s3tables:us-east-2:123456789012:bucket/jbarr-table-bucket-1"

Aquí está el esquema actual de la tabla Iceberg:

scala> spark.sql("describe table mytablebucket.aws_s3_metadata.jbarr_data_bucket_1_table").show(100,35)

+---------------------+------------------+-----------------------------------+
|             col_name|         data_type|                            comment|
+---------------------+------------------+-----------------------------------+
|               bucket|            string|   The general purpose bucket name.|
|                  key|            string|The object key name (or key) tha...|
|      sequence_number|            string|The sequence number, which is an...|
|          record_type|            string|The type of this record, one of ...|
|     record_timestamp|     timestamp_ntz|The timestamp that's associated ...|
|           version_id|            string|The object's version ID. When yo...|
|     is_delete_marker|           boolean|The object's delete marker statu...|
|                 size|            bigint|The object size in bytes, not in...|
|   last_modified_date|     timestamp_ntz|The object creation date or the ...|
|                e_tag|            string|The entity tag (ETag), which is ...|
|        storage_class|            string|The storage class that's used fo...|
|         is_multipart|           boolean|The object's upload type. If the...|
|    encryption_status|            string|The object's server-side encrypt...|
|is_bucket_key_enabled|           boolean|The object's S3 Bucket Key enabl...|
|          kms_key_arn|            string|The Amazon Resource Name (ARN) f...|
|   checksum_algorithm|            string|The algorithm that's used to cre...|
|          object_tags|map|The object tags that are associa...|
|        user_metadata|map|The user metadata that's associa...|
|            requester|            string|The AWS account ID of the reques...|
|    source_ip_address|            string|The source IP address of the req...|
|           request_id|            string|The request ID. For records that...|
+---------------------+------------------+-----------------------------------+

Aquí hay una consulta simple que muestra algunos de los metadatos de las diez actualizaciones más recientes:

scala> spark.sql("SELECT key,size, storage_class,encryption_status \
  FROM mytablebucket.aws_s3_metadata.jbarr_data_bucket_1_table \
  order by last_modified_date DESC LIMIT 10").show(false)
+--------------------+------+-------------+-----------------+                   
|key                 |size  |storage_class|encryption_status|
+--------------------+------+-------------+-----------------+
|wnt_itco_2.png      |36923 |STANDARD     |SSE-S3           |
|wnt_itco_1.png      |37274 |STANDARD     |SSE-S3           |
|wnt_imp_new_1.png   |15361 |STANDARD     |SSE-S3           |
|wnt_imp_change_3.png|67639 |STANDARD     |SSE-S3           |
|wnt_imp_change_2.png|67639 |STANDARD     |SSE-S3           |
|wnt_imp_change_1.png|71182 |STANDARD     |SSE-S3           |
|wnt_email_top_4.png |135164|STANDARD     |SSE-S3           |
|wnt_email_top_2.png |117171|STANDARD     |SSE-S3           |
|wnt_email_top_3.png |55913 |STANDARD     |SSE-S3           |
|wnt_email_top_1.png |140937|STANDARD     |SSE-S3           |
+--------------------+------+-------------+-----------------+

En una situación del mundo real, consultaría la tabla utilizando una de las herramientas de análisis de código abierto o AWS que mencioné anteriormente.

Acceso a la consola
También puedo configurar y administrar la configuración de metadatos de mis depósitos usando la consola de Amazon S3 haciendo clic en el Metadatos pestaña:

Disponible ahora
Los metadatos de Amazon S3 ya están disponibles en versión preliminar y puede comenzar a usarlos hoy en las regiones de AWS Este de EE. UU. (Ohio, Norte de Virginia) y Oeste de EE. UU. (Oregón).

La integración con AWS Glue Data Catalog está en versión preliminar, lo que le permite consultar y visualizar datos (incluidas las tablas de metadatos de S3) mediante servicios de AWS Analytics como Amazon Athena, Amazon Redshift, Amazon EMR y Amazon QuickSight.

El precio se basa en el número de actualizaciones (creaciones de objetos, eliminaciones de objetos y cambios en los metadatos de los objetos) con un cargo adicional por el almacenamiento de la tabla de metadatos. Para obtener más información sobre precios, visite la página de precios de S3.

Estoy seguro de que podrá utilizar estos metadatos de muchas maneras poderosas y espero conocer sus casos de uso. ¡Déjame saber lo que piensas!

jeff;



Fuente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

GIPHY App Key not set. Please check settings

Kuo: el nuevo HomePod con pantalla de hogar inteligente llegará a finales de 2025

Meta se apoya silenciosamente en su rival GPT-4 a pesar de las audaces afirmaciones de Llama de Zuckerberg

Meta se apoya silenciosamente en su rival GPT-4 a pesar de las audaces afirmaciones de Llama de Zuckerberg