メインコンテンツまでスキップ

エクスポート概要

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

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

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

エクスポート方法の選択

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

  • SELECT INTO OUTFILE:任意のSQL結果セットのエクスポートをサポートします。
  • EXPORT:部分的または完全なテーブルデータのエクスポートをサポートします。
  • MySQL DUMP:データエクスポートのためのMySQL dumpコマンドと互換性があります。

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

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

SELECT INTO OUTFILE

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

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

EXPORT

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

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

MySQL Dump

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

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

エクスポートファイル列タイプマッピング

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以前のバージョンなど)との互換性のためにのみ使用されます。