데이터 모델 모범 사례 data-model-best-practices

이 문서에서는 Adobe Campaign 데이터 모델을 디자인하는 동안 주요 권장 사항에 대해 간략하게 설명합니다.

Adobe Campaign 시스템은 매우 유연하며 초기 구현 이상으로 확장할 수 있습니다. 그러나 가능성은 무한하지만 현명한 결정을 내리고 데이터 모델 디자인을 시작하기 위한 강력한 기반을 구축하는 것이 중요합니다.

Campaign 기본 제공 표와 표 간의 관계를 더 잘 이해하려면 이 섹션을 참조하세요.

Campaign 스키마를 시작하려면 이 섹션을(를) 읽으십시오.

이 페이지에서 Adobe Campaign 데이터베이스의 개념 데이터 모델을 확장하기 위해 확장 스키마를 구성하는 방법을 알아봅니다.

데이터 모델 아키텍처 data-model-architecture

Adobe Campaign은 개인화된 고객 경험을 구축하기 위해 온라인 및 오프라인 전략을 연계할 수 있는 강력한 크로스채널 캠페인 관리 시스템입니다.

고객 중심 접근 방식 customer-centric-approach

대부분의 이메일 서비스 공급자는 목록 중심 접근 방식을 통해 고객과 통신하고 있지만 Adobe Campaign은 고객 및 해당 속성에 대한 광범위한 보기를 활용하기 위해 관계형 데이터베이스를 사용합니다.

각 테이블의 설명에 액세스하려면 Admin > Configuration > Data schemas(으)로 이동하여 목록에서 리소스를 선택하고 Documentation 탭을 클릭하십시오.

NOTE
Adobe Campaign에서 사용자 지정 받는 사람 테이블을 만들 수 있습니다. 그러나 대부분의 경우 이미 사전 빌드된 추가 테이블 및 기능이 있는 기본 제공 받는 사람 테이블을 활용하는 것이 좋습니다.

Adobe Campaign용 데이터 data-for-campaign

Adobe Campaign에 전송해야 하는 데이터는 무엇입니까? 마케팅 활동에 필요한 데이터를 결정하는 것이 중요합니다.

NOTE
Adobe Campaign은 data warehouse도 보고 도구도 아닙니다. 따라서 가능한 모든 고객 및 관련 정보를 Adobe Campaign으로 가져오거나 보고서를 작성하는 데만 사용할 데이터를 가져오지 마십시오.

Adobe Campaign에서 속성이 필요한지 여부를 결정하려면 다음 범주 중 하나에 해당하는지 자문하십시오.

  • 세그멘테이션 ​에 사용되는 특성
  • 데이터 관리 프로세스 ​에 사용되는 특성(예: 집계 계산)
  • 개인화 ​에 사용되는 특성

이러한 속성에 해당하지 않으면 Adobe Campaign에서 이 속성이 필요하지 않을 가능성이 높습니다.

데이터 유형 선택 data-types

시스템의 우수한 아키텍처 및 성능을 보장하려면 아래 모범 사례에 따라 Adobe Campaign에서 데이터를 설정하십시오.

  • 큰 테이블 내에서 문자열 또는 숫자 필드를 삽입하고 참조 테이블에 링크를 추가할 수 있습니다(값 목록 작업 시).
  • expr 특성을 사용하면 스키마 특성을 테이블의 실제 집합 값이 아닌 계산된 필드로 정의할 수 있습니다. 이렇게 하면 두 값을 모두 저장하지 않고도 다른 형식(예: 연령 및 생년월일)으로 정보에 액세스할 수 있습니다. 이는 필드가 중복되지 않도록 하는 좋은 방법입니다. 예를 들어 수신자 테이블은 이메일 필드에 이미 있는 도메인에 대한 표현식을 사용합니다.
  • 그러나 식 계산이 복잡한 경우에는 expr 특성을 사용하지 않는 것이 좋습니다. 즉석 계산이 쿼리 성능에 영향을 줄 수 있기 때문입니다.
  • XML 형식은 너무 많은 필드를 만들지 않는 좋은 방법입니다. 그러나 데이터베이스의 CLOB 열을 사용하므로 디스크 공간도 차지합니다. 또한 복잡한 SQL 쿼리가 발생할 수 있으며 성능에 영향을 줄 수 있습니다.
  • 문자열 필드의 길이는 항상 열을 사용하여 정의해야 합니다. 기본적으로 Adobe CampaignAdobe 의 최대 길이는 16K이지만, 크기가 더 짧은 길이를 초과하지 않는다는 것을 이미 알고 있는 경우에는 필드를 더 짧게 유지하는 것이 좋습니다.
  • 소스 시스템의 크기가 과대평가되어 도달하지 않을 것이 확실한 경우 Adobe Campaign에서 소스 시스템보다 더 짧은 필드를 가질 수 있습니다. 이는 Adobe Campaign에서 더 짧은 문자열 또는 더 작은 정수를 의미할 수 있습니다.

