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

エクスポート概要

データエクスポート機能は、クエリ結果セットや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をサポートはいいいえいいえ
特定のパーティションをエクスポートはいはいいいえ
特定のtabletをエクスポートはいいいえいいえ
並行エクスポート高い並行性でサポート(SQLステートメントに単一ノードで処理が必要なORDER BYなどの演算子があるかどうかに依存)高い並行性でサポート(tabletレベルの並行エクスポートをサポート)サポートなし、シングルスレッドエクスポートのみ
サポートされるエクスポートデータ形式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 タイプOrc タイプ
    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 タイプArrow タイプParquet Physical タイプParquet Logical タイプ
    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以前のバージョンなど)との互換性のためにのみ使用されます。