Flow Service API를 사용하여 소스에 대한 행 수준 데이터 필터링
Flow Service API를 사용하여 소스에 대한 행 수준 데이터를 필터링하는 방법에 대한 단계는 이 안내서를 참조하십시오.
시작하기
이 자습서를 사용하려면 Adobe Experience Platform의 다음 구성 요소를 잘 알고 있어야 합니다.
Platform API 사용
Platform API를 성공적으로 호출하는 방법에 대한 자세한 내용은 Platform API 시작에 대한 안내서를 참조하십시오.
소스 데이터 필터링 filter-source-data
다음은 소스에 대한 행 수준 데이터를 필터링하기 위해 수행해야 하는 단계입니다.
연결 사양 검색 retrieve-your-connection-specs
소스에 대한 행 수준 데이터를 필터링하는 첫 번째 단계는 소스의 연결 사양을 검색하고 소스가 지원하는 연산자 및 언어를 결정하는 것입니다.
지정된 소스의 연결 사양을 검색하려면 Flow Service API의 /connectionSpecs
끝점에 대한 GET 요청을 만들고 소스의 속성 이름을 쿼리 매개 변수의 일부로 제공합니다.
API 형식
GET /connectionSpecs/{QUERY_PARAMS}
{QUERY_PARAMS}
name
속성을 적용하고 검색에서 "google-big-query"
을(를) 지정하여 Google BigQuery 연결 사양을 검색할 수 있습니다.다음 요청은 Google BigQuery의 연결 사양을 검색합니다.
code language-shell |
---|
|
성공한 응답은 지원되는 쿼리 언어 및 논리 연산자에 대한 정보를 포함하여 Google BigQuery의 상태 코드 200과 연결 사양을 반환합니다.
code language-json |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 layout-auto | |
---|---|
속성 | 설명 |
attributes.filterAtSource.enabled |
쿼리된 원본이 행 수준 데이터 필터링을 지원하는지 여부를 결정합니다. |
attributes.filterAtSource.queryLanguage |
쿼리된 원본에서 지원하는 쿼리 언어를 결정합니다. |
attributes.filterAtSource.logicalOperators |
소스에 대한 행 수준 데이터를 필터링하는 데 사용할 수 있는 논리 연산자를 결정합니다. |
attributes.filterAtSource.comparisonOperators |
소스에 대해 행 수준 데이터를 필터링하는 데 사용할 수 있는 비교 연산자를 결정합니다. 비교 연산자에 대한 자세한 내용은 아래 표를 참조하십시오. |
attributes.filterAtSource.columnNameEscapeChar |
열을 이스케이프 처리하는 데 사용할 문자를 결정합니다. |
attributes.filterAtSource.valueEscapeChar |
SQL 쿼리를 작성할 때 값을 묶는 방법을 결정합니다. |
비교 연산자 comparison-operators
==
!=
<
>
<=
>=
like
WHERE
절에 사용되어 필터링합니다.in
수집을 위한 필터링 조건 지정 specify-filtering-conditions-for-ingestion
소스에서 지원하는 논리 연산자 및 쿼리 언어를 식별한 후에는 Profile Query Language(PQL)를 사용하여 소스 데이터에 적용할 필터링 조건을 지정할 수 있습니다.
아래 예에서는 매개 변수로 나열된 노드 유형에 대해 제공된 값과 동일한 선택 데이터에만 조건이 적용됩니다.
{
"type": "PQL",
"format": "pql/json",
"value": {
"nodeType": "fnApply",
"fnName": "=",
"params": [
{
"nodeType": "fieldLookup",
"fieldName": "city"
},
{
"nodeType": "literal",
"value": "DDN"
}
]
}
}
데이터 미리 보기 preview-your-data
filters
을(를) 쿼리 매개 변수의 일부로 제공하고 Base64에서 PQL 입력 조건을 지정하는 동안 Flow Service API의 /explore
끝점에 GET 요청을 하여 데이터를 미리 볼 수 있습니다.
API 형식
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=table&object={TABLE_PATH}&preview=true&filters={FILTERS}
{BASE_CONNECTION_ID}
{TABLE_PATH}
{FILTERS}
code language-shell |
---|
|
성공적인 응답은 데이터의 내용과 구조를 반환합니다.
code language-json |
---|
|
필터링된 데이터에 대한 소스 연결 만들기
소스 연결을 만들고 필터링된 데이터를 수집하려면 /sourceConnections
끝점에 대한 POST 요청을 만들고 요청 본문 매개 변수에 필터링 조건을 제공합니다.
API 형식
POST /sourceConnections
다음 요청은 city
= DDN
인 test1.fasTestTable
에서 데이터를 수집하기 위한 원본 연결을 만듭니다.
code language-shell |
---|
|
성공한 응답은 새로 만든 원본 연결의 고유 식별자(id
)를 반환합니다.
code language-json |
---|
|
Marketo Engage에 대한 활동 엔터티 필터링 filter-for-marketo
Marketo Engage 소스 커넥터를 사용할 때 행 수준 필터링을 사용하여 활동 엔터티를 필터링할 수 있습니다. 현재 활동 엔티티와 표준 활동 유형에 대해서만 필터링할 수 있습니다. 사용자 지정 활동은 Marketo 필드 매핑에서 계속 관리됩니다.
Marketo 표준 활동 유형 marketo-standard-activity-types
다음 표에서는 Marketo의 표준 활동 유형에 대해 설명합니다. 이 표를 필터링 기준에 대한 참조로 사용하십시오.
Marketo 소스 커넥터를 사용할 때 표준 활동 엔터티를 필터링하려면 아래 단계를 따르십시오.
초안 데이터 흐름 만들기
먼저 Marketo 데이터 흐름을 만들고 초안으로 저장합니다. 초안 데이터 흐름을 만드는 방법에 대한 자세한 단계는 다음 설명서를 참조하십시오.
데이터 흐름 ID 검색
초안 데이터 흐름이 있는 경우 해당 ID를 검색해야 합니다.
UI에서 소스 카탈로그로 이동한 다음 상단 헤더에서 데이터 흐름 을 선택합니다. 상태 열을 사용하여 초안 모드로 저장된 모든 데이터 흐름을 식별한 다음 데이터 흐름의 이름을 선택합니다. 그런 다음 오른쪽의 속성 패널을 사용하여 데이터 흐름 ID를 찾습니다.
데이터 흐름 세부 정보 검색
다음으로, 데이터 흐름 세부 정보, 특히 데이터 흐름과 연관된 소스 연결 ID를 검색해야 합니다. 데이터 흐름 세부 정보를 검색하려면 /flows
끝점에 대한 GET 요청을 만들고 데이터 흐름 ID를 경로 매개 변수로 제공하십시오.
API 형식
GET /flows/{FLOW_ID}
{FLOW_ID}
다음 요청은 데이터 흐름 ID a7e88a01-40f9-4ebf-80b2-0fc838ff82ef
에 대한 정보를 검색합니다.
code language-shell |
---|
|
성공한 응답은 해당 소스 및 타겟 연결에 대한 정보를 포함하여 데이터 흐름 세부 정보를 반환합니다. 데이터 흐름을 게시하려면 소스 및 타겟 연결 ID가 나중에 필요하므로 이 값을 적어 두어야 합니다.
code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26 |
---|
|
소스 연결 세부 정보 검색
그런 다음 소스 연결 ID를 사용하고 /sourceConnections
끝점에 대한 GET 요청을 하여 소스 연결 세부 정보를 검색합니다.
API 형식
GET /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
성공한 응답은 소스 연결의 세부 정보를 반환합니다. 소스 연결을 업데이트하려면 다음 단계에서 이 값이 필요하므로 버전을 참고하십시오.
code language-json line-numbers data-start-1 data-line-offset-4 h-30 |
---|
|
필터링 조건으로 소스 연결 업데이트
이제 소스 연결 ID와 해당 버전이 있으므로 표준 활동 유형을 지정하는 필터 조건으로 PATCH 요청을 수행할 수 있습니다.
원본 연결을 업데이트하려면 /sourceConnections
끝점에 PATCH 요청을 하고 원본 연결 ID를 쿼리 매개 변수로 제공하세요. 또한 If-Match
헤더 매개 변수를 해당 소스 연결 버전과 함께 제공해야 합니다.
If-Match
헤더가 필요합니다. 이 헤더의 값은 업데이트하려는 데이터 흐름의 고유한 버전/태그입니다. 버전/etag 값은 데이터 흐름이 성공적으로 업데이트될 때마다 업데이트됩니다.API 형식
PATCH /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
성공적인 응답은 소스 연결 ID 및 etag(버전)를 반환합니다.
code language-json |
---|
|
소스 연결 Publish
이제 소스 연결이 필터링 조건으로 업데이트되어 초안 상태에서 이동하고 소스 연결을 게시할 수 있습니다. 이렇게 하려면 /sourceConnections
끝점에 POST 요청을 하고 초안 원본 연결의 ID와 게시를 위한 작업 작업을 제공합니다.
API 형식
POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
{SOURCE_CONNECTION_ID}
op
op
을(를) publish
(으)로 설정하십시오.다음 요청은 초안 소스 연결을 게시합니다.
code language-shell |
---|
|
성공적인 응답은 소스 연결 ID 및 etag(버전)를 반환합니다.
code language-json |
---|
|
target 연결 Publish
이전 단계와 마찬가지로 대상 연결도 게시해야 초안 데이터 흐름을 진행하고 게시할 수 있습니다. /targetConnections
끝점에 대한 POST 요청을 만들고 게시하려는 초안 대상 연결의 ID와 게시를 위한 작업 작업을 제공합니다.
API 형식
POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
{TARGET_CONNECTION_ID}
op
op
을(를) publish
(으)로 설정하십시오.다음 요청은 ID가 7e53e6e8-b432-4134-bb29-21fc6e8532e5
인 대상 연결을 게시합니다.
code language-shell |
---|
|
성공적인 응답은 게시된 타겟 연결에 대한 ID 및 해당 etag를 반환합니다.
code language-json |
---|
|
데이터 흐름 Publish
이제 소스 및 타겟 연결이 모두 게시된 상태에서 마지막 단계로 진행하여 데이터 흐름을 게시할 수 있습니다. 데이터 흐름을 게시하려면 /flows
끝점에 POST 요청을 만들고 게시할 데이터 흐름 ID와 작업 작업을 제공하십시오.
API 형식
POST /flows/{FLOW_ID}/action?op=publish
{FLOW_ID}
op
op
을(를) publish
(으)로 설정하십시오.다음 요청은 초안 데이터 흐름을 게시합니다.
code language-shell |
---|
|
성공적인 응답은 ID와 데이터 흐름의 해당 etag
을(를) 반환합니다.
code language-json |
---|
|
Experience Platform UI를 사용하여 초안 데이터 흐름이 게시되었는지 확인할 수 있습니다. 소스 카탈로그의 데이터 흐름 페이지로 이동하고 데이터 흐름의 상태 를 참조하십시오. 성공하면 이제 상태가 활성화됨(으)로 설정됩니다.
- 필터링이 활성화된 데이터 흐름은 한 번만 다시 채워집니다. 필터링 기준에서 수행하는 의 모든 변경 사항(추가 또는 제거)은 증분 데이터에만 적용할 수 있습니다.
- 새 활동 유형에 대한 내역 데이터를 수집해야 하는 경우 새 데이터 흐름을 만들고 필터 조건에 적절한 활동 유형을 사용하여 필터링 기준을 정의하는 것이 좋습니다.
- 사용자 지정 활동 유형을 필터링할 수 없습니다.
- 필터링된 데이터는 미리 볼 수 없습니다.
부록
이 섹션에서는 필터링에 대한 다양한 페이로드의 추가 예를 제공합니다.
단일 조건
조건이 하나만 필요한 시나리오의 경우 초기 fnApply
을(를) 생략할 수 있습니다.
code language-json |
---|
|
in
연산자 사용
in
연산자의 예제를 보려면 아래 샘플 페이로드를 참조하십시오.
code language-json |
---|
|
isNull
연산자 사용
isNull
연산자의 예제를 보려면 아래 샘플 페이로드를 참조하십시오.
code language-json |
---|
|
NOT
연산자 사용
NOT
연산자의 예제를 보려면 아래 샘플 페이로드를 참조하십시오.
code language-json |
---|
|
중첩된 조건이 있는 예
복잡한 중첩 조건의 예는 아래의 샘플 페이로드를 참조하십시오.
code language-json |
---|
|