필드 선택 choice-of-fields

필드는 타겟팅 또는 개인화 목적이 있는 경우 표에 저장해야 합니다. 즉, 필드가 개인화된 이메일을 보내는 데 사용되지 않거나 쿼리의 기준으로 사용되지 않으면 불필요하게 디스크 공간이 사용됩니다.

키 선택 choice-of-keys

대부분의 테이블에서 기본적으로 정의된 autuuidautopk 외에 일부 논리 또는 비즈니스 키(계정 번호, 클라이언트 번호 등)를 추가하는 것이 좋습니다. 나중에 가져오기/조정 또는 데이터 패키지에 사용할 수 있습니다. 자세한 내용은 식별자를 참조하세요.

효율적인 키는 성능을 위해 필수적입니다. Snowflake을 사용하면 숫자 또는 문자열 기반 데이터 유형을 표의 키로 삽입할 수 있습니다.

NOTE
autuuid 특성은 엔터프라이즈(FFDA) 배포에만 적용됩니다.

식별자 identifiers

Adobe Campaign 리소스에는 세 개의 식별자가 있으며, 식별자를 더 추가할 수 있습니다.

다음 표에서는 이러한 식별자 및 해당 목적에 대해 설명합니다.

식별자
설명
모범 사례
ID
  • ID는 Adobe Campaign 테이블의 물리적 기본 키입니다. 기본 제공 테이블의 경우 UUID(범용 고유 ID)입니다
  • 이 식별자는 고유해야 합니다.
  • 스키마 정의에 UUID를 표시할 수 있습니다.
  • 자동 생성된 식별자는 워크플로우 또는 패키지 정의에서 참조로 사용할 수 없습니다.
  • 테이블의 ID는 UUID이며 이 유형을 변경해서는 안 됩니다.
이름(또는 내부 이름)
  • 이 정보는 테이블에 있는 레코드의 고유 식별자입니다. 이 값은 일반적으로 생성된 이름으로 수동으로 업데이트할 수 있습니다.
  • 이 식별자는 Adobe Campaign의 다른 인스턴스에 배포할 때 값을 유지하며 비워 둘 수 없습니다.
  • 객체가 환경에서 다른 환경으로 배포되는 경우 Adobe Campaign에서 생성된 레코드 이름의 이름을 바꿉니다.
  • 개체에 네임스페이스 특성(예: 스키마)이 있으면 이 공통 네임스페이스는 만들어진 모든 사용자 지정 개체에 활용됩니다. 예약된 네임스페이스 중 일부는 사용할 수 없습니다. nms, xtk 등 일부 네임스페이스는 내부용입니다. 자세히 알아보기.
  • 개체에 네임스페이스(workflow 또는 delivery)가 없으면 이 네임스페이스 개념이 내부 이름 개체 namespaceMyObjectName ​의 접두사로 추가됩니다.
  • 공백 " ", 반열 ":" 또는 하이픈 "-"와 같은 특수 문자는 사용하지 마십시오. 이 모든 문자는 밑줄 "_"(허용된 문자)로 대체됩니다. 예를 들어 "abc-def"와 "abc:def"는 "abc_def"로 저장되고 서로 덮어쓰기됩니다.
레이블
  • 레이블은 Adobe Campaign에 있는 개체 또는 레코드의 비즈니스 식별자입니다.
  • 이 개체에는 공백과 특수 문자가 허용됩니다.
  • 그것은 기록의 고유성을 보장하지 않는다.
  • 개체 레이블의 구조를 결정하는 것이 좋습니다.
  • 이는 Adobe Campaign 사용자의 레코드 또는 개체를 식별하는 가장 사용자 친화적인 솔루션입니다.

