メインコンテンツまでスキップ
バージョン: 4.x

Export概要

データエクスポート機能は、クエリ結果セットまたはDorisTableデータを、指定されたファイル形式で指定されたストレージシステムに書き込むために使用されます。

エクスポート機能とデータバックアップ機能の違いは以下の通りです:

データエクスポートデータバックアップ
最終保存場所HDFS、オブジェクトストレージ、ローカルファイルシステムHDFS、オブジェクトストレージ
データ形式Parquet、ORC、CSVなどのオープンファイル形式Doris内部ストレージ形式
実行速度中程度(データの読み取りとターゲットデータ形式への変換が必要)高速(解析と変換が不要、Dorisデータファイルを直接アップロード)
柔軟性SQL文を通じてエクスポートするデータを柔軟に定義可能Tableレベルの完全バックアップのみサポート
使用例結果セットのダウンロード、異なるシステム間でのデータ交換データバックアップ、Dorisクラスタ間でのデータ移行

エクスポート方法の選択

Dorisでは3つの異なるデータエクスポート方法を提供しています:

  • SELECT INTO OUTFILE: 任意のSQL結果セットのエクスポートをサポート。
  • EXPORT: 部分的または完全なTableデータのエクスポートをサポート。
  • MySQL DUMP: データエクスポート用のMySQL dumpコマンドと互換。

3つのエクスポート方法の共通点と相違点は以下の通りです:

SELECT INTO OUTFILEEXPORTMySQL DUMP
同期/非同期同期非同期(EXPORTタスクを送信し、SHOW EXPORTコマンドでタスクの進行状況を確認)同期
任意のSQLをサポートはいいいえいいえ
特定のパーティションのエクスポートはいはいいいえ
特定のタブレットのエクスポートはいいいえいいえ
並行エクスポート高い並行性でサポート(SQL文に単一ノードで処理する必要があるORDER BYなどの演算子があるかどうかに依存)高い並行性でサポート(タブレットレベルの並行エクスポートをサポート)サポートなし、シングルスレッドエクスポートのみ
サポートするエクスポートデータ形式Parquet、ORC、CSVParquet、ORC、CSVMySQL Dump固有形式
外部Tableのエクスポートをサポートはい部分的にサポートいいえ
ビューのエクスポートをサポートはいはいはい
サポートするエクスポート場所S3、HDFSS3、HDFSLOCAL

SELECT INTO OUTFILE

以下のシナリオに適しています:

  • フィルタリング、集計、結合などの複雑な計算後にデータをエクスポートする必要がある場合。
  • 同期タスクが必要なシナリオに適している。

EXPORT

以下のシナリオに適しています:

  • 大規模な単一Tableのエクスポートで、シンプルなフィルタリング条件。
  • 非同期タスク送信が必要なシナリオ。

MySQL Dump

以下のシナリオに適しています:

  • MySQLエコシステムとの互換性が必要で、Table構造とデータの両方をエクスポートする必要がある場合。
  • 開発テストのみ、または非常に小さなデータ量のシナリオ。

エクスポートファイルのカラム型マッピング

ParquetとORCファイル形式には独自のデータ型があります。Dorisのエクスポート機能は、Dorisのデータ型をParquetとORCファイル形式の対応するデータ型に自動的にマッピングできます。CSV形式には型がなく、すべてのデータはテキストとして出力されます。

以下の表は、Dorisデータ型とParquet、ORCファイル形式データ型間のマッピングを示しています:

  • ORC

    Doris TypeOrc Type
    booleanboolean
    tinyinttinyint
    smallintsmallint
    intint
    bigintbigint
    largeIntstring
    datestring
    datev2string
    datetimestring
    datetimev2timestamp
    floatfloat
    doubledouble
    char / varchar / stringstring
    decimaldecimal
    structstruct
    mapmap
    arrayarray
    jsonstring
    variantstring
    bitmapbinary
    quantile_statebinary
    hllbinary
  • Parquet

    DorisがParquetファイル形式にエクスポートされる場合、Dorisメモリデータは最初にArrowメモリデータ形式に変換され、その後ArrowによってParquetファイル形式に書き出されます。

    Doris TypeArrow TypeParquet Physical TypeParquet Logical Type
    booleanbooleanBOOLEAN
    tinyintint8INT32INT_8
    smallintint16INT32INT_16
    intint32INT32INT_32
    bigintint64INT64INT_64
    largeIntutf8BYTE_ARRAYUTF8
    dateutf8BYTE_ARRAYUTF8
    datev2date32INT32DATE
    datetimeutf8BYTE_ARRAYUTF8
    datetimev2timestampINT96/INT64TIMESTAMP(MICROS/MILLIS/SECONDS)
    floatfloat32FLOAT
    doublefloat64DOUBLE
    char / varchar / stringutf8BYTE_ARRAYUTF8
    decimaldecimal128FIXED_LEN_BYTE_ARRAYDECIMAL(scale, precision)
    structstructParquet Group
    mapmapParquet Map
    arraylistParquet List
    jsonutf8BYTE_ARRAYUTF8
    variantutf8BYTE_ARRAYUTF8
    bitmapbinaryBYTE_ARRAY
    quantile_statebinaryBYTE_ARRAY
    hllbinaryBYTE_ARRAY

    注意:バージョン2.1.11および3.0.7では、parquet.enable_int96_timestampsプロパティを指定して、Dorisのdatetimev2型がParquetのINT96ストレージまたはINT64を使用するかを決定できます。デフォルトではINT96が使用されます。ただし、INT96はParquet標準では廃止予定であり、一部の古いシステム(Hive 4.0以前のバージョンなど)との互換性のためにのみ使用されます。