読み込み概要
Apache Dorisは、データのインポートと統合のための様々な方法を提供しており、様々なソースからデータベースにデータをインポートすることができます。これらの方法は4つのタイプに分類できます:
-
リアルタイム書き込み: HTTPやJDBCを介してDorisTableにリアルタイムでデータが書き込まれ、即座に分析やクエリが必要なシナリオに適しています。
-
少量のデータ(5分に1回)の場合、JDBC INSERTを使用できます。
-
より高い同時実行数や頻度(20以上の同時書き込みや1分間に複数回の書き込み)の場合、Group Commitを有効にしてJDBC INSERTまたはStream Loadを使用できます。
-
高スループットの場合、HTTP経由でStream Loadを使用できます。
-
-
ストリーミング同期: リアルタイムデータストリーム(例:Flink、Kafka、トランザクションデータベース)がDorisTableにインポートされ、リアルタイム分析やクエリに最適です。
-
Flink Doris Connectorを使用してFlinkのリアルタイムデータストリームをDorisに書き込むことができます。
-
KafkaのリアルタイムデータストリームにはRoutine LoadまたはDoris Kafka Connectorを使用できます。Routine LoadはKafkaからDorisにデータをプルし、CSVとJSON形式をサポートします。一方、Kafka ConnectorはDorisにデータを書き込み、Avro、JSON、CSV、Protobuf形式をサポートします。
-
Flink CDCやDataxを使用してトランザクションデータベースのCDCデータストリームをDorisに書き込むことができます。
-
-
バッチインポート: 外部ストレージシステム(例:Object Storage、HDFS、ローカルファイル、NAS)からDorisTableにデータがバッチロードされ、リアルタイムでないデータインポートのニーズに適しています。
-
Broker Loadを使用してObject StorageやHDFSからのファイルをDorisに書き込むことができます。
-
INSERT INTO SELECTを使用してObject Storage、HDFS、NASからのファイルを同期的にDorisにロードでき、JOBを使用して非同期で操作を実行できます。
-
Stream LoadまたはDoris StreamloaderでローカルファイルをDorisに書き込むことができます。
-
-
外部データソース統合: 外部ソース(例:Hive、JDBC、Iceberg)からデータをクエリし、一部をDorisTableにインポートします。
- カタログを作成して外部ソースからデータを読み取り、INSERT INTO SELECTを使用してこのデータをDorisに同期し、JOBによる非同期実行が可能です。
Dorisの各インポート方法は、デフォルトで暗黙的なトランザクションです。トランザクションに関する詳細については、Transactionsを参照してください。
インポート方法のクイックオーバービュー
Dorisのインポートプロセスは主にデータソース、データ形式、インポート方法、エラーハンドリング、データ変換、トランザクションなどの様々な側面を含みます。以下の表で、各インポート方法に適したシナリオとサポートされるファイル形式を素早く確認できます。
| インポート方法 | 使用ケース | サポートするファイル形式 | インポートモード |
|---|---|---|---|
| Stream Load | ローカルファイルのインポートまたはHTTP経由でのアプリケーションでのデータプッシュ | csv, json, parquet, orc | 同期 |
| Broker Load | オブジェクトストレージ、HDFSなどからのインポート | csv, json, parquet, orc | 非同期 |
| INSERT INTO VALUES | JDBC経由でのデータ書き込み | SQL | 同期 |
| INSERT INTO SELECT | カタログ内のTableやObject Storage、HDFS内のファイルなどの外部ソースからのインポート | SQL | 同期、Job経由の非同期 |
| Routine Load | Kafkaからのリアルタイムインポート | csv, json | 非同期 |
| MySQL Load | ローカルファイルからのインポート | csv | 同期 |
| Group Commit | 高頻度での書き込み | 使用するインポート方法に依存 | - |