엔터프라이즈(FFDA) 배포의 컨텍스트에서 Adobe Campaign 기본 키는 모든 기본 제공 테이블에 대해 자동 생성된 UUID입니다. UUID는 사용자 지정 테이블에도 사용할 수 있습니다. 자세히 알아보기

ID 수가 무한대인 경우에도 최적의 성능을 보장하기 위해 데이터베이스의 크기를 고려해야 합니다. 문제를 방지하려면 인스턴스 제거 설정을 조정해야 합니다. 자세한 내용은 이 섹션을 참조하십시오.

사용자 정의 내부 키 custom-internal-keys

Adobe Campaign에서 만든 모든 테이블에 기본 키가 필요합니다.

대부분의 조직은 외부 시스템에서 레코드를 가져오고 있습니다. 수신자 테이블의 물리적 키는 "id" 속성이지만 사용자 지정 키를 결정할 수도 있습니다.

이 사용자 지정 키는 Adobe Campaign에 공급되는 외부 시스템의 실제 레코드 기본 키입니다.

사용자 지정 테이블을 만들 때는 두 가지 옵션이 있습니다.

  • 자동 생성 키(id)와 내부 키(사용자 지정)의 조합입니다. 이 옵션은 시스템 키가 복합 키이거나 정수가 아닌 경우에 유용합니다. Snowflake을 사용하면 정수 또는 문자열 기반 키가 큰 표에서 더 높은 성능을 제공하고 다른 표와 연결됩니다.
  • 기본 키를 외부 시스템 기본 키로 사용. 이 솔루션은 서로 다른 시스템 간에 일관된 키를 사용하여 데이터를 가져오고 내보내는 접근 방식을 단순화하기 때문에 일반적으로 선호됩니다. 키 이름이 "id"이고 외부 값으로 채워야 하는 경우 Autuuid ​을(를) 비활성화해야 합니다(자동 생성되지 않음).
CAUTION

큰 테이블에 "자신의" 무결성을 주의하십시오. "고유" 무결성의 큰 테이블이 있는 레코드를 삭제하면 인스턴스가 중지될 수 있습니다. 테이블이 잠기고 삭제 작업이 하나씩 수행됩니다. 따라서 볼륨이 큰 하위 테이블에 대해 "중립" 무결성을 사용하는 것이 가장 좋습니다.

링크를 외부 조인으로 선언하는 것은 성능에 좋지 않습니다. 제로 ID 레코드는 외부 조인 기능을 에뮬레이션합니다. 엔터프라이즈(FFDA) 배포의 컨텍스트에서는 링크가 autuuid ​을(를) 사용하는 경우 외부 조인을 선언할 필요가 없습니다.

Adobe 워크플로우의 모든 테이블을 조인할 수 있지만 데이터 구조 정의에서 직접 리소스 간의 공통 링크를 정의하는 것이 좋습니다.

링크는 표의 실제 데이터에 맞추어 정의해야 합니다. 잘못된 정의는 예기치 않게 레코드를 복제하는 것과 같이 링크를 통해 검색된 데이터에 영향을 줄 수 있습니다.

링크 이름을 테이블 이름으로 일관되게 지정합니다. 링크 이름은 떨어진 테이블이 무엇인지 이해하는 데 도움이 됩니다.

"id"가 있는 링크의 이름을 접미사로 지정하지 마십시오. 예를 들어 이름을 "transactionId"가 아닌 "transaction"으로 지정합니다.

기본적으로 Adobe Campaign은 외부 테이블의 기본 키를 사용하여 링크를 만듭니다. 좀 더 명확하게 하기 위해, 링크 정의에서 조인을 명시적으로 정의하는 것이 바람직하다.

카디널리티 cardinality

링크를 디자인할 때는 1-1 관계가 선언되었을 때 대상 레코드가 고유한지 확인합니다. 그렇지 않으면 가입이 하나만 예상될 때 여러 레코드를 반환할 수 있습니다. 이로 인해 "쿼리가 예상보다 많은 행을 반환합니다"가 발생할 경우 게재 준비 중에 오류가 발생합니다. 링크 이름을 대상 스키마와 동일한 이름으로 설정합니다.

(N) 측의 스키마에 카디널리티(1-N)가 있는 링크를 정의합니다. 예를 들어 수신자 (1) - (N) 트랜잭션 관계는 트랜잭션 스키마에서 정의되어야 합니다.

