在Google Datalake环境中,Dataproc Metastore服务的用途是什么?
我正在看一个谷歌云技术的视频,在这个视频的17:33分左右,主持人说:
为了使数据可访问,需要的另一件事是GCS桶中存在的所有数据,因此在BigQuery上。最近推出的Dataproc Metastore这是一个高兼容性的Metastore。它基于高亚稳态。这将允许你注册数据,特别是结构化数据,这样你就可以使用Spark, PRESTO或Hive进行查询
我理解这句话的方式是,如果我有一个名为my_bigquery_table
的BigQuery表,我应该能够运行以下Hive查询(或类似)并获得输出:
SELECT * FROM my_bigquery_table;
据我所知,这只会工作,如果我的Metastore能够从数据目录中提取关于我的BigQuery表的条目。
我的理解正确吗?目前,我无法找到一种方法来同步我的数据目录条目到Metastore(同步数据从Metastore到数据目录是可能的,我知道这一点)。
更新1:
这是一个有效的例子,从GCS加载Parquet/CSV文件:
CREATE EXTERNAL TABLE sample_table(<column list>) STORED AS PARQUET LOCATION 'gs://parquet_bucket/parquet_file'; // table creation
SELECT * FROM sample_table; // select query
Dataproc Metastore是托管的Apache Hive Metastore服务。当访问存储在服务中的数据库和表元数据时,它提供100%的OSS兼容性。
例如,您可能有一个表存储在Google Cloud Storage上的Parquet文件中。您可以在这些文件上定义一个表,并将该元数据存储在Dataproc Metastore实例中。然后,您可以将Cloud Dataproc集群连接到您的Dataproc Metastore服务实例,并使用Hive, SparkSQL或其他查询引擎查询该表。
Dataproc Metastore还为Spark SQL提供了一个兼容OSS的元数据API,用于查询Cloud Dataplex发现的数据。更多信息请参阅本文档。
Dataproc Metastore不会自动从Data Catalog中获取元数据,也不会自动从Hive中查询BigQuery表。