Almacenamiento de datos para tablas internas

Dataproc Metastore usa asignaciones entre archivos del el sistema de archivos distribuido Hadoop (HDFS) o del sistema de almacenamiento compatible con Hive y las tablas de Apache Hive para administrar completamente metadatos. Los siguientes conceptos y consideraciones son importantes cuando se adjunta un clúster de Dataproc u otro clúster autoadministrado para usar un servicio de Dataproc Metastore como su almacén de metadatos de Hive.

Conceptos del almacén de metadatos de Hive

Todas las aplicaciones de Hive pueden tener tablas internas administradas o externas no administradas. En las tablas internas, el almacén de metadatos de Hive administra no solo los metadatos, sino también los datos de esas tablas. Por otro lado, en el caso de las tablas externas, el almacén de metadatos de Hive no administra los datos, sino solo los metadatos de esas tablas.

Por ejemplo, cuando borras una definición de tabla con la instrucción de SQL de Hive DROP TABLE:

drop table foo
  • En las tablas internas, el almacén de metadatos de Hive quita esas entradas de metadatos en el almacén de metadatos de Hive y, también, borra los archivos asociados con esta tabla en particular.

  • En el caso de las tablas externas, el almacén de metadatos de Hive solo borrará los metadatos y mantendrá los datos asociados a esta tabla en particular.

Crea un bucket de Cloud Storage

Cuando creas un servicio de Dataproc Metastore, se crea de forma automática un bucket de Cloud Storage para tu proyecto. Este bucket se usa como almacenamiento permanente para almacenar los artefactos y metadatos del servicio, como los archivos de volcado y los registros de depuración.

.

Directorio de almacenes de Hive

Para que el almacén de metadatos de Hive funcione correctamente, ya sea para tablas internas o externas, es posible que debas proporcionar Dataproc Metastore con el directorio de almacenes de Hive en el momento de crear el servicio. Este directorio contiene subdirectorios que corresponden a tablas internas y que almacenan los datos reales en la tabla. A menudo son buckets de Cloud Storage.

Ya sea que proporciones Dataproc Metastore con un directorio de almacén o no, Dataproc Metastore crea un bucket de artefactos de Cloud Storage para almacenar artefactos de servicio que consumirás.

Si eliges proporcionar un directorio de almacenes de Hive, haz lo siguiente:

  • Asegúrate de que tu servicio de Dataproc Metastore tenga acceso de lectura/escritura al directorio de almacenes Para ello, otorga al agente de servicio de control de Dataproc Metastore acceso de lectura/escritura, que es roles/storage.objectAdmin. Esta concesión se debe establecer a nivel de bucket o superior. La cuenta de servicio a la que debes otorgar acceso es service-customer-project-number@gcp-sa-metastore.iam.gserviceaccount.com.

    Consulta Control de acceso de Cloud Storage para obtener información sobre cómo otorgar permisos de lectura/escritura a los agentes de servicio de Dataproc Metastore en tu directorio de almacenes.

Si eliges no proporcionar un directorio de almacenes de Hive:

  • Dataproc Metastore creará automáticamente un directorio de almacenes para ti en una ubicación predeterminada, gs://your-artifacts-bucket/hive-warehouse.

Borra el bucket de Cloud Storage

Borrar el servicio de Dataproc Metastore no borra el bucket de artefactos de Cloud Storage. Esto se debe a que tu bucket puede contener datos útiles posteriores al servicio. Si deseas borrar tu bucket, debes hacerlo de forma explícita.

Próximos pasos