| <!DOCTYPE html |
| SYSTEM "about:legacy-compat"> |
| <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2025"><meta name="DC.rights.owner" content="(C) Copyright 2025"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_langref_sql.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 3.4.x"><meta name="version" content="Impala 3.4.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="truncate_table"><link rel="stylesheet" type="text/css" href="../css/commonltr.css"><link rel="stylesheet" type="text/css" href="../css/dita-ot-doc.css"><title>TRUNCATE TABLE Statement (Impala 2.3 or higher only)</title></head><body id="truncate_table"><header role="banner"><!-- |
| The DITA Open Toolkit is licensed for use under the the Apache |
| Software Foundation License v2.0. |
| |
| A copy of the Apache Software Foundation License 2.0 is |
| available at http://opensource.org/licenses/apache2.0.php |
| |
| This statement must be included in any copies of DITA Open |
| Toolkit code. |
| --><div class="header"> |
| <p>Apache Impala</p> |
| <hr> |
| </div></header><nav role="toc"><ul><li><a href="../topics/impala_intro.html">Introducing Apache Impala</a></li><li><a href="../topics/impala_concepts.html">Concepts and Architecture</a></li><li><a href="../topics/impala_planning.html">Deployment Planning</a></li><li><a href="../topics/impala_install.html">Installing Impala</a></li><li><a href="../topics/impala_config.html">Managing Impala</a></li><li><a href="../topics/impala_upgrading.html">Upgrading Impala</a></li><li><a href="../topics/impala_processes.html">Starting Impala</a></li><li><a href="../topics/impala_tutorial.html">Tutorials</a></li><li><a href="../topics/impala_admin.html">Administration</a></li><li><a href="../topics/impala_security.html">Impala Security</a></li><li><a href="../topics/impala_langref.html">SQL Reference</a><ul><li><a href="../topics/impala_comments.html">Comments</a></li><li><a href="../topics/impala_datatypes.html">Data Types</a></li><li><a href="../topics/impala_literals.html">Literals</a></li><li><a href="../topics/impala_operators.html">SQL Operators</a></li><li><a href="../topics/impala_schema_objects.html">Schema Objects and Object Names</a></li><li><a href="../topics/impala_transactions.html">Transactions</a></li><li><a href="../topics/impala_langref_sql.html">SQL Statements</a><ul><li><a href="../topics/impala_ddl.html">DDL Statements</a></li><li><a href="../topics/impala_dml.html">DML Statements</a></li><li><a href="../topics/impala_copy_testcase.html">Copy Testcase Statements</a></li><li><a href="../topics/impala_alter_database.html">ALTER DATABASE</a></li><li><a href="../topics/impala_alter_table.html">ALTER TABLE</a></li><li><a href="../topics/impala_alter_view.html">ALTER VIEW</a></li><li><a href="../topics/impala_comment.html">COMMENT</a></li><li><a href="../topics/impala_compute_stats.html">COMPUTE STATS</a></li><li><a href="../topics/impala_create_database.html">CREATE DATABASE</a></li><li><a href="../topics/impala_create_function.html">CREATE FUNCTION</a></li><li><a href="../topics/impala_create_role.html">CREATE ROLE</a></li><li><a href="../topics/impala_create_table.html">CREATE TABLE</a></li><li><a href="../topics/impala_create_view.html">CREATE VIEW</a></li><li><a href="../topics/impala_delete.html">DELETE</a></li><li><a href="../topics/impala_describe.html">DESCRIBE</a></li><li><a href="../topics/impala_drop_database.html">DROP DATABASE</a></li><li><a href="../topics/impala_drop_function.html">DROP FUNCTION</a></li><li><a href="../topics/impala_drop_role.html">DROP ROLE</a></li><li><a href="../topics/impala_drop_stats.html">DROP STATS</a></li><li><a href="../topics/impala_drop_table.html">DROP TABLE</a></li><li><a href="../topics/impala_drop_view.html">DROP VIEW</a></li><li><a href="../topics/impala_explain.html">EXPLAIN</a></li><li><a href="../topics/impala_grant.html">GRANT</a></li><li><a href="../topics/impala_insert.html">INSERT</a></li><li><a href="../topics/impala_invalidate_metadata.html">INVALIDATE METADATA</a></li><li><a href="../topics/impala_load_data.html">LOAD DATA</a></li><li><a href="../topics/impala_merge.html">MERGE</a></li><li><a href="../topics/impala_refresh.html">REFRESH</a></li><li><a href="../topics/impala_refresh_authorization.html">REFRESH AUTHORIZATION</a></li><li><a href="../topics/impala_refresh_functions.html">REFRESH FUNCTIONS</a></li><li><a href="../topics/impala_revoke.html">REVOKE</a></li><li><a href="../topics/impala_select.html">SELECT</a></li><li><a href="../topics/impala_set.html">SET</a></li><li><a href="../topics/impala_show.html">SHOW</a></li><li><a href="../topics/impala_shutdown.html">SHUTDOWN</a></li><li class="active"><a href="../topics/impala_truncate_table.html">TRUNCATE TABLE</a></li><li><a href="../topics/impala_update.html">UPDATE</a></li><li><a href="../topics/impala_upsert.html">UPSERT</a></li><li><a href="../topics/impala_use.html">USE</a></li><li><a href="../topics/impala_values.html">VALUES</a></li><li><a href="../topics/impala_hints.html">Optimizer Hints</a></li></ul></li><li><a href="../topics/impala_functions.html">Built-In Functions</a></li><li><a href="../topics/impala_udf.html">User-Defined Functions (UDFs)</a></li><li><a href="../topics/impala_langref_unsupported.html">SQL Differences Between Impala and Hive</a></li><li><a href="../topics/impala_porting.html">Porting SQL</a></li><li><a href="../topics/impala_utf_8.html">UTF-8 Support</a></li></ul></li><li><a href="../topics/impala_performance.html">Performance Tuning</a></li><li><a href="../topics/impala_scalability.html">Scalability Considerations</a></li><li><a href="../topics/impala_resource_management.html">Resource Management</a></li><li><a href="../topics/impala_partitioning.html">Partitioning</a></li><li><a href="../topics/impala_file_formats.html">File Formats</a></li><li><a href="../topics/impala_jdbc_external_table.html">Using Impala to Query External JDBC Data Sources</a></li><li><a href="../topics/impala_kudu.html">Using Impala to Query Kudu Tables</a></li><li><a href="../topics/impala_hbase.html">HBase Tables</a></li><li><a href="../topics/impala_iceberg.html">Iceberg Tables</a></li><li><a href="../topics/impala_s3.html">S3 Tables</a></li><li><a href="../topics/impala_adls.html">ADLS Tables</a></li><li><a href="../topics/impala_isilon.html">Isilon Storage</a></li><li><a href="../topics/impala_ozone.html">Ozone Storage</a></li><li><a href="../topics/impala_logging.html">Logging</a></li><li><a href="../topics/impala_client.html">Client Access</a></li><li><a href="../topics/impala_fault_tolerance.html">Fault Tolerance</a></li><li><a href="../topics/impala_troubleshooting.html">Troubleshooting Impala</a></li><li><a href="../topics/impala_ports.html">Ports Used by Impala</a></li><li><a href="../topics/impala_reserved_words.html">Impala Reserved Words</a></li><li><a href="../topics/impala_faq.html">Impala Frequently Asked Questions</a></li><li><a href="../topics/impala_release_notes.html">Impala Release Notes</a></li></ul></nav><main role="main"><article role="article" aria-labelledby="ariaid-title1"> |
| |
| <h1 class="title topictitle1" id="ariaid-title1">TRUNCATE TABLE Statement (<span class="keyword">Impala 2.3</span> or higher only)</h1> |
| |
| |
| |
| <div class="body conbody"> |
| <p class="p"> |
| Removes |
| the data from an Impala table while leaving the table itself. </p> |
| <p class="p"> |
| <strong class="ph b">Syntax:</strong> |
| </p> |
| <pre class="pre codeblock"><code>TRUNCATE [TABLE] <span class="ph">[IF EXISTS]</span> [<var class="keyword varname">db_name</var>.]<var class="keyword varname">table_name</var></code></pre> |
| <p class="p"> |
| <strong class="ph b">Statement type:</strong> DDL |
| </p> |
| <p class="p"> |
| <strong class="ph b">Usage notes:</strong> |
| </p> |
| <p class="p"> Often used to empty tables that are used during ETL cycles, after the |
| data has been copied to another table for the next stage of processing. |
| This statement is a low-overhead alternative to dropping and recreating |
| the table, or using <code class="ph codeph">INSERT OVERWRITE</code> to replace the data |
| during the next ETL cycle. </p> |
| <p class="p"> This statement removes all the data and associated data files in the |
| table. It can remove data files from internal tables, external tables, |
| partitioned tables, and tables mapped to HBase or the Amazon Simple |
| Storage Service (S3). The data removal applies to the entire table, |
| including all partitions of a partitioned table. </p> |
| <p class="p"> Any statistics produced by the <code class="ph codeph">COMPUTE STATS</code> statement |
| are reset when the data is removed. </p> |
| <p class="p"> Make sure that you are in the correct database before truncating a |
| table, either by issuing a <code class="ph codeph">USE</code> statement first or by |
| using a fully qualified name |
| <code class="ph codeph"><var class="keyword varname">db_name</var>.<var class="keyword varname">table_name</var></code>. </p> |
| <p class="p">The optional <code class="ph codeph">TABLE</code> keyword does not affect the behavior |
| of the statement.</p> |
| <p class="p"> The optional <code class="ph codeph">IF EXISTS</code> clause |
| makes the statement succeed whether or not the table exists. If the table |
| does exist, it is truncated; if it does not exist, the statement has no |
| effect. This capability is useful in standardized setup scripts that are |
| might be run both before and after some of the tables exist. This clause |
| is available in <span class="keyword">Impala 2.5</span> and higher. </p> |
| <p class="p"> |
| For other tips about managing and reclaiming Impala disk space, see |
| <a class="xref" href="../shared/../topics/impala_disk_space.html#disk_space">Managing Disk Space for Impala Data</a>. |
| </p> |
| <p class="p"> |
| <strong class="ph b">Amazon S3 considerations:</strong> |
| </p> |
| <p class="p"> Although Impala cannot write new data to a table stored in |
| the Amazon S3 filesystem, the <code class="ph codeph">TRUNCATE TABLE</code> statement |
| can remove data files from S3. See <a class="xref" href="impala_s3.html#s3">Using Impala with Amazon S3 Object Store</a> for |
| details about working with S3 tables. </p> |
| <p class="p"> |
| <strong class="ph b">Cancellation:</strong> Cannot be cancelled. |
| </p> |
| <p class="p"> |
| <strong class="ph b">HDFS permissions:</strong> |
| </p> |
| <p class="p"> The user ID that the <span class="keyword cmdname">impalad</span> daemon runs |
| under, typically the <code class="ph codeph">impala</code> user, must have write |
| permission for all the files and directories that make up the table. </p> |
| <p class="p"> |
| <strong class="ph b">Kudu considerations:</strong> |
| </p> |
| <p class="p"> |
| Currently, the <code class="ph codeph">TRUNCATE TABLE</code> statement cannot be used with Kudu |
| tables. |
| </p> |
| <p class="p"> |
| <strong class="ph b">Examples:</strong> |
| </p> |
| <p class="p"> The following example shows a table containing some data and with table |
| and column statistics. After the <code class="ph codeph">TRUNCATE TABLE</code> |
| statement, the data is removed and the statistics are reset. </p> |
| <pre class="pre codeblock"><code>CREATE TABLE truncate_demo (x INT); |
| INSERT INTO truncate_demo VALUES (1), (2), (4), (8); |
| SELECT COUNT(*) FROM truncate_demo; |
| +----------+ |
| | count(*) | |
| +----------+ |
| | 4 | |
| +----------+ |
| COMPUTE STATS truncate_demo; |
| +-----------------------------------------+ |
| | summary | |
| +-----------------------------------------+ |
| | Updated 1 partition(s) and 1 column(s). | |
| +-----------------------------------------+ |
| SHOW TABLE STATS truncate_demo; |
| +-------+--------+------+--------------+-------------------+--------+-------------------+ |
| | #Rows | #Files | Size | Bytes Cached | Cache Replication | Format | Incremental stats | |
| +-------+--------+------+--------------+-------------------+--------+-------------------+ |
| | 4 | 1 | 8B | NOT CACHED | NOT CACHED | TEXT | false | |
| +-------+--------+------+--------------+-------------------+--------+-------------------+ |
| SHOW COLUMN STATS truncate_demo; |
| +--------+------+------------------+--------+----------+----------+ |
| | Column | Type | #Distinct Values | #Nulls | Max Size | Avg Size | |
| +--------+------+------------------+--------+----------+----------+ |
| | x | INT | 4 | -1 | 4 | 4 | |
| +--------+------+------------------+--------+----------+----------+ |
| |
| -- After this statement, the data and the table/column stats will be gone. |
| TRUNCATE TABLE truncate_demo; |
| |
| SELECT COUNT(*) FROM truncate_demo; |
| +----------+ |
| | count(*) | |
| +----------+ |
| | 0 | |
| +----------+ |
| SHOW TABLE STATS truncate_demo; |
| +-------+--------+------+--------------+-------------------+--------+-------------------+ |
| | #Rows | #Files | Size | Bytes Cached | Cache Replication | Format | Incremental stats | |
| +-------+--------+------+--------------+-------------------+--------+-------------------+ |
| | -1 | 0 | 0B | NOT CACHED | NOT CACHED | TEXT | false | |
| +-------+--------+------+--------------+-------------------+--------+-------------------+ |
| SHOW COLUMN STATS truncate_demo; |
| +--------+------+------------------+--------+----------+----------+ |
| | Column | Type | #Distinct Values | #Nulls | Max Size | Avg Size | |
| +--------+------+------------------+--------+----------+----------+ |
| | x | INT | -1 | -1 | 4 | 4 | |
| +--------+------+------------------+--------+----------+----------+ |
| </code></pre> |
| <p class="p"> The following example shows how the <code class="ph codeph">IF EXISTS</code> clause |
| allows the <code class="ph codeph">TRUNCATE TABLE</code> statement to be run without |
| error whether or not the table exists: </p> |
| <pre class="pre codeblock"><code>CREATE TABLE staging_table1 (x INT, s STRING); |
| Fetched 0 row(s) in 0.33s |
| |
| SHOW TABLES LIKE 'staging*'; |
| +----------------+ |
| | name | |
| +----------------+ |
| | staging_table1 | |
| +----------------+ |
| Fetched 1 row(s) in 0.25s |
| |
| -- Our ETL process involves removing all data from several staging tables |
| -- even though some might be already dropped, or not created yet. |
| |
| TRUNCATE TABLE IF EXISTS staging_table1; |
| Fetched 0 row(s) in 5.04s |
| |
| TRUNCATE TABLE IF EXISTS staging_table2; |
| Fetched 0 row(s) in 0.25s |
| |
| TRUNCATE TABLE IF EXISTS staging_table3; |
| Fetched 0 row(s) in 0.25s |
| </code></pre> |
| <p class="p"> |
| <strong class="ph b">Related information:</strong> |
| </p> |
| <p class="p"> |
| <a class="xref" href="impala_tables.html#tables">Overview of Impala Tables</a>, <a class="xref" href="impala_alter_table.html#alter_table">ALTER TABLE Statement</a>, <a class="xref" href="impala_create_table.html#create_table">CREATE TABLE Statement</a>, <a class="xref" href="impala_partitioning.html#partitioning">Partitioning for Impala Tables</a>, <a class="xref" href="impala_tables.html#internal_tables">Internal Tables</a>, <a class="xref" href="impala_tables.html#external_tables">External Tables</a> |
| </p> |
| </div> |
| <nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_langref_sql.html">Impala SQL Statements</a></div></div></nav></article></main></body></html> |