将 Dataplex Explore 迁移到 BigQuery Studio

Dataplex 将停止对“探索”功能的支持。本文档简要介绍了 如何将 Dataplex Discover 资源迁移到 BigQuery Studio。您可以迁移 Spark SQL 和 JupyterLab 笔记本 BigQuery Studio,一种统一的数据探索工具, 平台。

已弃用的功能

如有问题或需要澄清,请发送电子邮件至 dataplex-explore-support@google.com 与“探索”团队联系。

准备工作

  • Enable the BigQuery and BigQuery Studio APIs.

    Enable the APIs

笔记本内容

如果您在“探索”中使用的是通过 JupyterLab 实例以无服务器方式运行的笔记本,那么迁移后,您将在 BigQuery Studio 中获得相同的体验。

BigQuery Studio 提供由 Colab Enterprise 提供支持的笔记本界面,与 JupyterLab 笔记本相比,具有多项优势。您仍然可以在 BigQuery Studio 中以无服务器方式编写、保存和运行笔记本。此外,您还可以获享 Colab Enterprise 集成云环境的诸多优势,包括强大的 GPU 和 TPU、通过 Google 云端硬盘进行实时协作、共享和访问控制、自动保存、预安装的库、免费使用(配有配额)、内置的 widget 和扩展程序,以及与 BigQuery 和 Cloud Storage 等其他 Google 服务的集成。

Spark SQL 内容

Dataplex Discovery 会在 BigQuery 和 Dataproc Metastore 中注册发现的表。根据 表,请使用以下迁移选项之一。

  • 表在 Dataproc Metastore 和 BigQuery:如果 Spark SQL 脚本与 Dataplex 通过 Dataproc Metastore 发现的表; 那么您可以直接通过 Cloud 控制台查询这些表 BigQuery
  • 表仅在 Dataproc Metastore 中注册:如果 Spark SQL 脚本与 BigQuery 中不存在的表进行交互,则您需要设置 BigQuery Studio 与 Dataproc Metastore 的集成。Dataproc Metastore 两种类型的端点:Trift 和 gRPC。如需详细了解如何查找端点协议,请参阅查找端点 URI 值。然后,按照以下步骤设置 BigQuery Studio 集成 部分。

连接到基于 Thrift 的 Dataproc Metastore

基于 Thrift 的端点以 thrift:// 开头。要连接到 Dataproc Metastore,传递 SparkSession 配置,如以下示例所示:

from pyspark.sql import SparkSession

spark = (
    SparkSession.builder.appName("Dataproc Metastore Connection")
    .config(
        "spark.hadoop.hive.metastore.uris",
        "thrift://IP_ADDRESS:9083",
    )
    .enableHiveSupport()
    .getOrCreate()
)

连接到基于 gRPC 的端点

基于 gRPC 的端点以 https:// 开头。Spark 无法直接连接到非 Thrift 端点。而是必须运行一个代理服务,用于将请求从 Thrift 转换为 gRPC。要连接到基于 gRPC 的 Dataproc Metastore 服务,请在 BigQuery Studio 笔记本:

  1. 在笔记本中运行以下命令,在笔记本运行时下载最新版本的 Hive Metastore (HMS) 代理 JAR 文件:

    # Download the latest HMS Proxy jar file.
    !gcloud storage cp gs://metastore-init-actions/metastore-grpc-proxy/hms-proxy-3.1.2-v0.0.46.jar
    
  2. 启动 HMS 代理。

    %%bash
    # Metastore store URI including the port number but without "https://" prefix.
    METASTORE_URI=METASTORE_URI
    # HMS Proxy JAR path.
    JAR_PATH=JAR_PATH
    # DPMS Supported Hive Version.
    HIVE_VERSION=3.1.2
    
    # Start the HMS Proxy.
    java -jar ${JAR_PATH} --conf proxy.mode=thrift proxy.uri=${METASTORE_URI} thrift.listening.port=9083 hive.version=${HIVE_VERSION} google.credentials.applicationdefault.enabled=true proxy.grpc.ssl.upstream.enabled=true > /tmp/hms.logs 2>&1 &
    
  3. 将 Spark 会话连接到本地 HMS 代理。

    from pyspark.sql import SparkSession
    
    spark = (
      SparkSession.builder.appName("Dataproc Metastore Connection")
      .config(
          "spark.hadoop.hive.metastore.uris",
          "thrift://localhost:9083",
      )
      .enableHiveSupport()
      .getOrCreate()
    )
    

会话资源

会话资源是指特定于用户的活跃会话。不支持迁移会话资源。

环境资源

环境可为您的 Spark SQL 查询和笔记本提供无服务器计算资源,以便在数据湖中运行。由于 BigQuery Studio 提供了 一个用于运行 SQL 查询和笔记本的无服务器环境, 环境资源不受支持。

使用内容资源安排任务

您可以在 BigQuery Studio 中安排查询