文档首页/ 数据湖探索 DLI/ 最佳实践/ 使用BI工具连接DLI分析数据/ 配置PowerBI通过Kyuubi连接DLI进行数据查询和分析
更新时间:2024-12-27 GMT+08:00
分享

配置PowerBI通过Kyuubi连接DLI进行数据查询和分析

Power BI提供了数据集成、数据仓库、报告和数据可视化等功能,能够将复杂的数据转换为易于理解和交互的可视化图表和仪表板,从而帮助企业做出基于数据的决策。

Kyuubi是一个分布式SQL查询引擎,它允许用户通过标准的SQL接口来访问和分析数据。

将Power BI与Kyuubi对接,通过Kyuubi访问DLI进行数据查询和分析,简化了数据访问流程,提供了数据的统一管理和分析能力,从而获得更深入的数据洞察。

本节操作介绍PowerBI基于Kyuubi连接DLI,以访问和分析DLI中的数据的操作步骤。

操作流程

图1 操作流程

步骤1:安装并配置Kyuubi连接DLI

如需使用外网访问Kyuubi请确保弹性云服务器绑定弹性公网IP,并配置安全组入方向开启10009和3309端口。

  1. 安装JDK

    在安装和使用Kyuubi前,确保您的开发环境已安装JDK。

    Java SDK要求使用JDK1.8或更高版本。考虑到后续版本的兼容性,推荐使用1.8版本。

    1. 下载JDK。

      Oracle官网下载并安装JDK1.8版本安装包。

      本例使用jdk-8u261-linux-x64.tar.gz。

    2. 将jdk上传到linux服务器对应的目录下并执行解压命令,此处上传到/usr/local目录下。
      sudo tar -xzf jdk-8u261-linux-x64.tar.gz -C /usr/local/
    3. 配置环境变量。

      编辑.bashrc或.profile文件,添加以下行:

      export JAVA_HOME=/usr/local/jdk-1.8.0_261
      export PATH=$PATH:$JAVA_HOME/bin
    1. 执行以下命令应用环境变量。
      source ~/.bashrc
    2. 执行命令java -version,检查是否安装成功,如下显示版本号信息说明java环境安装成功。
      java version "1.8.0_261"
      Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
      Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

  2. 安装Kyuubi

    1. 访问Apache Kyuubi的下载Kyuubi安装包。了解更多Kyuubi安装操作
    2. 解压下载的Kyuubi安装包。
      tar -xzf kyuubi-{version}-bin.tar.gz
    3. 配置环境变量(可选):

      将Kyuubi的bin目录添加到PATH环境变量中,确保可以在任何位置调用Kyuubi的脚本。

  3. 配置Kyuubi连接DLI

    1. 在Kyuubi的根目录下添加DLI驱动。

      在“DLI SDK DOWNLOAD”页面,单击Kyuubi驱动包链接,下载对应版本的驱动包。

      并将该驱动放在kyuubi根目录/externals/engines/jdbc。

      确保插件用户组和权限与其他Jar保持一致。

    2. 执行以下命令修改Kyuubi配置文件。

      cd $KYUUBI_HOME/confvi kyuubi-defaults.conf

      配置项说明请参考表1

      表1 kyuubi配置参数说明

      配置项

      说明

      是否必选

      示例

      kyuubi.engine.type

      JDBC服务类型。这里请指定为dli。

      jdbc

      kyuubi.engine.jdbc.type

      引擎类型。请使用dli。

      dli

      kyuubi.engine.jdbc.driver.class

      连接JDBC服务使用的驱动类名。请使用com.huawei.dli.jdbc.DliDriver

      com.huawei.dli.jdbc.DliDriver

      kyuubi.engine.jdbc.connection.url

      JDBC服务连接的URL。

      格式:jdbc:dli://{dliendpoint} /{projectId}

      jdbc:dli://{dliendpoint} /{projectId}

      kyuubi.engine.jdbc.session.initialize.sql

      用于指定在建立JDBC会话时执行的初始化SQL语句。

      select 1

      如果在DLI的管理控制台看到select 1,代表初始化成功。

      kyuubi.frontend.protocols

      用于指定Kyuubi服务支持的前端协议。Kyuubi支持多种前端协议,允许用户通过不同的接口与Kyuubi进行交互。

      • mysql
      • thrift_binary

      kyuubi.engine.dli.schema.show.name

      用于指定当用户执行show schemas或show databases语句时,Kyuubi引擎如何展示数据源接口的模式名称。

      • true:表示在展示模式名称时,包含 DLI 的名称作为前缀。
      • false:表示在展示模式名称时,不包含 DLI 的名称。

      例如如果配置为true,并且有一个DLI名称为 hive,那么在执行show schemas时,输出为hive.default的格式。

      如果配置为false,输出为default的格式。

      • true
      • false

      kyuubi.engine.dli.jdbc.connection.region

      DLI的区域名称和服务名称。

      regionname=ap-southeast-2

      kyuubi.engine.dli.jdbc.connection.queue

      DLI服务的队列名称。

      dli_test

      kyuubi.engine.dli.jdbc.connection.database

      用于指定Kyuubi引擎通过JDBC连接到DLI数据源时默认使用的数据库名称。

      tpch

      kyuubi.engine.dli.jdbc.connection.ak

      AK/SK认证密钥。

      如果使用AK/SK认证方式。

      accesskey=your-access-key

      kyuubi.engine.dli.jdbc.connection.sk

      DLI的区域名称和服务名称。

      如果使用AK/SK认证方式时配置。

      secretkey=your-secret-key

      kyuubi.engine.dli.jdbc.connection.project

      DLI资源所在的项目ID。

      0b33ea2a7e0010802fe4c009bb05076d

      kyuubi.engine.dli.sql.limit.time.sec

      SQL查询的执行时间限制。

      默认600s

      300

      kyuubi.engine.dli.result.line.num.limit

      SQL查询的返回的最大条数。

      默认返回10万条。

      配置为-1代表不限制返回的条数。

      50000

      kyuubi.engine.dli.small.file.merge

      配置是否开启小文件自动合并。默认为false,代表不开启。

      • true:开启
      • false:不开启

      true

      kyuubi.engine.dli.bi.type

      用于指定BI工具类型。

      支持fine/ grafana/ superset/ tableau/ power/dbt/yongHong

      fine

      kyuubi.engine.dli.boolean.type.to.int

      定义DLI的Boolean类型数据是以1/0返回,还是true/false返回

      当BI工具类型为Grafana时,需要设置为true。

      • true:按1/0返回(1:代表true,0:fales)。
      • false:按true/false返回。

      默认取值false。

      false

      kyuubi.engine.dli.set.conf.transform.to.annotation

      支持在SQL中设置set spark参数。

      PowerBI、FineBI、SuperSet、DBT需要设置为true。

      true

      kyuubi.engine.dli.set.conf.sql.suffix

      支持在SQL中尾端设置set spark参数。

      PowerBI、DBT需要设置为true。

      true

      kyuubi.engine.dli.result.cache.enable

      是否开启库表数据缓存,开启后自动缓存库表信息。默认为true。

      • true:开启
      • false:不开启

      true

      kyuubi.engine.dli.cache.limit.line.num

      配置缓存的最大条数。

      默认缓存10万条。

      配置为-1代表不限制缓存的最大条数。

      1000

      kyuubi.engine.dli.cache.time.sec

      配置缓存的时间。

      默认为1800s。

      1800

      kyuubi.operation.incremental.collect

      kyuubi会预加载select结果数据到缓存加快读取数据,数据量较大的场景防止内存OOM建议关闭。

      false

      配置为false代表关闭预加载。

      kyuubi.engine.jdbc.memory

      jdbc engine进程内存

      默认为1g,建议改成5g以上加大jdbc engine进程内存使用

      5g

    3. 快速启动kyuubi。

      进入云服务器的根目录/bin执行以下命令启动kyuubi。

      cd /bin
      ./kyuubi start  restart

      连接成功后,可以执行SQL查询来测试Kyuubi与DLI的连接是否正常工作。

  4. 可选)配置主机的host文件提高Kyuubi的访问效率

    为了提高Kyuubi的访问效率,建议在主机的/etc/hosts 配置Kyuubi主机IP的映射关系。

    1. 执行ifconfig查看主机IP地址。
      图2 查看主机IP地址
    2. 将该IP配置在/etc/hosts文件中。
      图3 在/etc/hosts文件中配置IP地址

