

# Amazon EMR 로그 파일을 기반으로 기본 테이블 생성 및 쿼리
<a name="emr-create-table"></a>

다음 예제에서는 `s3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/elasticmapreduce/`에 저장된 로그 파일을 기반으로 기본 테이블 `myemrlogs`를 생성합니다. 아래 예제에 사용된 Amazon S3 위치는 *us-west-2* 리전의 Amazon Web Services 계정 *123456789012*에서 생성한 EMR 클러스터의 기본 로그 위치 패턴을 반영합니다. 사용자 지정 위치를 사용하는 경우 패턴은 s3://amzn-s3-demo-bucket/*ClusterID*입니다.

잠재적으로 쿼리 성능을 향상시키고 데이터 전송을 줄이기 위해 분할된 테이블을 생성하는 방법에 대한 자세한 내용은 [Amazon EMR 로그를 기반으로 분할된 테이블 생성 및 쿼리](emr-create-table-partitioned.md) 단원을 참조하세요.

```
CREATE EXTERNAL TABLE `myemrlogs`(
  `data` string COMMENT 'from deserializer')
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6'
```

## 예제 쿼리
<a name="emr-example-queries-basic"></a>

다음 예제 쿼리는 이전 예제에서 생성된 `myemrlogs` 테이블에서 실행할 수 있습니다.

**Example - ERROR, WARN, INFO, EXCEPTION, FATAL 또는 DEBUG 발생에 대한 단계 로그 쿼리**  

```
SELECT data,
        "$PATH"
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'s-86URH188Z6B1')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example - ERROR, WARN, INFO, EXCEPTION, FATAL 또는 DEBUG에 대한 특정 인스턴스 로그 i-00b3c0a839ece0a9c 쿼리**  

```
SELECT "data",
        "$PATH" AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'i-00b3c0a839ece0a9c')
        AND regexp_like("$PATH",'state')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example - ERROR, WARN, INFO, EXCEPTION, FATAL 또는 DEBUG에 대한 Presto 애플리케이션 로그 쿼리**  

```
SELECT "data",
        "$PATH" AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'presto')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example - ERROR, WARN, INFO, EXCEPTION, FATAL 또는 DEBUG에 대한 Namenode 애플리케이션 로그 쿼리**  

```
SELECT "data",
        "$PATH" AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'namenode')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example - ERROR, WARN, INFO, EXCEPTION, FATAL 또는 DEBUG에 대해 날짜 및 시간별 모든 로그 쿼리**  

```
SELECT distinct("$PATH") AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'2019-07-23-10')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```