Internal and external Impala tables
When creating a new Kudu table using Impala, you can create the table as an internal table or an external table.
- An internal table (created by
CREATE TABLE) is managed by Impala, and can be dropped by Impala. When you create a new table using Impala, it is generally a internal table. When such a table is created in Impala, the corresponding Kudu table will be named
impala::database_name.table_name. The prefix is always
impala::, and the database name and table name follow, separated by a dot.
- An external table (created by
CREATE EXTERNAL TABLE) is not managed by Impala, and dropping such a table does not drop the table from its source location (here, Kudu). Instead, it only removes the mapping between Impala and Kudu. This is the mode used in the syntax provided by Kudu for mapping an existing table to Impala.