Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6dd28e4

Browse files
fix: prevent athena.to_iceberg overwrite to delete table in order to preserve Iceberg transactions history (#2776)
1 parent 60beb95 commit 6dd28e4

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

‎awswrangler/athena/_write_iceberg.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -383,11 +383,6 @@ def to_iceberg(
383383
glue_table_settings if glue_table_settings else {},
384384
)
385385

386-
if mode == "overwrite":
387-
catalog.delete_table_if_exists(
388-
database=database, table=table, catalog_id=catalog_id, boto3_session=boto3_session
389-
)
390-
391386
try:
392387
# Create Iceberg table if it doesn't exist
393388
if not catalog.does_table_exist(
@@ -469,6 +464,20 @@ def to_iceberg(
469464
s3_additional_kwargs=s3_additional_kwargs,
470465
catalog_id=catalog_id,
471466
)
467+
# if mode == "overwrite", delete whole data from table (but not table itself)
468+
elif mode == "overwrite":
469+
delete_sql_statement = f"DELETE FROM {table}"
470+
delete_query_execution_id: str = _start_query_execution(
471+
sql=delete_sql_statement,
472+
workgroup=workgroup,
473+
wg_config=wg_config,
474+
database=database,
475+
data_source=data_source,
476+
encryption=encryption,
477+
kms_key=kms_key,
478+
boto3_session=boto3_session,
479+
)
480+
wait_query(query_execution_id=delete_query_execution_id, boto3_session=boto3_session)
472481

473482
# Create temporary external table, write the results
474483
s3.to_parquet(

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /