web-dev-qa-db-fra.com

Créer une table temporaire dans Hive?

Hive prend-il en charge les tables temporaires? Je ne le trouve pas dans les documents Apache.

22
CMaury

À partir de Hive 0.14.0 Merci à @hwrdprkns pour ses commentaires. Depuis Hive 0.14.0, les tables temporaires sont prises en charge https://cwiki.Apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-TemporaryTables
Lien vers le JIRA: https://issues.Apache.org/jira/browse/Hive-709

La syntaxe est CREATE TEMPORARY TABLE TABLE_NAME_HERE (key string, value string)

Pré-ruche 0.14.0
Je ne pense pas que Hive ait des tables temporaires comme quelque chose comme SQL Server. Vous pouvez faire quelque chose comme des tables temporaires avec Hive.

Si vous créez une table avec le schéma dont votre table temporaire a besoin, puis effectuez une requête en remplissant la table avant d'exécuter la requête ayant besoin des données, elle agira comme une table temporaire.

Les étapes seraient les suivantes:

  1. Créer une table
  2. Tableau de remplissage: INSERT OVERWRITE TABLE temptbl <select_query>
  3. Exécuter la requête

Lorsque vous exécutez votre requête, vous pouvez utiliser temptbl comme n'importe quelle autre table. Le INSERT OVERWRITE écrasera toutes les données de la table afin qu'elle ne soit remplie que de données pour cette exécution. Les données persistent, donc si vous réutilisez la table sans la remplir à nouveau, vous utiliserez les données de la dernière exécution.

Cela peut certainement poser des problèmes si la même table sera nécessaire en même temps mais pour des données différentes ...

D'après ce que j'ai pu trouver, c'est la seule solution à une table "temporaire" dans Hive en ce moment.

24
QuinnG