メインコンテンツまでスキップ
バージョン: Latest-3.4

ロードオプション

データロードは、ビジネス要件に基づいてさまざまなデータソースから生のデータをクレンジングおよび変換し、結果のデータを 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 で利用可能なロードオプションの特性とビジネスシナリオについて主に説明します。

ロードオプションの概要

注記

以下のセクションでは、「バッチ」または「バッチロード」は、指定されたソースから一度に大量のデータを 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 などの外部システムからデータをロードするトランザクションに対して、2 フェーズコミット (2PC) を実装し、高度に並行したストリームロードのパフォーマンスを向上させます。この機能は v2.4 以降でサポートされています。

ファイル形式: CSV および JSON

データ量: 10 GB 以下

ロードオプションの選択

このセクションでは、一般的なデータソースに利用可能なロードオプションを一覧にし、あなたの状況に最適なオプションを選択するのに役立てます。

オブジェクトストレージ

データソース利用可能なロードオプション
AWS S3
  • (バッチ) INSERT INTO SELECT FROM FILES() (v3.1 以降でサポート)
  • (バッチ) Broker Load
  • (バッチまたはストリーミング) Pipe (v3.2 以降でサポート)
詳細は Load data from AWS S3 を参照してください。
Microsoft Azure Storage
  • (バッチ) INSERT INTO SELECT FROM FILES() (v3.2 以降でサポート)
  • (バッチ) Broker Load
詳細は Load data from Microsoft Azure Storage を参照してください。
Google GCS
  • (バッチ) INSERT INTO SELECT FROM FILES() (v3.2 以降でサポート)
  • (バッチ) Broker Load
詳細は Load data from GCS を参照してください。
S3 互換ストレージ (MinIO など)
  • (バッチ) INSERT INTO SELECT FROM FILES() (v3.2 以降でサポート)
  • (バッチ) Broker Load
詳細は Load data from MinIO を参照してください。

ローカルファイルシステム (NAS を含む)

データソース利用可能なロードオプション
ローカルファイルシステム (NAS を含む)
  • (バッチ) Stream Load
  • (バッチ) Broker Load
詳細は Load data from a local file system を参照してください。

HDFS

データソース利用可能なロードオプション
HDFS
  • (バッチ) INSERT INTO SELECT FROM FILES() (v3.2 以降でサポート)
  • (バッチ) Broker Load
  • (バッチまたはストリーミング) Pipe (v3.2 以降でサポート)
詳細は Load data from HDFS を参照してください。

Flink、Kafka、および Spark

データソース利用可能なロードオプション
Apache Flink®
Apache Kafka® NOTE
ソースデータがマルチテーブルジョインや 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> を使用します。

StarRocks は、v3.2 以降で unified catalogs を提供しており、Hive、Iceberg、Hudi、Delta Lake のデータソースからのテーブルを統合データソースとして取り扱うことができ、インジェストを必要としません。

内部および外部データベース

データソース利用可能なロードオプション
StarRocks(バッチ) StarRocks external table を作成し、その後 INSERT INTO VALUES を使用していくつかのデータレコードを挿入するか、INSERT INTO SELECT FROM <table_name> を使用してテーブルのデータを挿入します。
NOTE
StarRocks external tables はデータの書き込みのみをサポートしており、データの読み取りはサポートしていません。
MySQL
その他のデータベース (Oracle、PostgreSQL、SQL Server、ClickHouse、TiDB など)