

신중한 고려 끝에 Amazon Kinesis Data Analytics for SQL 애플리케이션을 중단하기로 결정했습니다.

1. **2025년 9월 1**일부터 Amazon Kinesis Data Analytics for SQL 애플리케이션에 대한 버그 수정은 제공되지 않습니다. 곧 중단될 예정이므로 지원이 제한될 예정이기 때문입니다.

2. **2025년 10월 15**일부터 새 Kinesis Data Analytics for SQL 애플리케이션을 생성할 수 없습니다.

3. **2026년 1월 27**일부터 애플리케이션이 삭제됩니다. Amazon Kinesis Data Analytics for SQL 애플리케이션을 시작하거나 작동할 수 없게 됩니다. 그 시점부터 Amazon Kinesis Data Analytics for SQL에 대한 지원을 더 이상 이용할 수 없습니다. 자세한 내용은 [Amazon Kinesis Data Analytics for SQL 애플리케이션 단종](discontinuation.md) 단원을 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 예: 문자열 값 변환
<a name="examples-transforming-strings"></a>

Amazon Kinesis Data Analytics는 스트리밍 소스 상의 레코드에 대해 JSON 및 CSV와 같은 형식을 지원합니다. 자세한 설명은 [RecordFormat](API_RecordFormat.md) 섹션을 참조하십시오. 그런 다음 이들 레코드를 입력 구성에 따라 애플리케이션 내 스트림에 있는 행에 매핑합니다. 자세한 설명은 [애플리케이션 입력 구성](how-it-works-input.md) 섹션을 참조하십시오. 입력 구성에서는 스트리밍 소스에 있는 레코드 필드를 애플리케이션 내 스트림에 있는 열로 매핑하는 방식을 지정합니다.

이 매핑은 스트리밍 소스 상의 레코드가 지원 형식에 따를 때 작동하며, 애플리케이션 내 스트림이 정규화된 데이터로 채워집니다. 그러나 스트리밍 소스상의 데이터가 지원 표준에 부합하지 않는 경우에는 어떻게 되겠습니까? 예를 들어, 스트리밍 소스에 클릭스트림 데이터, IoT 센서 및 애플리케이션 로그와 같은 데이터가 포함되어 있다면 어떻게 되겠습니까?

