2016-12-15 2 views
0

ハイブ上でアシッドサポートを有効にした後。私はハイブテーブル(ORCファイルベースのテーブル)から行を挿入/更新/削除することができます、それは可能ですupsertを行うには?ユーザーがデータを提供するときに挿入または更新を指定していないため、アップステージをシミュレートするために各行の挿入前に削除する必要がある場合は、速度は非常に遅く、 5%未満である。われわれにとっては、待ち時間は重要ではありませんが、スループットは重要です。ハイブが現在upsertをサポートしていない場合、それをサポートする計画はありますか?ありがとうハイブアシッドオーブンテーブルでupsertを行うことができます

答えて

1

作業中:https://issues.apache.org/jira/browse/HIVE-10924 おそらくスループットはACIDモードで制限されます。

現在、フル・ジョインを使用してACIDモードではないupsertをシミュレートし、フル・パーティション/テーブルのリライトを実行できます。レイテンシはかなり大きく、スループットは事実上無制限です。ここをクリックしてください:https://stackoverflow.com/a/37744071/2700344

+0

スループットがACIDモードで制限される理由私の理解は、デルタファイルへのmircoバッチであり、定期的に圧縮を行います。私は医者がkafka/flumeストリーミングのためにそれを言及するのを見ます、あなたは少しのスループットについて明らかにすることができますか?ありがとう – Nan

+0

もちろん、この機能をより慎重にテストする必要があります。読み取り時に、リーダーはベースファイルとデルタファイルをマージし、読み取り時に更新を適用します。したがって、すべてのリーダーが追加の負荷を作成します。読者が多くなればなるほど、パフォーマンスが低下します。これは非ACIDモードでは発生しません。影響は更新の数によって異なります。 Hive ACIDは、並行性が50以下の同時ユーザーの場合に使用する必要があります。こちらをご覧ください:http://hortonworks.com/blog/apache-hive-acid-transactions-hdp-2-2/ ACIDは高スループットのために設計されていますが、読者は利用可能なすべてのリソースを消費する可能性があります。 – leftjoin

関連する問題