2016-04-12 5 views
1

Je suis nouveau sur Impala, et j'essaie de comprendre comment supprimer des enregistrements d'une table ... J'ai essayé de rechercher des commandes de suppression, mais je n'ai pas trouvé d'instructions compréhensibles ...DELETE FROM nom_table Cloudera Impala

Ceci est ma structure de la table:

create table Installs (BrandID INT, PublisherID INT, InstallDate STRING, HourNum INT, Country STRING, Installs INT) PARTITIONED BY (day INT, month INT, year INT) STORED AS PARQUET 

est-suppression possible dans Hadoop? Comment fonctionne la syntaxe? Toute aide serait d'une grande aide pour moi ... Merci :)

Répondre

2

se réfèrent du livre - learning-cloudera-impala

Impala ne supporte pas les laisser tomber ou de la suppression d'une ligne dans une table. L'alternative consiste à supprimer la table ou à migrer les données requises vers d'autres tables, puis à supprimer la totalité de la table d'origine. Pour simuler les effets d'une instruction UPDATE ou DELETE dans d'autres systèmes de base de données, vous utilisez généralement INSERT ou CREATE TABLE AS SELECT pour copier des données d'une table vers une autre, filtrant ou modifiant les lignes appropriées pendant l'opération de copie.

work around

+0

Merci, mais je ne travaille pas avec Hive, je travaille avec Cloudera Impala ... – Bramat

+0

@Bramat La réponse de Kishore est spécifiquement sur Impala, et est correcte. C'est un comportement inattendu et mal documenté, et a troublé notre équipe lorsque nous avons commencé à utiliser Impala. –

1

Réponse courte: Non, la suppression est pas pris en charge dans l'Impala. La solution de contournement consiste à réécrire les données de table avec les données que vous souhaitez supprimer pas là. Cloudera Impala, bien qu'il prenne en charge SQL et puisse être utilisé pour les charges de travail d'entrepôt de données, ne ressemble pas à un SGBDR traditionnel. Comme Hive, il stocke ses fichiers dans HDFS (et est interopérable avec Hive de plusieurs façons), et en tant que tel, est conçu pour stocker de très gros fichiers dans des blocs.

Ainsi, tout comme HDFS, il n'est pas conçu pour supprimer efficacement les données.