StarRocks Spark 连接器使用指南:从StarRocks高效读取数据

StarRocks Spark 连接器使用指南:从StarRocks高效读取数据

【免费下载链接】starrocks StarRocks是一个开源的分布式数据分析引擎,用于处理大规模数据查询和分析。 - 功能:分布式数据分析;大规模数据查询;数据分析;数据仓库。 - 特点:高性能;可扩展;易于使用;支持多种数据源。 【免费下载链接】starrocks 项目地址: https://gitcode.com/GitHub_Trending/st/starrocks

概述

StarRocks Spark连接器是专为Apache Spark设计的连接器工具,它允许Spark应用程序直接从StarRocks数据仓库中读取数据。本文将详细介绍如何使用Spark连接器从StarRocks中读取数据,包括版本要求、参数配置、数据类型映射以及实际使用示例。

核心功能

StarRocks Spark连接器提供三种主要的数据读取方式:

  1. Spark SQL:创建临时视图直接查询StarRocks表
  2. Spark DataFrame:将StarRocks表映射为DataFrame进行操作
  3. Spark RDD:将StarRocks数据转换为RDD进行处理

其中,Spark DataFrame是最推荐的使用方式,因为它提供了更高级的API和更好的性能优化。

版本兼容性

连接器版本Spark支持版本StarRocks最低版本JavaScala
1.1.23.2-3.52.5+82.12
1.1.13.2-3.42.5+82.12
1.1.03.2-3.42.5+82.12
1.0.03.x1.18+82.12
1.0.02.x1.18+82.11

重要说明

  • 1.1.0及以上版本支持读写操作,而1.0.0仅支持读取
  • 不同版本间的参数和数据类型映射有差异,升级时需注意兼容性

获取连接器

1.1.0及以上版本

连接器JAR包命名格式: starrocks-spark-connector-${spark_version}_${scala_version}-${connector_version}.jar

获取方式:

  1. 下载预编译包
  2. 通过Maven添加依赖
  3. 手动编译源代码

1.0.0版本

获取方式:

  1. 下载预编译包
  2. 手动编译源代码

关键参数配置

通用参数

参数默认值说明
starrocks.fenodesFE节点HTTP地址
starrocks.table.identifier表名(数据库.表)
starrocks.filter.query数据过滤条件

Spark SQL/DataFrame专用参数

参数默认值说明
starrocks.fe.jdbc.urlFE的JDBC连接地址
starrocks.user用户名
starrocks.password密码

数据类型映射

1.1.0+版本映射关系

StarRocks类型Spark类型
BOOLEANBooleanType
INTIntegerType
BIGINTLongType
FLOATFloatType
DOUBLEDoubleType
DATEDateType
DATETIMETimestampType

实战示例

准备测试数据

  1. 创建测试表:
CREATE TABLE `score_board` (
    `id` int(11) NOT NULL,
    `name` varchar(65533) NULL DEFAULT "",
    `score` int(11) NOT NULL DEFAULT "0"
)
PRIMARY KEY(`id`)
DISTRIBUTED BY HASH(`id`);
  1. 插入示例数据:
INSERT INTO score_board VALUES
(1, 'Bob', 21), (2, 'Stan', 21), ...;

Spark SQL读取示例

// 创建临时视图
spark-sql> CREATE TEMPORARY VIEW spark_starrocks
           USING starrocks
           OPTIONS (
               "starrocks.table.identifier" = "test.score_board",
               "starrocks.fe.http.url" = "fe_host:8030",
               "starrocks.fe.jdbc.url" = "jdbc:mysql://fe_host:9030",
               "starrocks.user" = "root",
               "starrocks.password" = ""
           );

// 查询数据
spark-sql> SELECT * FROM spark_starrocks;

Spark DataFrame读取示例

// 创建DataFrame
val df = spark.read.format("starrocks")
    .option("starrocks.table.identifier", "test.score_board")
    .option("starrocks.fe.http.url", "fe_host:8030")
    .option("starrocks.fe.jdbc.url", "jdbc:mysql://fe_host:9030")
    .option("starrocks.user", "root")
    .option("starrocks.password", "")
    .load()

// 显示数据
df.show(10)

性能优化建议

  1. 数据过滤下推:尽量在StarRocks端完成数据过滤,减少传输量
  2. 合理设置分区:通过starrocks.request.tablet.size控制分区数量
  3. 批量读取:适当增大starrocks.batch.size减少网络开销
  4. 异步转换:启用starrocks.deserialize.arrow.async提升性能

常见问题

  1. 权限问题:确保用户有SELECT权限
  2. 网络连接:检查FE和BE节点的端口可访问性
  3. 版本兼容性:注意Spark、Scala和连接器版本的匹配

通过本文介绍,您应该已经掌握了使用StarRocks Spark连接器从StarRocks中高效读取数据的方法。根据实际业务需求选择合适的读取方式,并合理配置参数,可以获得最佳的性能表现。

【免费下载链接】starrocks StarRocks是一个开源的分布式数据分析引擎,用于处理大规模数据查询和分析。 - 功能:分布式数据分析;大规模数据查询;数据分析;数据仓库。 - 特点:高性能;可扩展;易于使用;支持多种数据源。 【免费下载链接】starrocks 项目地址: https://gitcode.com/GitHub_Trending/st/starrocks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值