링크의 역카디널리티는 기본적으로 (N)입니다. 링크 정의에 revCardinality='single' 속성을 추가하여 링크(1-1)를 정의할 수 있습니다.

역방향 링크가 사용자에게 표시되지 않아야 하는 경우 링크 정의 revLink='없음'을 사용하여 숨길 수 있습니다. 이에 대한 유용한 사용 사례는 수신자로부터 예를 들어 완료된 마지막 거래로의 링크를 정의하는 것입니다. 수신자에서 마지막 트랜잭션으로의 링크만 표시하면 되며, 트랜잭션 테이블에서 역방향 링크를 볼 필요는 없습니다.

외부 조인(1-0…1)을 수행하는 링크는 시스템 성능에 영향을 주므로 주의하여 사용해야 합니다.

데이터 유지 data-retention

Adobe Campaign은 data warehouse도 보고 도구도 아닙니다. 따라서 Adobe Campaign 솔루션의 성능을 향상시키려면 데이터베이스 증가를 제어해야 합니다. 이를 위해 아래의 몇 가지 모범 사례를 따르는 것이 도움이 될 수 있습니다.

보존과 관련하여 Campaign의 기본 로그인 로그 테이블에는 사전 설정된 보존 기간이 있으며 일반적으로 데이터 저장소를 6개월 이내로 제한합니다.

기본 제공 테이블에 대한 기본 보존 값은 다음과 같습니다. 보존 구성은 구현 중에 Adobe 기술 관리자가 설정하며 고객 요구 사항에 따라 각 구현마다 값이 달라질 수 있습니다.

  • 통합 추적: 1년
  • 게재 로그: 6개월
  • 추적 로그: 1년
  • 삭제된 게재: 1주
  • 가져오기 거부: 6개월
  • 방문자 프로필: 1개월
  • 오퍼 제안: 1년
  • 이벤트: 1개월
  • 이벤트 처리 통계: 1개월
  • 보관된 이벤트: 1년
  • 파이프라인 이벤트 무시: 1개월
CAUTION
사용자 정의 테이블은 표준 정리 프로세스에서 삭제되지 않습니다. 첫날에는 이 작업이 필요하지 않지만 사용자 정의 테이블에 대한 제거 프로세스를 빌드하는 것을 잊지 마십시오. 이렇게 하면 성능에 문제가 발생할 수 있습니다.

Adobe Campaign에서 레코드의 필요성을 최소화하는 몇 가지 솔루션이 있습니다.

  • Adobe Campaign 외부의 데이터 웨어하우스에서 데이터를 내보냅니다.
  • 마케팅 사례에 충분한 공간을 사용하면서도 더 적은 공간을 사용할 집계된 값을 생성합니다. 예를 들어 마지막 구매를 추적하기 위해 Adobe Campaign의 전체 고객 거래 내역이 필요하지 않습니다.

스키마에서 "deleteStatus" 속성을 선언할 수 있습니다. 레코드를 삭제된 것으로 표시한 다음 정리 작업에서 삭제를 연기하는 것이 더 효율적입니다.

관리 Cloud Service 사용자는 Adobe 컨설턴트 또는 기술 관리자에게 문의하여 보존에 대한 자세한 내용을 확인하거나 사용자 지정 테이블에 대한 보존을 설정해야 합니다.

성능 performance

언제든지 더 나은 성능을 보장하기 위해 아래의 모범 사례를 따르십시오.

일반 권장 사항 general-recommendations

  • 쿼리에 "CONTAINS"와 같은 작업을 사용하지 마십시오. 예상되는 항목을 알고 필터링하려는 경우 "EQUAL TO" 또는 다른 특정 필터 연산자와 함께 동일한 조건을 적용합니다.
  • 업무 시간 외에 가져오기 및 내보내기 등의 프로세스가 수행되는지 확인하십시오.
  • 모든 일상 활동에 대한 일정이 있는지 확인하고 일정을 준수합니다.
  • 일별 프로세스 중 하나 또는 일부가 실패하고 해당 날짜에 실행해야 하는 경우, 시스템 성능에 영향을 줄 수 있으므로 수동 프로세스를 시작할 때 충돌하는 프로세스가 실행되고 있지 않은지 확인하십시오.
  • 가져오기 프로세스 중에 또는 수동 프로세스가 실행될 때 일일 캠페인이 실행되지 않도록 하십시오.
  • 모든 행에 필드를 복제하지 않고 하나 또는 여러 참조 테이블을 사용합니다. 키/값 쌍을 사용할 때 숫자 키를 선택하는 것이 좋습니다.
  • 짧은 문자열을 사용할 수 있습니다. 참조 테이블이 외부 시스템에 이미 있는 경우 이를 재사용하면 Adobe Campaign과의 데이터 통합이 용이해집니다.

