web-dev-qa-db-ja.com

Hiveに一時テーブルを作成しますか?

Hiveは一時テーブルをサポートしていますか? Apacheのドキュメントでは見つかりません。

22
CMaury

Hive 0.14.0以降コメントしてくれた@hwrdprknsに感謝します。 Hive 0.14.0以降、一時テーブルのサポートがあります https://cwiki.Apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-TemporaryTables
JIRAへのリンク: https://issues.Apache.org/jira/browse/Hive-709

構文はCREATE TEMPORARY TABLE TABLE_NAME_HERE (key string, value string)です

Pre Hive 0.14.0
HiveにSQL Serverのように一時テーブルがあるとは思いません。ただし、Hiveを使用して一時テーブルなどを実行できます。

一時テーブルに必要なスキーマを使用してテーブルを作成し、データを必要とするクエリを実行する前にテーブルにデータを入力するクエリを実行すると、一時テーブルのように機能します。

手順は次のとおりです。

  1. テーブルを作成
  2. テーブルに入力:INSERT OVERWRITE TABLE temptbl <select_query>
  3. クエリを実行

クエリを実行すると、他のテーブルと同じようにtemptblを使用できます。 INSERT OVERWRITEはテーブル内のすべてのデータを上書きするため、その実行のデータのみが入力されます。データは存続するため、テーブルにデータを再入力せずに再利用すると、最後に実行されたもののデータが使用されます。

同じテーブルが同時に必要になるが、異なるデータの場合、これは間違いなく問題に遭遇する可能性があります...

私が見つけたものから、これは現在Hiveの「一時」テーブルに対する唯一の解決策です。

24
QuinnG