메트릭스 가공
MXQL 문법을 이용해 메트릭스를 가공하는 명령어에 대해서 알아봅니다. 메트릭스 가공 단계는 조회된 데이터들이 각 단계를 순차적으로 수행하는 구조입니다. 따라서 이 단계에 포함되는 명령어들의 입력 순서가 중요합니다.
| 명령어 | 기능 |
|---|---|
| ROWNUM | 줄번호 필드를 추가합니다. |
| SELECT | 필드를 선택합니다. 선택되지 않은 필드은 조회되지 않습니다. |
| CREATE | 필드를 추가합니다. |
| DELETE | 필드를 삭제합니다. |
| RENAME | 필드의 이름을 변경합니다. |
| GROUP | 데이터를 그룹화합니다. |
| ORDER | 데이터를 정렬합니다. |
| JOIN | 다른 MQL에서 조회한 데이터를 본 데이터에 컬럼단위로 추가할때 사용합니다. |
| UPDATE | 데이터를 가공, 정제합니다. |
| LIMIT | 추출되는 데이터의 수를 제한합니다. |
| SKIP | 해당 위치에서 조회되는 일부 데이터를 무시합니다. |
| FILTER-KEYS | 특정 데이터를 가지고 있는 데이터만 추출합니다. |
| FIRST-ONLY | 데이터 중에서 처음 데이터만을 통과 시키고 나머지는 버립니다. |
| TIME-FILTER | 특정시간의 데이터를 SKIP할때 사용합니다. |
| INJECT | 해당 위치에 MXQL 쿼리를 추가합니다. |
| ADJUST | 숫자 필드의 값을 변경하기 위해 사용합니다. |
| FILTER | 특정 조건을 가지고 있는 데이터만 다음 단계로 전달합니다. |
ROWNUM
줄번호 필드를 추가합니다.
Example
CATEGORY agent_list
FLEXLOAD
ROWNUM
SELECT
필드를 선택합니다. 선택하지 않은 필드는 다음 단계로 전달하지 않습니다.
| 옵션 이름 | 옵션 기능 |
|---|---|
| default | like, notlike와 상관없이 조회하고 싶은 필드를 설정합니다. |
| like | 설정한 값 을 부분 문자열로 가지는 필드만 조회합니다. |
| notlike | 설정한 값을 부분 문자열로 가지지 않는 필드만 조회합니다. |
-
모든 필드를 선택하는 경우 1 (
SELECT명령어, 오퍼랜드를 모두 입력하지 않은 경우)CATEGORY app_counter
TAGLOAD -
모든 필드를 선택하는 경우 2 (
SELECT명령어의 오퍼랜드를 입력하지 않은 경우)CATEGORY app_counter
TAGLOAD
SELECT -
조회하고 싶은 필드 이름을 직접 설정하는 경우, 문자열배열 오퍼랜드를 사용합니다.
CATEGORY app_counter
TAGLOAD
SELECT [time, pcode] -
default로 설정할 필드의 값이 하나인 경우와like옵션을 사용하는 경우CATEGORY app_counter
TAGLOAD
SELECT {default:time, like:_m} -
default로 설정할 필드의 값이 여러 개인 경우와like옵션을 사용하는 경우,default로 설정할 필드의 값이 여러 개인 경우와like옵션을 사용하는 경우CATEGORY app_counter
TAGLOAD
SELECT {default:[time,name], like:_m} -
like와notlike를 모두 사용하고 싶은 경우SELECT명령어를 두 번에 나누어서 입력해야 합니다.CATEGORY app_counter
TAGLOAD
SELECT {default:[time,name], like:name}
SELECT {notlike:pname}
주의
- 만약 전체 필드를 선택할때는 오퍼랜드를 입력하지 않습니다.
like와notlike는 한 번에 설정할 수 없습니다. 여러 번의SELECT에서 나누어서 설정해야 합니다.
노트
SELECT 명령어는 출력되는 필드 순서를 변경할 때도 사용합니다.
CREATE
필드를 추가합니다.
| 옵션 이름 | 옵션 기능 |
|---|---|
| value | 특정 값을 가지는 필드를 생성합니다. |
| from | 설정한 필드의 값을 가지는 필드를 생성합니다. |
| expr | 입력한 수식의 결과를 값으로 가지는 필드를 생성합니다. 수식에는 필드의 이름이 사용될 수 있습니다. |
| oname | oid 컬럼의 이름을 설정하여 oid 값에 대응 되는 oname의 값을 가지는 컬럼을 생성합니다. |
| okind | okind 컬럼의 이름을 설정하여 okind 값에 대응되는 okind name의 값을 가지는 컬럼을 생성합니다. |
| onode | onode 컬럼의 이름을 설정하여 onode 값에 대응되는 onode name의 값을 가지는 컬럼을 생성합니다. |
-
value속성을 설정하는 경우CATEGORY app_counter
TAGLOAD
CREATE {key:active$, value:'#'} -
from속성을 설정하는 경우CATEGORY app_counter
TAGLOAD
CREATE {key:_id_, from:okind } -
expr속성을 설정하는 경우CATEGORY app_counter
TAGLOAD
CREATE { key:apdex, expr:" (apdex_satisfied(apdex_tolerated*0.5))/apdex_total " } -
okind속성을 설정하는 경우CATEGORY agent_list
FLEXLOAD
CREATE { key : my_okind_name, okind : okind}
SELECT [ time, okind, okindName, my_okind_name]