跳到主要内容
版本: 最新版-4.0

加载选项

数据加载是根据您的业务需求,对来自各种数据源的原始数据进行清洗和转换,然后将结果数据加载到 StarRocks 中以方便分析的过程。

StarRocks 提供了多种数据加载选项

  • 加载方式:INSERT、Stream Load、Broker Load、Pipe、Routine Load 和 Spark Load
  • 生态系统工具:StarRocks Connector for Apache Kafka®(简称 Kafka connector)、StarRocks Connector for Apache Spark™(简称 Spark connector)、StarRocks Connector for Apache Flink®(简称 Flink connector)以及 SMT、DataX、CloudCanal 和 Kettle Connector 等其他工具
  • API:Stream Load 事务接口

这些选项各有其优点,并支持从各自对应的一组数据源系统进行数据拉取。

本主题概述了这些选项,并对它们进行了比较,以帮助您根据数据源、业务场景、数据量、数据文件格式和加载频率来确定最适合您的加载选项。

加载选项简介

本节主要介绍 StarRocks 中可用的加载选项的特点和业务场景。

Loading options overview

注意

在以下部分中,“批处理”或“批加载”指的是一次性地将大量数据从指定源加载到 StarRocks,而“流处理”或“流式加载”指的是实时连续地加载数据。

加载方式

INSERT

业务场景

  • INSERT INTO VALUES: 将少量数据追加到内部表。
  • INSERT INTO SELECT
    • INSERT INTO SELECT FROM <table_name>: 将对内部表或外部表的查询结果追加到表中。

    • INSERT INTO SELECT FROM FILES(): 将远程存储中数据文件的查询结果追加到表中。

      注意

      对于 AWS S3,此功能从 v3.1 开始支持。对于 HDFS、Microsoft Azure Storage、Google GCS 和 S3 兼容存储(如 MinIO),此功能从 v3.2 开始支持。

文件格式

  • INSERT INTO VALUES: SQL
  • INSERT INTO SELECT
    • INSERT INTO SELECT FROM <table_name>: StarRocks 表
    • INSERT INTO SELECT FROM FILES(): Parquet 和 ORC

数据量:不固定(数据量取决于内存大小。)

Stream Load

业务场景:从本地文件系统批量加载数据。

文件格式:CSV 和 JSON

数据量:10 GB 或更少

Broker Load

业务场景

  • 从 HDFS 或云存储(如 AWS S3、Microsoft Azure Storage、Google GCS 和 S3 兼容存储(如 MinIO))批量加载数据。
  • 从本地文件系统或 NAS 批量加载数据。

文件格式:CSV、Parquet、ORC 和 JSON(从 v3.2.3 开始支持)

数据量:几十 GB 到几百 GB

Pipe

业务场景:从 HDFS 或 AWS S3 批量加载或流式加载数据。

注意

此加载方式从 v3.2 开始支持。

文件格式:Parquet 和 ORC

数据量:100 GB 到 1 TB 或更多

Routine Load

业务场景:从 Kafka 流式加载数据。

文件格式:CSV、JSON 和 Avro(从 v3.0.1 开始支持)

数据量:MB 到 GB 的数据,以微批次形式加载

Spark Load

业务场景:使用 Spark 集群批量加载存储在 HDFS 中的 Apache Hive™ 表数据。

文件格式:CSV、Parquet(从 v2.0 开始支持)和 ORC(从 v2.0 开始支持)

数据量:几十 GB 到 TB 级别

生态系统工具

Kafka connector

业务场景:从 Kafka 流式加载数据。

Spark connector

业务场景:从 Spark 批量加载数据。

业务场景:从 Flink 流式加载数据。

SMT

业务场景:通过 Flink 从 MySQL、PostgreSQL、SQL Server、Oracle、Hive、ClickHouse 和 TiDB 等数据源加载数据。

DataX

业务场景:在各种异构数据源之间同步数据,包括关系型数据库(例如 MySQL 和 Oracle)、HDFS 和 Hive。

