캠페인: 데이터베이스 쿼리가 간헐적으로 매우 느림

이 문서에서는 Databricks FDA를 사용하여 긴 워크플로 쿼리의 시간 제한을 완화하는 방법에 대해 설명합니다.

설명 description

고객이 워크플로 쿼리에 Databricks FDA를 사용하고 있으며 쿼리가 간헐적으로 매우 느리고 1시간 제한(1시간 후 OAuth 토큰 만료 결과)으로 인해 실패했습니다. 워크플로우 로그에 메시지가 표시됨:

ODB-240000 ODBC 오류: [ Simba] [ Hardy] (115) 연결 실패. 오류: Unauthorized/Forbidden 오류 응답이 반환되었지만 토큰 만료 메시지가 수신되지 않음 SQLState: 08S01

ODB-240000 ODBC 오류: 인증 토큰이 만료되었습니다.  사용자를 다시 인증해야 합니다. SQLState: 08001

해결 방법 resolution

만료 자체는 Campaign 워크플로우 설정 또는 serverConf.xml 구성 파일에 의해 제어되지 않습니다. 이 설정에서 ACC는 nmsaccountName의 OAuth를 사용하여 Simba ODBC 드라이버를 통해 데이터 베이스에 연결합니다. 오래 지속되는 자격 증명/앱 암호는 2031년까지 유효할 수 있지만, ODBC 연결에 대해 발급된 액세스 토큰의 수명은 일반적으로 60분으로 훨씬 짧을 수 있습니다.

완화 옵션:

  • Databricks 관리자는 Adobe Campaign에서 사용하는 OAuth 앱/통합을 검토하고 액세스 토큰 TTL을 늘릴 수 있습니다. 예를 들어 access_token_ttl_in_minutes와 같은 Databricks OAuth 토큰 액세스 정책을 업데이트합니다. 이는 고객/Databricks 관리자가 수행해야 하며, 오래 지속되는 액세스 토큰은 누출될 경우 노출을 증가시키므로 보안 정책을 따라야 합니다.
  • 토큰 정책을 변경한 후 Databricks 측에서 전파 시간을 허용하고 새 ACC/ODBC 연결로 다시 테스트하십시오. 기존의 열린 연결은 정책을 변경하기 전에 발급된 이전 토큰을 계속 사용할 수 있습니다.
  • 각 개별 DBX SQL 문이 토큰 수명 아래에서 완료되도록 ACC 워크플로우 쿼리를 분할하거나 최적화합니다. 이는 오류 창만 확장하는 대신 간헐적으로 느려지거나 큐에 있는 DBX 실행도 해결하므로 보다 안전하고 선호되는 완화 방법입니다.
  • Databricks 측에서 느린 실행에 대한 SQL Warehouse 쿼리 기록을 확인하고 웨어하우스/쿼리 경로(예: 쿼리 시간, 동시성, 크기 조정/최대 클러스터, 콜드 스타트, 쿼리 계획, 테이블 통계/레이아웃 및 술어/조인에 대한 데이터 볼륨)를 조정합니다.
  • 고객이 OAuth 액세스 토큰 수명보다 오래 합법적으로 실행할 수 있는 DBX SQL 문을 필요로 하는 경우 ODBC 드라이버에서 사용하는 OAuth 모드가 해당 구성에서 장기 실행/열기 문에 대한 토큰 새로 고침을 지원하는지 여부를 Databricks/Simba로 확인해야 합니다. 그렇지 않은 경우 토큰 TTL을 늘리거나 다른 지원되는 인증 모드를 사용해야 할 수 있습니다.

따라서 실질적인 단기 완화 방법은 ACC 통합을 위한 Databricks OAuth 액세스 토큰 TTL을 증가시키는 반면 장기 수정 방법은 DBX 쿼리 런타임/큐잉을 줄여 워크플로우가 매우 오래 실행되는 SQL 호출을 유지하는 토큰에 의존하지 않도록 하는 것입니다.

recommendation-more-help
experience-cloud-kcs-help-kbarticles