Skip to content

Commit 39570b4

Browse files
committed
Always use a default workgroup config, instead of retreiving a workgroup config from AWS API
1 parent 49fbd1c commit 39570b4

File tree

5 files changed

+8686
-30
lines changed

5 files changed

+8686
-30
lines changed

awswrangler/athena/_executions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
_QUERY_FINAL_STATES,
2323
_QUERY_WAIT_POLLING_DELAY,
2424
_apply_formatter,
25-
_get_workgroup_config,
25+
_get_default_workgroup_config,
2626
_start_query_execution,
2727
_WorkGroupConfig,
2828
)
@@ -149,7 +149,7 @@ def start_query_execution(
149149
query_execution_id = cache_info.query_execution_id
150150
_logger.debug("Valid cache found. Retrieving...")
151151
else:
152-
wg_config: _WorkGroupConfig = _get_workgroup_config(session=boto3_session, workgroup=workgroup)
152+
wg_config: _WorkGroupConfig = _get_default_workgroup_config()
153153
query_execution_id = _start_query_execution(
154154
sql=sql,
155155
wg_config=wg_config,

awswrangler/athena/_read.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
_empty_dataframe_response,
2525
_get_query_metadata,
2626
_get_s3_output,
27-
_get_workgroup_config,
27+
_get_default_workgroup_config,
2828
_QueryMetadata,
2929
_start_query_execution,
3030
_WorkGroupConfig,
@@ -431,7 +431,7 @@ def _resolve_query_without_cache_regular(
431431
dtype_backend: Literal["numpy_nullable", "pyarrow"] = "numpy_nullable",
432432
client_request_token: str | None = None,
433433
) -> pd.DataFrame | Iterator[pd.DataFrame]:
434-
wg_config: _WorkGroupConfig = _get_workgroup_config(session=boto3_session, workgroup=workgroup)
434+
wg_config: _WorkGroupConfig = _get_default_workgroup_config()
435435
s3_output = _get_s3_output(s3_output=s3_output, wg_config=wg_config, boto3_session=boto3_session)
436436
s3_output = s3_output[:-1] if s3_output[-1] == "/" else s3_output
437437
_logger.debug("Executing sql: %s", sql)
@@ -597,7 +597,7 @@ def _unload(
597597
athena_query_wait_polling_delay: float,
598598
execution_params: list[str] | None,
599599
) -> _QueryMetadata:
600-
wg_config: _WorkGroupConfig = _get_workgroup_config(session=boto3_session, workgroup=workgroup)
600+
wg_config: _WorkGroupConfig = _get_default_workgroup_config()
601601
s3_output: str = _get_s3_output(s3_output=path, wg_config=wg_config, boto3_session=boto3_session)
602602
s3_output = s3_output[:-1] if s3_output[-1] == "/" else s3_output
603603
# Athena does not enforce a Query Result Location for UNLOAD. Thus, the workgroup output location

awswrangler/athena/_utils.py

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -140,26 +140,9 @@ def _start_query_execution(
140140
return response["QueryExecutionId"]
141141

142142

143-
def _get_workgroup_config(session: boto3.Session | None = None, workgroup: str = "primary") -> _WorkGroupConfig:
144-
enforced: bool
145-
wg_s3_output: str | None
146-
wg_encryption: str | None
147-
wg_kms_key: str | None
148-
149-
enforced, wg_s3_output, wg_encryption, wg_kms_key = False, None, None, None
150-
if workgroup is not None:
151-
res = get_work_group(workgroup=workgroup, boto3_session=session)
152-
enforced = res["WorkGroup"]["Configuration"]["EnforceWorkGroupConfiguration"]
153-
config: dict[str, Any] = res["WorkGroup"]["Configuration"].get("ResultConfiguration")
154-
if config is not None:
155-
wg_s3_output = config.get("OutputLocation")
156-
encrypt_config: dict[str, str] | None = config.get("EncryptionConfiguration")
157-
wg_encryption = None if encrypt_config is None else encrypt_config.get("EncryptionOption")
158-
wg_kms_key = None if encrypt_config is None else encrypt_config.get("KmsKey")
159-
wg_config: _WorkGroupConfig = _WorkGroupConfig(
160-
enforced=enforced, s3_output=wg_s3_output, encryption=wg_encryption, kms_key=wg_kms_key
161-
)
162-
_logger.debug("Workgroup config:\n%s", wg_config)
143+
def _get_default_workgroup_config() -> _WorkGroupConfig:
144+
wg_config: _WorkGroupConfig = _WorkGroupConfig(enforced=False, s3_output=None, encryption=None, kms_key=None)
145+
_logger.debug("Default workgroup config:\n%s", wg_config)
163146
return wg_config
164147

165148

@@ -783,7 +766,7 @@ def create_ctas_table(
783766

784767
fully_qualified_name = f'"{ctas_database}"."{ctas_table}"'
785768

786-
wg_config: _WorkGroupConfig = _get_workgroup_config(session=boto3_session, workgroup=workgroup)
769+
wg_config: _WorkGroupConfig = _get_default_workgroup_config()
787770
s3_output = _get_s3_output(s3_output=s3_output, wg_config=wg_config, boto3_session=boto3_session)
788771
s3_output = s3_output[:-1] if s3_output[-1] == "/" else s3_output
789772
# If the workgroup enforces an external location, then it overrides the user supplied argument

awswrangler/athena/_write_iceberg.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from awswrangler._config import apply_configs
1616
from awswrangler.athena._executions import wait_query
1717
from awswrangler.athena._utils import (
18-
_get_workgroup_config,
18+
_get_default_workgroup_config,
1919
_start_query_execution,
2020
_WorkGroupConfig,
2121
)
@@ -303,7 +303,7 @@ def _merge_iceberg(
303303
None
304304
305305
"""
306-
wg_config: _WorkGroupConfig = _get_workgroup_config(session=boto3_session, workgroup=workgroup)
306+
wg_config: _WorkGroupConfig = _get_default_workgroup_config()
307307

308308
sql_statement: str
309309
if merge_cols:
@@ -488,7 +488,7 @@ def to_iceberg( # noqa: PLR0913
488488
... )
489489
490490
"""
491-
wg_config: _WorkGroupConfig = _get_workgroup_config(session=boto3_session, workgroup=workgroup)
491+
wg_config: _WorkGroupConfig = _get_default_workgroup_config()
492492
temp_table: str = f"temp_table_{uuid.uuid4().hex}"
493493

494494
_validate_args(
@@ -743,7 +743,7 @@ def delete_from_iceberg_table(
743743
if not merge_cols:
744744
raise exceptions.InvalidArgumentValue("Merge columns must be specified.")
745745

746-
wg_config: _WorkGroupConfig = _get_workgroup_config(session=boto3_session, workgroup=workgroup)
746+
wg_config: _WorkGroupConfig = _get_default_workgroup_config()
747747
temp_table: str = f"temp_table_{uuid.uuid4().hex}"
748748

749749
if not temp_path and not wg_config.s3_output:

0 commit comments

Comments
 (0)