# 모델 검색 API
이 문서는 TA의 고급 사용 기능을 설명하며, 여러 기술에 대한 자세한 정보를 포함하고 관련 기능에 익숙한 사용자를 위한 참고 자료입니다. 이 문서에 대한 질문이 있는 경우 씽킹데이터 매니저에게 문의하여 일대일 지원을 받으시길 바랍니다. 모델 쿼리 API는 주로 다양한 데이터 분석 리포트를 얻는 데 사용됩니다. 호출 방법에 대한 설명은 Open API를 참조하십시오.
# 1. 일반 파라미터
# 속성 표현
거의 모든 API는 속성을 사용합니다. 예를 들어, 특정 속성에 기반한 필터링, 그룹화 또는 집계를 수행합니다. 속성은 일반적으로 이름과 테이블 유형이라는 두 가지 필드로 표현되며, 이벤트 속성, 유저 속성, 유저 코호트 속성으로 나눌 수 있습니다. 예를 들어, 'province'를 설명하는 이벤트 속성 표현은 다음과 같습니다: #province
.
{
"tableType":"event",
"columnName":"#province"
}
유저 속성이 유사합니다. 예를 들어, 사용 레벨(user_level)을 나타냅니다:
{
"tableType":"user",
"columnName":"user_level"
}
# 필터 표현
필터링 표현은 대부분의 API에 적용 가능하며, 특정 이벤트나 유저의 필터링 작업을 설명하는 데 사용할 수 있습니다. JSON 표현은 다음과 같습니다:
{
// Indicates whether the conditions in filters are'or'or'and'.
"relation": "and",
// Specific condition list, you can have more than one
"filts": [{
// The left value of the condition is an attribute
"tableType":"event",
"columnName": "#os",
// A comparator of conditions, which means equal to
"comparator": "equal",
// A comparison value of a condition that can have one or more comparisons depending on the comparator
"ftv": [
"ios"
]
},
{
"tableType":"user",
"columnName":"user_level",
"comparator": "equal",
"ftv": [
"5"
]
}]
}
현재 지원되는 연산자는 다음과 같습니다:
- equal / notEqual
문자열과 숫자 타입에 대해 같음/다름을 의미합니다. 여러 ftvs가 있는 경우 In 또는 Not In을 의미합니다. 예를 들어, 레벨 3과 레벨 5의 유저를 필터링하려면 다음과 같이 합니다:
{
"tableType":"user",
"columnName":"user_level",
"comparator": "equal",
"ftv": ["3","5"]
}
- isTrue / isFalse
Boolean 타입에만 유효합니다.
- isNull / notNull
속성에 값이 있는지 여부를 나타냅니다. 문자열 및 숫자 타입에 유효합니다.
- include / notInclude
하위 문자열이 포함되었는지 여부를 나타냅니다:
{
"tableType":"user",
"columnName":"channel",
"comparator": "include",
"ftv": ["Application treasure "]
}
Less/greater/range : 미만/초과/범위를 의미하며, 그 중 range는 좌측 닫힌 구간과 우측 닫힌 구간 사이의 범위를 의미합니다. 숫자 타입 및 시간 타입에 유효합니다. 예를 들어, 남은 수량이 3에서 9 사이인 이벤트를 필터링하는 경우:
{
"tableType":"event",
"columnName":"count_left",
"comparator": "range",
"ftv": [3, 9]
}
또는 마지막 로그인 시간이 2019-11-13 00:00부터 2019-11-23 00:00 사이인 모든 유저를 필터링하려면 다음과 같이 합니다:
{
"tableType":"user",
"columnName":"latest_login_time",
"comparator": "range",
"ftv":["2019-11-13 00:00","2019-11-23 00:00"]
}
- regexMatch / notRegexMatch
정규식 일치 또는 비일치, 문자열 타입에만 유효합니다.
- relativeCurrentBetween / relativeCurrentBefore
날짜 타입 연산자는 현재 시간 이전 N일과 M일 사이 / 현재 시간 이전 N일 사이의 날짜를 나타냅니다. 예를 들어, 현재 시간 기준으로 등록 시간이 3일 전인 모든 유저를 필터링하려면 다음과 같이 합니다:
{
"tableType":"user",
"columnName":"register_time",
"comparator": "relativeCurrentBefore",
"ftv": [3]
}
또는 현재 시간 기준으로 등록 시간이 9일 또는 3일 전인 모든 유저를 필터링하려면 다음과 같이 합니다:
{
"tableType":"user",
"columnName":"register_time",
"comparator": "relativeCurrentBetween",
"ftv": [9, 3]
}
- relativeEventBefore / relativeEventAfter / relativeEventAbsolute
날짜 타입 연산자는 상대 이벤트 시간 이전 N 기간 / 상대 이벤트 시간 이후 N 기간 / 상대 이벤트 시간 이전 또는 이후 N 기간 내에 있는 날짜를 나타냅니다. 예를 들어, 이전 유저 로그인 시간이 상대 이벤트 시간 3시간 전인 이벤트를 필터링하려면 다음과 같이 합니다:
{
"tableType":"user",
"columnName":"latest_login_time",
"comparator": "relativeEventBefore",
"ftv": [3],
"timeUnit": "hour"
}
- arrayIncludeItem / arrayNotIncludeItem
리스트 타입의 연산자로, 리스트에 특정 요소가 포함되어 있는지 여부를 나타냅니다.
- arrayItemPos
리스트 타입의 연산자로, 리스트의 n번째 요소가 특정 값과 같은지 여부를 나타냅니다.
- arrayIsNull / arrayNotNull
리스트 타입의 연산자로, 리스트가 존재하는지 여부를 나타냅니다.
# 테이블 유형
- event
이벤트 테이블
- user
유저 테이블
- cluster
코호트/태그