아래 예를 참조하십시오:
+ 스트리밍 소스에 애플리케이션 로그가 포함된 경우 – 애플리케이션 로그는 표준 Apache 로그 형식에 따르고 JSON 형식을 사용하여 스트림에 기록됩니다.

  ```
  {
     "Log":"192.168.254.30 - John [24/May/2004:22:01:02 -0700] "GET /icons/apache_pb.gif HTTP/1.1" 304 0"
  }
  ```

  표준 Apache 로그 형식에 관한 자세한 정보는 Apache 웹 사이트의 [Log Files](https://httpd.apache.org/docs/2.4/logs.html)를 참조하십시오.

   
+ 스트리밍 소스에 반정형 데이터가 포함된 경우 – 다음 예에 두 가지 레코드가 소개되어 있습니다. `Col_E_Unstructured` 필드 값은 일련의 CSV(쉼표로 분리된 값)입니다. 5개 열 가운데 처음 4개는 문자열 유형의 값이고 마지막 열에는 CSV가 포함됩니다.

  ```
  { "Col_A" : "string",
    "Col_B" : "string",
    "Col_C" : "string",
    "Col_D" : "string",
    "Col_E_Unstructured" : "value,value,value,value"}
  
  { "Col_A" : "string",
    "Col_B" : "string",
    "Col_C" : "string",
    "Col_D" : "string",
    "Col_E_Unstructured" : "value,value,value,value"}
  ```
+ 스트리밍 소스의 레코드에는 URL이 포함되는데 분석을 위해서는 URL 도메인 명칭의 일부가 필요합니다.

  ```
  { "referrer" : "http://www.amazon.com"}
  { "referrer" : "http://www.stackoverflow.com" }
  ```

그와 같은 경우, 정규화된 데이터를 포함하는 애플리케이션 내 스트림 생성을 위해서는 일반적으로 다음과 같은 2단계의 프로세스가 요구됩니다.

1. 비정형 필드를 생성되는 애플리케이션 내 입력 스트림의 `VARCHAR(N)` 유형 열에 매핑하도록 애플리케이션을 구성합니다.

1. 애플리케이션 코드에서 문자열 함수를 사용하여 이 단일 열을 복수 열로 분할한 다음 행을 또 다른 애플리케이션 내 스트림에 저장합니다. 애플리케이션 코드가 생성하는 이 애플리케이션 내 스트림은 정규화된 데이터를 가지게 됩니다. 그런 다음 애플리케이션 내 스트림에 있는 데이터에 대해 분석을 수행할 수 있습니다.

Amazon Kinesis Data Analytics는 문자열 열 작업을 수행할 수 있도록 다음과 같은 문자열 연산, 표준 SQL 함수, SQL 표준 확장을 제공합니다: 
+ **문자열 연산자** – `LIKE`와`SIMILAR` 같은 연산자는 문자열 비교에 유용합니다. 자세한 설명은 *Amazon Managed Service for Apache Flink SQL 참조*에서 [문자열 연산자](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-string-operators.html)를 참조하십시오.
+ **SQL 함수** – 다음 함수는 개별 문자열 조작에 유용합니다. 자세한 설명은 *Amazon Managed Service for Apache Flink SQL 참조*에서 [문자열 및 검색 함수](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-string-and-search-functions.html)를 참조하십시오.
  + `CHAR_LENGTH` – 문자열의 길이를 정합니다.
  + `INITCAP` – 입력 문자열에서 공백으로 구분된 각 단어의 첫 번째 문자가 대문자로 변환되고 나머지 문자는 모두 소문자로 변환된 버전을 반환합니다.
  + `LOWER/UPPER` – 문자열을 대문자 또는 소문자로 변환합니다.
  + `OVERLAY` – 첫 번째 문자열(원본 문자열) 인수 중 일부를 두 번째 문자열(대체 문자열) 인수로 대체합니다.
  + `POSITION` – 다른 문자열 내에서 문자열을 검색합니다.
  + `REGEX_REPLACE` – 하위 문자열을 다른 하위 문자열로 대체합니다.
  + `SUBSTRING` – 특정 위치에서 시작하는 소스 문자열의 일부를 추출합니다.
  + `TRIM` – 소스 문자열의 시작 또는 끝부분에서 지정된 문자의 인스턴스를 제거합니다.
+ **SQL 확장** – 로그 및 URI와 같은 비정형 문자열 작업 수행에 유용합니다. 자세한 설명은 *Amazon Managed Service for Apache Flink SQL 참조*에서 [로그 파싱 함수](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-pattern-matching-functions.html)를 참조하십시오.
  + `FAST_REGEX_LOG_PARSER` – regex parser와 비슷하게 작동하지만, 보다 빠른 결과를 얻기 위해 몇 가지 경로를 단축합니다. 예를 들어, 빠른 regex parser는 첫 번째 일치에서 중지합니다(*지연 시맨틱*).
  + `FIXED_COLUMN_LOG_PARSE` – 고정 너비 필드를 구문 분석하고 지정된 SQL 유형으로 자동으로 변환합니다.
  + `REGEX_LOG_PARSE` – 기본적인 Java 정규식 패턴을 기준으로 문자열 구문 분석을 수행합니다.
  + `SYS_LOG_PARSE` – UNIX/Linux 시스템 로그에서 흔히 발견되는 항목을 처리합니다.
  + `VARIABLE_COLUMN_LOG_PARSE` – 입력 문자열을 구분 기호 문자 또는 문자열에 의해 분리되는 필드로 분할합니다.
  + `W3C_LOG_PARSE` – Apache 로그의 신속한 포맷을 위해 사용할 수 있습니다.

이들 함수의 예는 다음 주제를 참조하십시오:

**Topics**
+ [예: 문자열의 일부분 추출(SUBSTRING 함수)](examples-transforming-strings-substring.md)
+ [예: Regex(REGEX\_REPLACE 함수)를 사용하여 하위 문자열 대체](examples-transforming-strings-regexreplace.md)
+ [예: 정규식(REGEX\_LOG\_PARSE 함수) 기반 로그 문자열 구문 분석](examples-transforming-strings-regexlogparse.md)
+ [예: 웹 로그 구문 분석(W3C\_LOG\_PARSE 함수)](examples-transforming-strings-w3clogparse.md)
+ [예: 문자열을 복수의 필드로 분할(VARIABLE\_COLUMN\_LOG\_PARSE 함수)](examples-transforming-strings-variablecolumnlogparse.md)