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