일대다 관계 one-to-many-relationships

  • 데이터 설계는 유용성과 기능에 영향을 줍니다. 일대다 관계가 많은 데이터 모델을 디자인하는 경우 사용자가 애플리케이션에서 의미 있는 논리를 구성하는 것이 더 어려워집니다. 일대다 필터 논리는 기술 전문가가 아닌 마케터가 올바르게 구성하고 이해하기 어려울 수 있습니다.
  • 사용자가 쿼리를 더 쉽게 작성할 수 있도록 하기 때문에 모든 필수 필드를 한 테이블에 포함하는 것이 좋습니다. 때로는 조인을 방지할 수 있는 경우 테이블 간에 일부 필드를 복제하는 것이 성능에도 좋습니다.
  • 특정 기본 제공 기능은 일대다 관계(예: 오퍼 가중치 공식 및 게재)를 참조할 수 없습니다.

큰 테이블 large-tables

Adobe Campaign은 타사 데이터베이스 엔진을 사용합니다. 공급업체에 따라 큰 표에 대해 성능을 최적화하려면 특정 디자인이 필요할 수 있습니다.

다음은 큰 테이블과 복잡한 조인을 사용하여 데이터 모델을 디자인할 때 따라야 할 몇 가지 일반적인 모범 사례입니다.

  • 추가 사용자 지정 수신자 테이블을 사용할 때는 각 게재 매핑에 대한 전용 로그 테이블이 있는지 확인하십시오.
  • 특히 사용되지 않는 열을 식별하여 열의 수를 줄입니다.
  • 여러 조건 및/또는 여러 열의 조인과 같은 복잡한 조인을 방지하여 데이터 모델 관계를 최적화합니다.
  • 조인 키의 경우 숫자 또는 문자열 기반 값을 사용할 수 있습니다.
  • 로그 보존의 깊이를 최대한 줄일 수 있습니다. 더 자세한 기록이 필요한 경우 계산을 집계하거나 사용자 지정 로그 테이블을 처리하여 더 큰 기록을 저장할 수 있습니다.

표 크기 size-of-tables

테이블 크기는 레코드 수와 레코드당 열 수의 조합입니다. 둘 다 쿼리 성능에 영향을 줄 수 있습니다.

  • 작은 크기 테이블은 배달 테이블과 유사합니다.
  • 보통 크기 테이블은 받는 사람 테이블의 크기와 동일합니다. 고객당 하나의 기록이 있습니다.
  • 큰 크기 테이블은 Broad 로그 테이블과 유사합니다. 고객당 많은 레코드가 있습니다.
    예를 들어 데이터베이스에 1천만 명의 수신자가 포함되어 있는 경우 브로드 로그 테이블에는 약 1억 ~ 2억 개의 메시지가 포함되어 있으며 게재 테이블에는 수천 개의 레코드가 포함되어 있습니다.

행 수는 성능에도 영향을 줍니다. Adobe Campaign 데이터베이스는 타기팅 또는 개인화 목적으로 활발하게 사용되지 않는 기록 데이터를 저장하도록 설계되지 않았습니다. 이것은 작업 데이터베이스입니다.

행 수가 많은 것과 관련된 성능 문제를 방지하려면 데이터베이스에 필요한 레코드만 보관하십시오. 다른 모든 레코드는 타사 데이터 웨어하우스로 내보내고 Adobe Campaign 운영 데이터베이스에서 제거해야 합니다.

다음은 테이블 크기와 관련된 몇 가지 모범 사례입니다.

  • 적은 필드와 더 많은 숫자 데이터로 큰 테이블을 디자인합니다.
  • 큰 숫자 유형의 열을 사용하여 부울 값과 같은 작은 숫자를 저장하지 마십시오.
  • 테이블 정의에서 사용되지 않는 열을 제거합니다.
  • Adobe Campaign 데이터베이스에 이전 데이터나 비활성 데이터를 유지하지 마십시오(내보내기 및 정리).
recommendation-more-help
35662671-8e3d-4f04-a092-029a056c566b