CloudCanal

业务场景:从源数据库(例如 MySQL、Oracle 和 PostgreSQL)迁移或同步数据到 StarRocks。

Kettle Connector

业务场景:与 Kettle 集成。通过将 Kettle 强大的数据处理和转换能力与 StarRocks 的高性能数据存储和分析能力相结合,可以实现更灵活高效的数据处理工作流。

API

Stream Load 事务接口

业务场景:对从 Flink 和 Kafka 等外部系统加载数据所执行的事务实现两阶段提交 (2PC),同时提高高并发流加载的性能。此功能从 v2.4 开始支持。

文件格式:CSV 和 JSON

数据量:10 GB 或更少

加载选项的选择

本节列出了常见数据源的加载选项,帮助您选择最适合您情况的选项。

对象存储

数据源可用加载选项
AWS S3
  • (批处理) INSERT INTO SELECT FROM FILES() (从 v3.1 开始支持)
  • (批处理) Broker Load
  • (批处理或流式) Pipe (从 v3.2 开始支持)
请参阅 从 AWS S3 加载数据
Microsoft Azure Storage
  • (批处理) INSERT INTO SELECT FROM FILES() (从 v3.2 开始支持)
  • (批处理) Broker Load
请参阅 从 Microsoft Azure Storage 加载数据
Google GCS
  • (批处理) INSERT INTO SELECT FROM FILES() (从 v3.2 开始支持)
  • (批处理) Broker Load
请参阅 从 GCS 加载数据
S3 兼容存储(如 MinIO)
  • (批处理) INSERT INTO SELECT FROM FILES() (从 v3.2 开始支持)
  • (批处理) Broker Load
请参阅 从 MinIO 加载数据

本地文件系统(包括 NAS)

数据源可用加载选项
本地文件系统(包括 NAS)
  • (批处理) Stream Load
  • (批处理) Broker Load
请参阅 从本地文件系统加载数据

HDFS

数据源可用加载选项
HDFS
  • (批处理) INSERT INTO SELECT FROM FILES() (从 v3.2 开始支持)
  • (批处理) Broker Load
  • (批处理或流式) Pipe (从 v3.2 开始支持)
请参阅 从 HDFS 加载数据
数据源可用加载选项
Apache Flink®
Apache Kafka® 注意
如果源数据需要进行多表 Join 和 ETL 操作,您可以使用 Flink 读取和预处理数据,然后使用 Flink connector 将数据加载到 StarRocks。
Apache Spark™

数据湖

数据源可用加载选项
Apache Hive™
Apache Iceberg(批处理) 创建一个 Iceberg catalog,然后使用 INSERT INTO SELECT FROM <table_name>
Apache Hudi(批处理) 创建一个 Hudi catalog,然后使用 INSERT INTO SELECT FROM <table_name>
Delta Lake(批处理) 创建一个 Delta Lake catalog,然后使用 INSERT INTO SELECT FROM <table_name>
Elasticsearch(批处理) 创建一个 Elasticsearch catalog,然后使用 INSERT INTO SELECT FROM <table_name>
Apache Paimon(批处理) 创建一个 Paimon catalog,然后使用 INSERT INTO SELECT FROM <table_name>

请注意,从 v3.2 开始,StarRocks 提供了 统一 Catalog,以帮助您将来自 Hive、Iceberg、Hudi 和 Delta Lake 数据源的表作为统一数据源进行处理,无需数据摄取。

内部表和外部数据库

数据源可用加载选项
StarRocks(批处理) 创建一个 StarRocks 外部表,然后使用 INSERT INTO VALUES 插入少量数据记录,或使用 INSERT INTO SELECT FROM <table_name> 插入表数据。
注意
StarRocks 外部表仅支持数据写入,不支持数据读取。
MySQL
其他数据库,如 Oracle、PostgreSQL、SQL Server、ClickHouse 和 TiDB
开心的水獭 RockyStarRocks 助手

AI 生成的答案基于文档和其他来源。请在非生产环境中测试答案。