2016-08-08 9 views
1

現在、insert overwrite table T1 select * from T2;はクラスタで約100分かかります。 Table T1 is ORCがフォーマットされ、T2 is textがフォーマットされる。私はT2から60 GBのテキストデータを読み込み、ORCテーブルT1(挿入後10 GB)に挿入しています。両方の表にテキスト形式を使用すると、挿入には約50分かかります。どちらの場合も、書き込み速度を向上させるために私たちができることは何ですか(大きなテーブルが入っています)か他の提案ですか?ORCファイルのハイブで書き込み速度を向上

答えて

1

これは、テキストからテキストにデータを書き込むときと同じように通常の動作になります。データを1つのファイルから別のファイルに1行ずつ書き込むだけです。 Text-to-ORCはそれ以外にもいくつかの作業を行います。 text-to-text操作と比較して、text-to-orcのインポートは、バケット区画操作と圧縮操作を追加してデータを処理します。それはあなたの時間の影響の再現です。しばらく、通常、INSERT操作は、単一の時間操作でデータ

で動作するようにアクセス時間を向上させるため、圧縮

  • にスペースの節約

    • :ORCの形式は、テキスト形式の際に二つの主な利点を提供しますアクセス操作は非常に頻繁に行われます。したがって、通常、データのインポート時に最初にもう少し時間を費やしてから、データの最適化された保存のためにスペースを節約するという大きな利点があります。

  • +0

    ありがとうアレックス..しかし、このデータへのアクセス時間は、 です私はどのように処理時間を厳守し、サイズ250GB(テキストデータ)のデータを持っているbecozの上書きを高速化する方法を探している...だから私たちは既存のプロセスを最適化したい(既存のプロセスは、増分データを削除し、重複データを削除します。たとえば、「増分テーブルt2からt1 select *に挿入」を選択し、ランククエリを使用して重複を除外し、T1に上書きを挿入します)。だから、どのようなパラメータやアプローチを活用することができますか? –

    +0

    @Despicableme私がオーバーラウンドの考えを完全に持っているかどうかは確かではありませんが、おそらく4段階のストラテジーを適用することができます。私たちは、このアプローチを使用して、重複データの再喚起を伴う増分データ更新に使用しました。すべてのレコードを持つ基本ORCテーブルが必要ですが、データ量を減らして増分更新を最適化することができます。 http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/ – Alex

    +0

    を参照してください。Okay ..ありがとう...簡単に言えば、パラメタや何らかのアプローチ(いくつかの並列性のような)がありますか? (クエリの最適化ではなく、単純なデータの書き込み速度)... .... –

    関連する問題