步骤2:配置ODBC连接Kyuubi

  1. 安装ODBC驱动

    根据数据库类型,需要在本地主机上安装相应的ODBC驱动。本例使用Hive数据库类型。

  2. 配置ODBC连接Kyuubi

    1. 在Windows系统中,打开“控制面板 > 管理工具 > 数据源 (ODBC)”。
    2. 配置新的ODBC数据源。
      1. 在ODBC中单击“User DSN”。
      2. 单击“Add”创建新的数据源。
      3. 选择Hive ODBC Driver,单击“OK”。
      图4 ODBC新建数据源连接
    3. 在创建的新数据源配置界面中,输入Kyuubi服务器的相关信息。
      • 数据库名称:本例输入DLI数据库名称。
      • 服务器地址:输入Kyuubi服务器的弹性公网IP地址。
      • 端口号:Kyuubi服务监听的端口,使用Hive Thrift协议,默认端口10009。
      • 用户名和密码:按需配置Kyuubi服务器用户名和密码。

      按需配置其他高级选项,然后保存配置。

      图5 ODBC配置数据源连接信息
    4. 单击“Test”测试数据源连接是否成功,如果连接正常单击“OK”保存连接。

步骤3:配置Power BI使用ODBC连接到Kyuubi

  1. 单击并安装PowerBI。获取PowerBI安装包
  2. 打开Power BI Desktop。
  3. 单击“主页”选项卡下的“获取数据”按钮。
  4. 在“获取数据”窗口中,选择“更多...”以查看其他数据源选项。
  5. 从列表中选择“ODBC”作为数据源类型,然后单击“连接”。
  6. 在弹出的“ODBC驱动管理器”窗口中,选择步骤2:配置ODBC连接Kyuubi配置的ODBC数据源名称,单击“确定”。

    Power BI将使用ODBC连接到Kyuubi,并允许你预览和选择数据库中的表和视图。

    在预览库表时请选择limit,否则分区表将全表扫描。

常用操作:SQL作业参数设置

根据安装ODBC驱动类型选择配置方法:

  • 使用Cloudera Hive ODBC (v2.5.12)驱动
    只需在sql语句的末尾添加注解参数。
    -- @set 参数
    示例:
    -- @set dli.sql.current.database=tpch
    -- @set dli.sql.shuffle.partitions=100
    图6 ODBC配置参数示例(Cloudera Hive ODBC)
  • 使用Microsoft Hive ODBC (v2.6.12.1012)驱动
    1. 确保kyuubi的/conf/kyuubi-defaults.conf配置打开如下参数开关。
      kyuubi.engine.dli.set.conf.transform.to.annotation=true
      kyuubi.engine.dli.set.conf.sql.suffix=true
    2. 在sql语句的末尾添加注解参数。
      set 参数
      示例:
      set dli.sql.current.database=tpch
      set dli.sql.shuffle.partitions=100
      图7 ODBC配置参数示例(Microsoft Hive ODBC)

在DLI的SQL编辑器的执行效果:

图8 在DLI的SQL编辑器查看配置的参数

相关文档