Collaboration Data Clean Rooms 문제 해결
Collaboration Data Clean Rooms 문제 해결
기능 — 일반 공급(Generally Available)
현재 이 리전들에서 사용할 수 있어요. 정부 및 VPS 배포에서는 사용할 수 없어요.
Collaboration Data Clean Rooms로 작업할 때 오류가 발생하면 다음 문제 해결 팁을 참고하세요.
본문
협업(Collaborations)
오류: Pending invitation for collaboration: <collaboration name> not found — GET_STATUS이 계정을 INVITED로 표시함에도 불구하고.
원인: 초기 참여(join) 시도가 어떤 이유로 실패했다면, 이후 참여 시도도 이 이유로 실패할 가능성이 높아요.
해결 방법: 협업을 삭제하고 다시 생성하세요.
오류: 사용자가 만든 협업이 협업자의 계정에 표시되지 않음.
원인: 가능한 이유가 여러 가지가 있어요.
- 협업이 다른 클라우드 호스팅 리전에서 생성되었는데 크로스 클라우드 자동 이행을 활성화하지 않았어요.
- 협업을 공유하지 않았거나, 잘못된 계정과 공유했거나, Snowsight/SDCR UI/CLI에서 잘못된 협업자 계정을 열었어요. 협업이 표시될 것으로 기대하는 계정이 공유한 바로 그 계정인지, 그리고 해당 공유 계정에 로그인했는지 확인하세요.
- 협업을 게시한 후 협업자에게 표시되기까지 약간의 지연이 있어요.
해결 방법: 협업자의 계정이 협업 스펙의 계정과 일치하는지 확인하고, 필요하다면 크로스 클라우드 자동 이행이 활성화되어 있는지 확인하세요. 협업이 전파되도록 잠시 기다리세요.
오류: 데이터 프로바이더가 협업에 참여하려고 할 때 ReferenceUsageGrantMissingException: Reference usage grants are required for the following databases in your account ...
원인: 데이터 프로바이더는 협업에 참여하려고 할 때, REFERENCE_USAGE 권한이 없는 공유 데이터가 있을 때 이 메시지를 보게 돼요. 이는 예상된 동작이에요.
해결 방법: 오류 메시지에는 데이터베이스 이름과 공유 이름이 포함돼요. 데이터에 대한 REFERENCE_USAGE 권한이 있는 사람 또는 ACCOUNTADMIN이 오류 메시지에 제공된 데이터베이스 및 공유 이름을 사용해 다음 SQL 명령을 실행해야 해요.
GRANT REFERENCE_USAGE ON DATABASE <database_name> TO SHARE <share_name>;
REFERENCE_USAGE가 성공적으로 부여되면 데이터 프로바이더가 협업에 참여할 수 있어요.
오류: REVIEW 또는 JOIN을 호출할 때 CollaborationListingReplicationPending: The collaboration listing is still replicating to your region. Snowflake usually finishes this within a few minutes. Please try reviewing the collaboration again shortly.
원인: 협업이 다른 리전의 계정을 포함할 때, 협업 리스팅이 사용자 리전에 복제를 마쳐야 협업에 대해 작업할 수 있어요.
- 협업 소유자: 소유자가 복제가 끝나기 전에 JOIN을 호출하면 JOIN이 실패하고 로컬 상태가
REPLICATING이 돼요. - 기타 협업자: 협업자가 복제가 끝나기 전에 REVIEW를 호출하면 REVIEW가 실패하고 로컬 상태가
REPLICATING이 돼요.
해결 방법: 복제는 일반적으로 몇 분 내에 완료돼요. 완료되었는지 확인하려면 GET_STATUS를 호출하세요. 복제가 완료되면 GET_STATUS는 실패한 작업을 재시도할 수 있다는 신호인 다음 값 중 하나를 반환해요.
- 협업 소유자의 경우
CREATED— 소유자는 다시 JOIN을 호출할 수 있어요. - 소유자가 아닌 협업자의 경우
INVITED— 협업자는 다시 REVIEW를 호출할 수 있어요.
Snowsight UI
이 오류들은 Snowsight의 Snowflake Data Clean Rooms UI에 적용돼요.
오류: Data clean rooms 페이지에 Snowflake Data Clean Rooms가 설치되지 않았다거나 접근 권한이 없다고 표시됨.
원인: Snowflake Data Clean Rooms 환경이 계정에 설치되지 않았거나, 현재 역할에 접근 권한이 없는 상황이에요.
해결 방법: 계정 관리자에게 환경 설치를 요청한 다음 Retry를 선택해 다시 확인하세요. 이미 설치되어 있다면 협업 권한이 있는 역할로 전환하세요.
오류: 페이지가 설치된 버전이 호환되지 않는다고 보고함.
원인: UI에는 클린룸 환경 버전 14.6 이상이 필요해요. 이 검사는 역할 검사보다 우선하므로, 그 뒤에 역할 문제가 있을 수도 있어요.
해결 방법: 환경을 업데이트한 다음 페이지를 다시 로드하세요. 자세한 내용은 클린룸 환경 업데이트 관리를 참고하세요.
오류: 협업 생성, 검토, 또는 참여가 실패했고 Snowflake 지원팀에 보고해야 함.
해결 방법: 협업을 열고 실패 배너에서 작업을 선택해 오류 세부 정보를 확인하세요. 쿼리 ID를 사용할 수 있는 경우, 대화 상자는 Failure 메시지와 함께 복사 가능한 Query ID를 보여 줘요. Snowflake 지원팀에 연락할 때 둘 다 포함하세요.
오류: 협업이 Creation timed out 상태를 표시함.
원인: 생성이 예상 시간 창 내에 완료되지 않았어요. 이는 생성 실패와는 다르며, 이 상태는 협업 소유자에게 표시돼요.
해결 방법: 협업을 철거(tear down)한 다음 다시 생성하세요. 자세한 내용은 협업 철거를 참고하세요.
오류: 협업을 검토할 수 없고, 대화 상자가 복제가 진행 중이라고 보고함.
원인: 협업 데이터가 여전히 사용자 리전으로 복제되고 있어요. 이는 크로스 클라우드 및 크로스 리전 협업에서 발생해요.
해결 방법: 복제가 끝날 때까지 기다린 다음 대화 상자에서 Refresh를 선택하세요. 복제 주기와 지연 시간에 대한 자세한 내용은 Collaboration Data Clean Rooms에서 Cross-Cloud Auto-Fulfillment 관리를 참고하세요. 동일한 API 오류와 복제 상태 확인 방법은 Snowsight UI를 참고하세요.
오류: Explain 또는 Suggest 같은 Cortex Code 작업이 비활성화되어 있음.
원인: 사용자 계정에서 Cortex Code를 사용할 수 없어요.
해결 방법: 비활성화된 작업 위에 마우스를 올리세요. 팝오버는 사용자 계정에서 Cortex Code를 사용할 수 없다는 것을 확인하고 Cortex Code 문서로 연결해요. Cortex Code에 필요한 역할은 Cortex Code 접근 제어 요구 사항을 참고하세요.
API 및 권한
오류: Unknown user-defined function <function name>
원인: DCR Collaboration API에 문서화된 절차라면 절차 이름을 잘못 입력했을 수 있어요. 절차 이름을 잘못 입력하지 않았거나, 절차가 시스템 절차(즉, 이름에 $가 있는 절차)라면 이전 버전의 API를 사용 중일 수 있으며 클린룸 API 버전을 업그레이드해야 해요.
해결 방법: 절차를 올바르게 입력했는지 확인하고, 그렇지 않다면 올바른 철자로 다시 시도하세요. 설치를 업데이트하려면 다음 SQL 코드를 실행하세요.
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;
오류: 새 클린룸을 만들거나 협업 저장 프로시저를 실행할 때 문제 발생.
원인: Snowflake Data Clean Rooms 설치가 버전 12.3 이하이면 API 환경이 네이티브 앱에 비해 오래되었을 수 있고 자동 업데이트가 중단되었을 수 있어요.
해결 방법: ACCOUNTADMIN으로 마운트 절차를 다시 실행하고, 마운트를 확인하고, 선택적으로 자동 업그레이드를 다시 켜세요.
USE ROLE ACCOUNTADMIN;
-- Prepare the mount script
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();
-- Execute the mount for Snowflake Data Clean Rooms
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;
USE ROLE SAMOOHA_APP_ROLE;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.CHECK_MOUNT_STATUS();
-- Optional: prefer automatic upgrades in the future
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.ENABLE_LOCAL_DB_AUTO_UPGRADES();
오류: Listing '{listing name}' is not fulfilled to your current region. Please request the listing, or if already requested, retry after some time
원인: 이전 버전의 Clean Rooms API를 사용 중이에요. 이 문제는 더 최신 버전에서 수정됐어요.
해결 방법: 클린룸 설치 업데이트를 하세요.
오류: SQL compilation error: Unknown user-defined function SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN
원인: 정규화된 절차 이름의 일부를 잘못 입력했거나, 이 절차를 실행할 권한이 없어요.
해결 방법: 절차의 올바른 이름을 사용했는지 확인하세요. SAMOOHA_APP_ROLE을 사용하지 않는다면 해당 역할로 전환해 같은 오류가 발생하는지 확인해 보세요. 발생하지 않는다면 권한 오류예요.
오류: Unknown user-defined function SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.<namespace>.<procedure name>
원인: 다음 중 하나예요.
- 잘못된 네임스페이스를 사용했어요. 올바른
COLLABORATION또는REGISTRY네임스페이스를 호출해야 해요. - 함수 이름을 잘못 입력했어요. 올바른 이름은 참조 가이드를 확인하세요.
- 절차를 호출할 권한이 없는 RBAC 역할을 사용하고 있어요. SAMOOHA_APP_ROLE이 없어요.
해결 방법: 절차를 올바르게 입력하고 올바른 네임스페이스를 사용했는지 확인하세요. SAMOOHA_APP_ROLE로 전환해 절차를 실행할 수 있는지 확인해 보세요. 실행할 수 있다면 현재 역할의 권한이 충분하지 않은 문제예요. SAMOOHA_APP_ROLE이 있는 사람에게 적절한 권한 부여를 요청하세요. SAMOOHA_APP_ROLE이 있는지 확인하려면 다음 명령을 실행하세요.
SELECT CURRENT_USER();
SHOW GRANTS TO USER <current_user_name> ->> SELECT * FROM $1 WHERE "role" = 'SAMOOHA_APP_ROLE';
결과가 없으면 관리자에게 협업에 대한 API 접근을 요청하세요.
사전 설정 테이블이 있는 템플릿
미리 보기 기능 — 오픈. 모든 계정에서 사용 가능. 이 섹션의 오류는 preset_tables 블록에 사전 설정 테이블을 선언하는 템플릿에 적용돼요.
오류: SpecValidationError: preset_tables reference(s) use reserved SQL alias(es)
원인: 사전 설정 테이블에는 템플릿 본문에서 SQL 별칭 p, c, 또는 숫자가 뒤에 오는 p 또는 c를 부여할 수 없어요. 해당 별칭은 분석 실행자가 제공하는 source_table 및 my_table 데이터셋을 위해 예약되어 있어요.
해결 방법: 템플릿 본문에서 사전 설정 테이블에 다른 유효한 Snowflake 식별자를 SQL 별칭으로 부여한 다음 템플릿을 다시 등록하세요.
오류: SpecValidationError: Template references undeclared preset_tables alias(s)
원인: 템플릿 본문이 템플릿의 preset_tables 블록에 선언되지 않은 별칭에 대해 preset_tables['<alias>'] 또는 preset_tables.<alias>를 참조해요.
해결 방법: preset_tables 블록에 별칭을 선언하거나, 템플릿 본문의 별칭을 선언된 항목과 일치하도록 수정하세요. 둘은 정확히 일치해야 해요.
오류: PresetTableUnsupportedReferenceError: '<alias>' is pinned by this template via preset_table(s) and cannot be used as a Jinja variable or given a policy filter.
원인: 템플릿이 사전 설정 테이블을 지원되지 않는 두 가지 방식 중 하나로 참조해요.
- 사전 설정 테이블의 별칭을
{{ publisher.hashed_email }}또는{{ publisher.hashed_email | sqlsafe }}같은 Jinja 변수로 사용해요. 사전 설정 테이블은 템플릿 변수가 아니라 SQL 식별자예요. - 사전 설정 테이블의 컬럼 중 하나에
column_policy또는join_policy같은 정책 필터를 적용해요. 정책 필터는 실행자가 제공한source_table목록에서 위치로 컬럼의 테이블을 결정하는데, 사전 설정 테이블은 그 목록에 절대 포함되지 않아요.
해결 방법: 사전 설정 참조가 바인딩된 SQL 별칭으로 사전 설정 테이블의 컬럼을 정책 필터 없이 직접 참조하세요.
-- Supported
SELECT publisher.hashed_email
FROM IDENTIFIER({{ preset_tables['publisher'] }}) AS publisher;
-- Not supported
SELECT IDENTIFIER({{ publisher.hashed_email | column_policy }})
FROM IDENTIFIER({{ preset_tables['publisher'] }}) AS publisher;
컬럼에 정책이 적용되어야 한다면, 사전 설정하는 대신 분석 실행자가 해당 데이터셋을 source_tables로 공급하도록 하세요.
오류: CollaboratorAliasNotFoundInCollaboration, DataProviderWithoutDataOffering, 또는 DatasetNotFoundInDataOfferingException
원인: 사전 설정 template_view_name이 이 협업에서 해석되지 않아요. 협업자 별칭이 협업 스펙에 없거나, 데이터 프로바이더가 해당 데이터 오퍼링을 연결하지 않았거나, 오퍼링에 해당 데이터셋이 포함되지 않은 상황이에요.
해결 방법: VIEW_DATA_OFFERINGS를 호출하고 TEMPLATE_VIEW_NAME 컬럼의 값을 템플릿의 preset_tables 블록에 복사하세요. 협업자 별칭이 협업 스펙의 collaborator_identifier_aliases 섹션의 값과 일치하는지, 그리고 데이터 프로바이더가 오퍼링을 연결했는지 확인하세요.
코드 스펙(Code specs)
오류: CodeSpecAlreadyExistsException
원인: 같은 이름과 버전의 코드 스펙이 이미 등록되어 있어요.
해결 방법: 다른 버전을 사용하거나 기존 버전을 업데이트하세요.
오류: SpecValidationError
원인: YAML이 스키마를 따르지 않아요.
해결 방법: 필수 필드와 형식을 확인하세요.
오류: CodeSpecStageNotAccessibleError
원인: 아티팩트에 참조된 스테이지에 접근할 수 없어요.
해결 방법: 스테이지에 대한 접근을 부여하거나 스테이지가 존재하는지 확인하세요.
오류: CodeSpecArtifactNotFoundAtStageError
원인: 지정된 스테이지 경로에서 파일을 찾을 수 없어요.
해결 방법: 등록 전에 파일을 스테이지에 업로드하세요.
오류: StageDirectoryNotEnabledError
원인: 스테이지에 DIRECTORY가 활성화되어 있지 않아요.
해결 방법: 스테이지에서 디렉터리를 활성화하세요: ALTER STAGE ... SET DIRECTORY = (ENABLE = TRUE)
오류: CodeSpecNotFoundForOwnerException
원인: 템플릿이 등록되지 않은 코드 스펙을 참조해요.
해결 방법: 템플릿을 등록하기 전에 코드 스펙을 등록하세요.
활성화(Activation)
오류: 여러 활성화가 동시에 실행될 때 Object 'SFDCR_<name>.CLEANROOM.ACTIVATION_DATA_<results>' does not exist or not authorized — 그러나 하나씩 실행하면 같은 활성화가 성공함.
원인: 고정된 결과 테이블 이름에 쓰는 활성화 템플릿의 동시 실행이 충돌해요. 각 실행은 동일한 cleanroom.activation_data_ 테이블에 대해 CREATE OR REPLACE TABLE을 실행하므로, 한 실행이 테이블을 교체하거나 삭제하는 동안 다른 실행이 여전히 사용 중일 수 있어요.
해결 방법: 각 실행에 고유한 결과 테이블 이름을 생성하는 활성화 템플릿을 사용해 동시 실행이 같은 테이블에 쓰지 않도록 하세요. 권장 패턴과 예시는 활성화 동시 실행을 참고하세요.
ML 작업(ML Jobs)
오류: Template references unknown code spec callables: 'my_ml_model_V0$my_train_job'. 'my_ml_model_V0' looks like a code spec ID. Use the code spec name (without the version suffix) instead.
원인: 템플릿 본문이 버전이 있는 ID(예: my_ml_model_V0) 대신 이름(예: my_ml_model)을 사용해 코드 스펙을 참조해야 하는데, ID를 사용해 참조해요. 템플릿의 code_specs 필드는 ID를 사용하지만, 템플릿 본문의 프로시저 호출은 이름을 사용해야 해요.
해결 방법: 템플릿 호출 본문에서 버전 접미사 없이 코드 스펙 이름을 사용하세요.
- 올바름:
cleanroom.my_ml_model$my_train_job(...) - 잘못됨:
cleanroom.my_ml_model_V0$my_train_job(...)
오류: 웨어하우스 또는 컴퓨트 풀 오류로 ML Job이 실패함.
원인: 클린룸 애플리케이션에 대해 컴퓨트 풀이 올바르게 설정되지 않았거나, 사용자 리전에서 GPU 컴퓨트를 사용할 수 없어요.
해결 방법: 컴퓨트 풀이 FOR APPLICATION <installed_app_name>으로 생성되었는지 확인하세요. ML Jobs에는 클린룸 애플리케이션 전용 컴퓨트 풀이 필요해요. GRANT USAGE ON COMPUTE POOL과 GRANT USAGE ON WAREHOUSE가 모두 애플리케이션에 부여되었는지 확인하세요. CREATE COMPUTE POOL 권한은 계정 수준에서 필요해요. ACCOUNTADMIN 또는 이 권한이 있는 사용자 지정 역할을 사용하세요. SYSTEM_COMPUTE_POOL_GPU는 모든 리전에서 사용할 수 있는 것은 아니에요. GPU를 지원하지 않는 리전에서는 CPU 기반 워크로드에 SYSTEM_COMPUTE_POOL_CPU를 사용하거나, 리전이 GPU 하드웨어를 지원한다면 사용자 지정 GPU 컴퓨트 풀을 만드세요. 리전별 가용성은 컴퓨트 풀을 참고하세요.
오류: 협업 생성이 실패하고 협업이 CREATE_FAILED 상태로 전환됨.
원인: ML Jobs에는 시스템 컴퓨트 풀이 필요하며, 이는 모든 리전에서 사용할 수 있는 것은 아니에요. 시스템 컴퓨트 풀을 사용할 수 없는 리전에서 생성된 협업에서 ML Jobs를 활성화하면 코드 스펙을 로드할 수 없고 협업이 CREATE_FAILED 상태로 전환돼요.
해결 방법: 시스템 컴퓨트 풀을 지원하는 리전에서 협업을 생성하세요. 리전별 가용성은 컴퓨트 풀을 참고하세요.
오류: ADD_TEMPLATE_REQUEST가 다음으로 실패함: ML job '<ml_job_name>' has no content_manifest. Re-register the code spec to generate the manifest.
원인: 코드 스펙이 2026년 6월 18일 릴리스(Clean Rooms API 버전 16.3)에서 콘텐츠 해시 검증이 추가되기 전에 등록되었어요. 해당 릴리스 이전에 등록된 ML Jobs 코드 스펙에는 콘텐츠 해시가 없어 협업에 추가할 수 없어요. 콘텐츠 해시 검증이 시행되려면 계정이 Clean Rooms API 버전 16.3 이상을 실행해야 해요.
해결 방법: 코드 스펙을 새 버전으로 다시 등록하세요. version 필드를 변경하고(예: v1에서 v2로) 같은 YAML로 REGISTER_CODE_SPEC을 다시 호출하세요. 다시 등록하면 콘텐츠 해시가 자동으로 계산돼요. 그런 다음 템플릿의 code_specs 참조를 새 버전으로 업데이트하고 승인을 위해 다시 제출하세요.
2026년 6월 18일 이전에 협업에 이미 연결된 ML Jobs 코드 스펙은 다시 등록하지 않고 계속 작동해요.