Athena 엔진 버전 2
Athena 엔진 버전 2에는 다음 변경 사항이 도입되었습니다.
개선 사항 및 새로운 기능
-
EXPLAIN 및 EXPLAIN ANALYZE – Athena에서
EXPLAIN
문을 사용하여 SQL 쿼리의 실행 계획을 볼 수 있습니다.EXPLAIN ANALYZE
를 사용하여 SQL 쿼리에 대한 분산 실행 계획과 각 작업의 비용을 확인합니다. 자세한 내용은 Athena에서 EXPLAIN 및 EXPLAIN ANALYZE 사용 단원을 참조하십시오. -
연합 쿼리 - Athena 엔진 버전 2에서는 연합 쿼리가 지원됩니다. 자세한 내용은 Amazon Athena 페더레이션 쿼리 사용 단원을 참조하세요.
-
지리 공간 함수 - 25개 이상의 지리 공간 함수가 추가되었습니다. 자세한 내용은 Athena 엔진 버전 2의 새 지리 공간 함수 단원을 참조하세요.
-
중첩 스키마 - 비용을 절감하는 중첩 스키마 읽기 지원이 추가되었습니다.
-
준비된 문 - 다른 쿼리 파라미터를 사용하여 동일한 쿼리를 반복적으로 실행하기 위해 준비된 문을 사용합니다. 준비된 문에는 런타임 시 값을 전달하는 자리 표시자 파라미터가 포함되어 있습니다. 준비된 문은 SQL 명령어 삽입 공격을 방지하는 데 도움이 됩니다. 자세한 내용은 파라미터화된 쿼리 사용 단원을 참조하십시오.
-
스키마 변화(schema evolution) 지원 - Parquet 형식의 데이터에 대한 스키마 변화 지원이 추가되었습니다.
-
파티션 스키마가 테이블 스키마와 다른 파티션에서 배열, 맵 또는 행 유형 열 읽기에 대한 지원이 추가되었습니다. 파티션이 생성된 후 테이블 스키마가 업데이트될 때 이 작업이 발생할 수 있습니다. 변경된 열 유형은 호환이 가능해야 합니다. 행 유형의 경우 후행 필드를 추가하거나 삭제할 수 있지만 해당 필드(서수 기준)는 같은 이름을 가져야 합니다.
-
이제 ORC 파일은 누락된 필드가 있는 구조체 열을 가질 수 있습니다. 이로써 ORC 파일을 다시 작성하지 않고도 테이블 스키마를 변경할 수 있습니다.
-
ORC 구조체 열은 이제 서수가 아닌 이름으로 매핑됩니다. 이 때문에 ORC 파일의 누락되거나 남는 구조체 필드가 올바르게 처리됩니다.
-
-
SQL OFFSET - 이제
SELECT
문에서 SQLOFFSET
절이 지원됩니다. 자세한 내용은 SELECT 단원을 참조하십시오. -
UNLOAD 문 -
UNLOAD
문을 사용하여SELECT
쿼리의 출력을 PARQUET, ORC, AVRO, JSON 형식으로 쓸 수 있습니다. 자세한 내용은 UNLOAD 단원을 참조하십시오.
그룹화, 조인, 하위 쿼리 개선 사항
-
복합 그룹화(Complex grouping) - 복합 그룹화 연산이 지원됩니다.
-
상호 연관 하위 쿼리(Correlated subquery) -
IN
조건자에서 상호 연관 하위 쿼리 및 강제 변환이 필요한 상호 연관 하위 쿼리가 지원됩니다. -
크로스 조인(CROSS JOIN) -
LATERAL
파생 테이블에 대한CROSS JOIN
이 지원됩니다. -
그룹화 집합(GROUPING SETS) -
GROUPING SETS
을 사용하는 쿼리의 집계에서ORDER BY
절이 지원됩니다. -
Lambda 표현식 - Lambda 표현식에서의 행 필드 역참조가 지원됩니다.
-
semijoin의 Null 값 - semijoin 왼쪽의 null 값이 지원됩니다(즉,
IN
조건자와 하위 쿼리). -
공간 조인(Spatial joins) - 브로드캐스트 공간 조인 및 공간 왼쪽 조인(spatial left join)이 지원됩니다.
-
디스크로 분산(Spill to disk) - 메모리 집약적
INNER JOIN
및LEFT JOIN
연산에 대해 Athena가 중간 작업 결과를 디스크로 오프로드합니다. 이를 통해 많은 양의 메모리가 필요한 쿼리를 실행할 수 있습니다.
데이터 형식 기능 향상
-
INTEGER의 INT -
INTEGER
데이터 형식에 대한 별칭으로서INT
가 지원됩니다. -
INTERVAL 형식 -
INTERVAL
형식으로 캐스팅이 지원됩니다. -
IPADDRESS - DML 쿼리에서 IP 주소를 나타내는 새로운
IPADDRESS
유형이 추가되었습니다.VARBINARY
형식과IPADDRESS
형식 간의 캐스팅이 지원됩니다. DDL 쿼리에서는IPADDRESS
유형이 인식되지 않습니다. -
IS DISTINCT FROM -
JSON
및IPADDRESS
형식에 대해IS DISTINCT FROM
이 지원됩니다. -
Null 동치 검사 - 이제
ARRAY
,MAP
,ROW
데이터 구조에서 Null 값에 대한 동치 검사가 지원됩니다. 예를 들어, 표현식ARRAY ['1', '3', null] = ARRAY ['1', '2', null]
은false
를 반환합니다. 이전에 null 요소는비교가 지원되지 않음
오류 메시지를 반환했습니다. -
행 형식 강제 변환 - 이제 필드 이름에 관계없이 행 형식 간의 강제 변환이 허용됩니다. 이전에는 원본 형식의 필드 이름이 대상 형식과 일치하거나 대상 형식에 익명 필드 이름이 있는 경우에만 행 형식이 다른 행 형식으로 강제 변환되었습니다.
-
시간 뺄셈 - 모든
TIME
및TIMESTAMP
형식에 대한 뺄셈이 구현되었습니다. -
유니코드 - 문자열 리터럴에서 이스케이프 처리된 유니코드 시퀀스가 지원됩니다.
-
VARBINARY 연결 -
VARBINARY
값의 연결이 지원됩니다.윈도 값 함수 - 윈도 값 함수가 이제
IGNORE NULLS
와RESPECT NULLS
를 지원합니다.
함수의 추가 입력 형식
이제 다음 함수에 추가적인 입력 형식이 허용됩니다. 각 함수에 대한 자세한 내용은 Presto 설명서의 해당 링크를 방문하세요.
-
approx_distinct() – approx_distinct()
함수가 이제 다음 형식을 지원합니다. INTEGER
,SMALLINT
,TINYINT
,DECIMAL
,REAL
,DATE
,TIMESTAMP
,TIMESTAMP WITH TIME ZONE
,TIME
,TIME WITH TIME ZONE
,IPADDRESS
,CHAR
. -
Avg(), sum() – avg()
및 sum() 집계 함수가 이제 INTERVAL
데이터 형식을 지원합니다. -
Min(), max() – 이제 min()
및 max() 집계 함수가 쿼리 분석 시간에 알 수 없는 입력 형식을 허용하므로 NULL
리터럴과 함께 함수를 사용할 수 있습니다. -
regexp_replace() – 대체 시마다 Lambda 함수를 실행할 수 있는 regexp_replace()
의 변형이 추가되었습니다. -
Sequence() – 암시적인 1일 단위 증분(implicit one-day step increment)을 갖는 변형을 포함해, sequence()
함수에 대한 DATE
변형이 추가되었습니다. -
ST_Area() – ST_Area()
지리 공간 함수가 이제 모든 geometry 형식을 지원합니다. -
Substr() – substr
함수가 이제 VARBINARY
입력에서 작동합니다. -
zip_with() – 이제 zip_with()
에 길이가 일치하지 않는 배열을 사용할 수 있습니다. 누락된 위치는 null로 채워집니다. 이전에는 길이가 다른 배열이 전달되었을 때 오류가 발생했습니다. 이 변경으로 인해 원래 null이었던 값과 배열을 같은 길이로 채우기 위해 추가된 값을 구별하기가 어려울 수 있습니다.
추가된 함수
다음 목록에는 Athena 엔진 버전 2의 새로운 시작인 함수가 포함되어 있습니다. 이 목록에는 지리 공간 함수가 포함되어 있지 않습니다. 지리 공간 함수의 목록은 Athena 엔진 버전 2의 새 지리 공간 함수을(를) 참조하세요.
각 함수에 대한 자세한 내용은 Presto 설명서의 해당 링크를 방문하세요.
집계 함수
배열 함수와 연산자
array_sort()
이진 함수와 연산자
날짜 및 시간 함수와 연산자
맵 함수와 연산자
수학 함수와 연산자
분위수 다이제스트 함수
분위수 다이제스트 함수qdigest
분위수 다이제스트 형식이 추가되었습니다.
문자열 함수와 연산자
성능 개선
Athena 엔진 버전 2에서는 다음과 같은 기능의 성능이 향상되었습니다.
쿼리 성능
-
브로드캐스트 조인 성능 - 작업자 노드에 동적 파티션 정리를 적용하여 브로드캐스트 조인 성능을 개선했습니다.
-
버킷팅된 테이블 - 쓰기 중인 데이터가 이미 적절히 분할된 경우(예: 버킷팅된 조인의 출력인 경우) 버킷팅된 테이블에 대한 쓰기 성능이 향상되었습니다.
-
DISTINCT -
DISTINCT
를 사용하는 일부 쿼리의 성능이 향상되었습니다.동적 필터링 및 파티션 정리 – 개선으로 성능이 향상되고 쿼리에서 스캔되는 데이터 양이 감소되었습니다.
-
필터 및 프로젝션 연산 - 이제 가능한 경우 필터 및 프로젝션 연산이 항상 열을 기준으로 처리됩니다. 사전 인코딩이 효과적인 경우 엔진이 자동으로 이를 활용합니다.
-
수집 교환(Gathering exchanges) - 수집 교환을 통해 쿼리의 성능이 개선되었습니다.
-
전역 집계(Global aggregations) - 필터링된 전역 집계를 수행하는 일부 쿼리의 성능이 개선되었습니다.
-
GROUPING SETS, CUBE, ROLLUP -
GROUPING SETS
,CUBE
또는ROLLUP
이 관련된 쿼리의 성능이 개선되었습니다. 이를 활용하여 하나의 쿼리에 여러 열 집합을 집계할 수 있습니다. -
매우 선별적인 필터 - 매우 선별적인 필터로 쿼리의 성능이 개선되었습니다.
-
JOIN 및 AGGREGATE 작업 -
JOIN
및AGGREGATE
작업의 성능이 향상되었습니다. -
LIKE –
information_schema
테이블의 열에LIKE
조건자를 사용하는 쿼리의 성능이 향상되었습니다. -
ORDER BY 및 LIMIT - 불필요한 데이터 교환을 방지하기 위해
ORDER BY
및LIMIT
가 관련된 쿼리의 계획, 성능, 메모리 사용량을 개선했습니다. -
ORDER BY – 이제
ORDER BY
연산이 기본으로 배포되어 더 큰ORDER BY
절을 사용할 수 있습니다. -
ROW 형식 변환 -
ROW
형식 간의 변환 시 성능이 향상되었습니다. -
구조 형식 - 구조 형식을 처리하고 스캔, 조인, 집계 또는 테이블 쓰기를 포함하는 쿼리의 성능이 개선되었습니다.
-
테이블 스캔 - 경우에 따라 중복 테이블 스캔을 방지하기 위한 최적화 규칙이 도입되었습니다.
-
UNION -
UNION
쿼리의 성능이 개선되었습니다.
쿼리 계획 성능
-
계획 성과 - 다수의 열을 가진 여러 테이블을 조인하는 쿼리의 계획 성능이 개선되었습니다.
-
조건자 평가 - 계획의 조건자 푸시다운 중 조건자 평가 성능이 향상되었습니다.
-
캐스팅에 조건자 푸시다운 지원 - 열의 유형이 일치하도록 값 목록의 값에 캐스팅이 필요한 경우
<column>
IN
<values list>
조건자에 대해 조건자 푸시다운을 지원합니다. -
조건자 추론 및 푸시다운 -
<symbol>
IN
<subquery>
조건자를 사용하는 쿼리에서 조건자 추론 및 푸시다운이 확대되었습니다. -
시간 초과 - 드문 경우지만 쿼리 계획 시간 초과가 발생할 수 있는 버그가 수정되었습니다.
조인 성능
-
맵 열을 포함한 조인 - 맵 열을 포함한 조인 및 집계의 성능이 개선되었습니다.
-
비동치(non-equality) 조건만 포함한 조인 - 해시 조인 대신 중첩된 루프 조인을 사용하여 비동치 조건만 포함한 조인의 성능이 개선되었습니다.
-
외부 조인 - 이제 외부 조인이 관련된 쿼리에 대해 조인 배포 유형이 자동으로 선택됩니다.
-
함수 조인의 범위 - 조건이 함수의 범위인 조인의 성능이 개선되었습니다(예:
a JOIN b ON b.x < f(a.x) AND b.x > g(a.x)
). -
디스크 유출 -
JOIN
작업의 성능을 높이고 메모리 오류를 줄이기 위해 디스크 유출 관련 버그 및 메모리 문제가 수정되었습니다.
하위 쿼리 성능
-
상호 연관 EXISTS 하위 쿼리 - 상호 관련된
EXISTS
하위 쿼리의 성능이 개선되었습니다. -
등식이 포함된 상호 연관 하위 쿼리 - 등식 조건자가 포함된 상호 연관 하위 쿼리에 대한 지원이 개선되었습니다.
-
부등식이 포함된 상호 연관 하위 쿼리 - 부등식이 포함된 상호 연관 하위 쿼리의 성능이 개선되었습니다.
-
하위 쿼리에 대한 Count(*) 집계 - 알려진 상수의 카디널리티를 갖는 하위 쿼리에 대한
count(*)
집계 성능이 개선되었습니다. -
외부 쿼리 필터 전파 - 외부 쿼리의 필터를 하위 쿼리로 전파할 수 있는 경우 상호 연관 하위 쿼리의 성능이 개선되었습니다.
함수 성능
-
집계 윈도 함수 - 집계 윈도 함수의 성능이 개선되었습니다.
-
element_at() – 맵의 크기에 대한 비율이 아닌 상수 시간(constant time)이 되는 맵에 대해
element_at()
의 성능이 개선되었습니다. -
Grouping() –
grouping()
을 포함하는 쿼리의 성능이 개선되었습니다. -
JSON 캐스팅 -
JSON
에서ARRAY
또는MAP
형식으로의 캐스팅 성능이 개선되었습니다. -
맵 반환 함수 - 맵을 반환하는 함수의 성능이 개선되었습니다.
-
맵대맵(Map-to-map) 캐스팅 - 맵대맵 캐스트의 성능이 개선되었습니다.
-
Min() and max() –
min()
및max()
함수가 불필요한 객체 생성을 방지하도록 최적화되어 가비지 수집 오버헤드가 감소했습니다. -
row_number() – 생성된 행 번호에서
row_number()
뒤에 필터를 사용하는 쿼리의 성능과 메모리 사용량이 개선되었습니다. -
윈도 함수 - 동일한
PARTITION BY
및ORDER BY
절이 있는 윈도 함수를 포함한 쿼리의 성능이 개선되었습니다. -
윈도 함수 - 비슷한 사양을 가진 특정 윈도 함수의 성능이 개선되었습니다(예:
LAG
).
지리 공간 성능
-
지오메트리 직렬화 - 지오메트리 값의 직렬화 성능이 개선되었습니다.
-
지리 공간 함수 -
ST_Intersects()
,ST_Contains()
,ST_Touches()
,ST_Within()
,ST_Overlaps()
,ST_Disjoint()
,transform_values()
,ST_XMin()
,ST_XMax()
,ST_YMin()
,ST_YMax()
,ST_Crosses()
,array_intersect()
의 성능이 개선되었습니다. -
ST_Distance() –
ST_Distance()
함수가 관련된 조인 쿼리의 성능이 개선되었습니다. -
ST_Intersection() – 좌표 축에 정렬된 직사각형에 대한
ST_Intersection()
함수가 최적화되었습니다(예:ST_Envelope()
및bing_tile_polygon()
함수에 의해 생성된 다각형).
JSON 관련 개선 사항
맵 함수
-
모든 경우에서
O(n)
부터O(1)
까지 맵 아래 첨자의 성능이 개선되었습니다. 이전에는 특정 함수와 리더가 생성한 맵만 이러한 개선 사항을 활용했습니다. -
map_from_entries()
및map_entries()
함수를 추가했습니다.
캐스팅
-
REAL
,TINYINT
또는SMALLINT
에서JSON
으로 캐스팅하는 기능이 추가되었습니다. -
이제
JSON
이ROW
에 모든 필드를 포함하지 않더라도JSON
을ROW
로 캐스팅할 수 있습니다. -
CAST(json_parse(...) AS ...)
의 성능이 개선되었습니다. -
JSON
에서ARRAY
또는MAP
형식으로 캐스팅하는 성능이 개선되었습니다.
새 JSON 함수
호환성에 영향을 미치는 변경
호환성에 영향을 미치는 변경 사항에는 버그 수정, 지리 공간 함수에 대한 변경, 대체된 함수, 제한 도입이 있습니다. ANSI SQL 규정 준수의 개선으로 인해 비표준 동작에 의존했던 쿼리는 호환되지 않을 수 있습니다.
버그 수정
다음 변경은 쿼리가 성공적으로 실행되었지만 결과가 정확하지 않았던 동작 문제를 수정합니다.
-
fixed_len_byte_array Parquet 열이 이제 DECIMAL로 허용됨 - Parquet 스키마에
DECIMAL
로 주석이 지정된 경우fixed_len_byte_array
형식의 Parquet 열에 대한 쿼리가 성공하고 올바른 값을 반환합니다.DECIMAL
주석이 없는fixed_len_byte_array
열에 대한 쿼리는 오류와 함께 실패합니다. 이전에는 DECIMAL 주석이 없는fixed_len_byte_array
열에 대한 쿼리가 성공했지만 이해할 수 없는 값을 반환했습니다. -
json_parse()가 더 이상 후행 문자를 무시하지 않음 – 이전에는
[1,2]abc
같은 입력이[1,2]
로 성공적으로 파싱되었습니다. 이제 후행 문자를 사용하면 오류 메시지('[1, 2]abc'을 JSON으로 변환할 수 없음
)가 생성됩니다. -
Round() 소수점 정밀도 수정 –
x
가 소수이거나,x
가 스케일이 0인 소수이고d
가 음의 정수인 경우 이제round(x, d)
가x
를 올바르게 반올림합니다. 이전에는 이러한 경우 반올림이 발생하지 않았습니다. -
round(x, d) 및 truncate(x, d) – 이제
round(x, d)
및truncate(x, d)
함수의 부호수에서d
파라미터가INTEGER
형식입니다. 이전에는d
가BIGINT
형식일 수 있었습니다.. -
중복 키를 포함한 Map() – 이제
map()
은 중복 키에 대해 아무 경고 없이 손상된 맵을 생성하는 대신 오류를 표시합니다. 현재 중복 키를 사용하여 맵 값을 구성한 쿼리는 실패하며 오류를 표시합니다. -
null 항목이 있을 시 map_from_entries()에서 오류 발생 – 이제 입력 배열에 null 항목이 포함되어 있으면
map_from_entries()
가 오류를 발생시킵니다.NULL
을 값으로 전달하여 맵을 구성하는 쿼리는 이제 실패합니다. -
테이블 - 지원되지 않는 파티션 유형을 가진 테이블은 더 이상 만들 수 없습니다.
-
통계 함수의 수치 안정성 개선 - 통계 함수
corr()
,covar_samp()
,regr_intercept()
,regr_slope()
의 수치 안정성이 개선되었습니다. -
이제 Parquet에 정의된 TIMESTAMP 정밀도가 반영됨 - 이제 Parquet 스키마에서
TIMESTAMP
값의 정밀도와TIMESTAMP
열에 대해 정의된 정밀도가 일치해야 합니다. 정밀도가 일치하지 않을 경우 타임스탬프가 잘못됩니다. -
시간대 정보 - 이제 표준 시간대 정보가 Java 1.8 SDK의 java.time
패키지를 사용하여 계산됩니다. -
INTERVAL_DAY_TO_SECOND 및 INTERVAL_YEAR_TO_MONTH 데이터 형식의 합 - 더 이상
SUM(NULL)
을 직접 사용할 수 없습니다.SUM(NULL)
을 사용하려면NULL
을BIGINT
,DECIMAL
,REAL
,DOUBLE
,INTERVAL_DAY_TO_SECOND
또는INTERVAL_YEAR_TO_MONTH
같은 데이터 형식으로 캐스팅해야 합니다.
지리 공간 함수 변경 사항
지리 공간 함수의 변경 사항은 다음과 같습니다.
-
함수 이름 변경 - 일부 함수 이름이 변경되었습니다. 자세한 내용은 Athena 엔진 버전 2의 지리 공간 함수 이름 변경 단원을 참조하세요.
-
VARBINARY 입력 - 더 이상 지리 공간 함수에 대한 입력에
VARBINARY
형식이 직접적으로 지원되지 않습니다. 예를 들어 지오메트리의 면적을 직접 계산하려면 지오메트리가VARCHAR
또는GEOMETRY
형식의 입력이어야 합니다. 해결 방법은 다음 예제와 같이 변환 함수를 사용하는 것입니다.-
ST_area()
를 사용해 Well-Known Binary(WKB) 형식의VARBINARY
입력에 대해 면적을 계산하려면 먼저 입력을ST_GeomFromBinary()
로 전달합니다. 예를 들어 다음과 같습니다.ST_area(ST_GeomFromBinary(
<wkb_varbinary_value>
)) -
ST_area()
를 사용해 기존 바이너리 형식의VARBINARY
입력에 대해 면적을 계산하려면 먼저 동일한 입력을ST_GeomFromLegacyBinary()
로 전달합니다. 예를 들어 다음과 같습니다.ST_area(ST_GeomFromLegacyBinary(
<legacy_varbinary_value>
))
-
-
ST_ExteriorRing() 및 ST_Polygon() – 이제 ST_ExteriorRing() 및 ST_Polygon()이 입력으로 다각형만 받아들입니다. 이전에는 이러한 함수가 다른 지오메트리를 잘못 받아들였습니다.
-
ST_Distance() – SQL/MM 사양
의 요구에 따라 이제 입력 중 하나가 빈 지오메트리인 경우 ST_Distance() 함수가 NULL
을 반환합니다. 이전에는NaN
이 반환되었습니다.
ANSI SQL 규정 준수
다음 구문 및 동작 문제가 ANSI SQL 표준을 따르도록 수정되었습니다.
-
Cast() 연산 - REAL 또는 DOUBLE에서 DECIMAL로의 Cast() 연산이 이제 SQL 표준을 준수합니다. 예를 들어 이전에는
cast (double '100000000000000000000000000000000' as decimal(38))
이100000000000000005366162204393472
를 반환했지만 이제100000000000000000000000000000000
을 반환합니다. -
JOIN ... USING – 이제
JOIN ... USING
이 표준 SQL 시맨틱을 준수합니다. 이전에는JOIN ... USING
이 열의 테이블 이름을 한정하도록 요구했으며, 두 테이블의 열이 출력에 표시되었습니다. 테이블 한정(qualification)은 이제 유효하지 않으며 열이 출력에서 한 번만 표시됩니다. -
ROW 유형 리터럴 제거 -
ROW<int, int>(1, 2)
ROW 유형 리터럴이 더 이상 지원되지 않습니다. 대신ROW(1 int, 2 int)
구문을 사용합니다. -
그룹화된 집계 시맨틱 - 그룹화된 집계에 등식 시맨틱이 아닌
IS NOT DISTINCT FROM
시맨틱을 사용합니다. 이제NaN
부동 소수점 값을 그룹화할 때 그룹화된 집계가 올바른 결과를 반환하며 성능이 개선되었습니다. null을 포함한 맵, 목록 및 행 형식에 대한 그룹화가 지원됩니다. -
따옴표가 있는 형식은 더 이상 허용되지 않음 - ANSI SQL 표준에 따라 데이터 형식을 더 이상 따옴표로 묶을 수 없습니다. 예를 들어
SELECT "date" '2020-02-02'
는 더 이상 유효한 쿼리가 아닙니다. 대신SELECT date '2020-02-02'
구문을 사용합니다. -
익명 행 필드 액세스 - 더 이상 [
.field0, .field1, ...
] 구문을 사용하여 익명 행 필드에 액세스 할 수 없습니다. -
복합 그룹화(Complex grouping) 연산 - 복합 그룹화 연산
GROUPING SETS
,CUBE
,ROLLUP
이 입력 열로 구성된 표현식에 대해 그룹화를 지원하지 않습니다. 열 이름만 허용됩니다.
대체된 함수
다음 함수는 더 이상 지원되지 않으며 동일한 결과를 산출하는 구문으로 대체되었습니다.
-
information_schema.__internal_partitions__ – Athena 엔진 버전 2에서는
__internal_partitions__
를 더 이상 사용할 수 없습니다. 동등한 구문으로SELECT * FROM "
또는<table_name>
$partitions"SHOW PARTITIONS
를 사용하세요. 자세한 내용은 특정 테이블의 파티션 나열 단원을 참조하세요. -
대체된 지리 공간 함수 - 이름이 변경된 지리 공간 함수 목록은 Athena 엔진 버전 2의 지리 공간 함수 이름 변경을 참조하세요.
Limits
리소스 제한으로 인해 쿼리가 실패하지 않도록 Athena 엔진 버전 2에서는 다음의 제한이 도입되었습니다. 이러한 제한은 사용자가 구성할 수 없습니다.
-
결과 요소 수 -
min(col, n)
,max(col, n)
,min_by(col1, col2, n)
,max_by(col1, col2, n)
함수의 경우 결과 요소 수n
이 10,000개 이하로 제한됩니다. -
그룹화 세트 - 그룹화 집합의 최대 슬라이스 수는 2048개입니다.
-
최대 텍스트 파일 줄 길이 - 텍스트 파일의 기본 최대 줄 길이는 200MB입니다.
-
시퀀스 함수 최대 결과 크기 - 시퀀스 함수의 최대 결과 크기는 50,000개의 항목입니다. 예를 들어,
SELECT sequence(0,45000,1)
은 성공하지만SELECT sequence(0,55000,1)
은 오류 메시지와 함께 실패합니다.시퀀스 함수의 결과는 50,000개 항목 이하여야 합니다
. 이 제한은 타임스탬프를 포함해 시퀀스 함수의 모든 입력 형식에 적용됩니다.