SYSTEM$WAIT_FOR_OPENFLOW_RUNTIME_STATUS

SYSTEM$WAIT_FOR_OPENFLOW_RUNTIME_STATUS (런타임 상태 대기)

지정한 각 런타임이 지정한 상태 중 하나에 도달할 때까지 기다려요. ALTER 명령 후에 예상 상태를 알고 있을 때 이 함수를 사용해요. 런타임이 안정될 때까지 기다리면 될 때는 대신 SYSTEM$WAIT_FOR_STABLE_OPENFLOW_RUNTIMES를 사용해요.

참조: SYSTEM$WAIT_FOR_STABLE_OPENFLOW_DEPLOYMENTS, SYSTEM$WAIT_FOR_OPENFLOW_DEPLOYMENT_STATUS, SYSTEM$WAIT_FOR_STABLE_OPENFLOW_RUNTIMES, SYSTEM$WAIT_FOR_STABLE_OPENFLOW_CONNECTORS, SYSTEM$WAIT_FOR_OPENFLOW_CONNECTOR_STATUS

출처: Snowflake SQL Reference - SYSTEM$WAIT_FOR_OPENFLOW_RUNTIME_STATUS

본문

구문

SELECT SYSTEM$WAIT_FOR_OPENFLOW_RUNTIME_STATUS(
  <timeout_seconds>,
  '<allowed_statuses>',
  '<runtime_name>' [, '<runtime_name>' ... ]
);

인자

timeout_seconds

기다릴 최대 시간(초)이에요.

'<allowed_statuses>'

허용 가능한 상태의 쉼표로 구분된 목록이에요(예: 'ACTIVE' 또는 'ACTIVE,SUSPENDED').

'<runtime_name>'

하나 이상의 런타임 이름이에요. 완전히 한정된 이름 <database>.<schema>.<name>을 사용해요. USE DATABASE와 USE SCHEMA가 설정되면 단순 이름이 현재 세션에서 해석돼요.

반환 값

성공하면 'OK'를 반환해요. 시간이 초과되거나 런타임이 실패 상태에 들어가면 오류를 발생시켜요.

접근 제어

지정한 런타임에 대한 어떤 권한이라도 필요해요.

사용상 주의사항

  • Openflow UI는 내부적으로 동일한 폴링을 수행해요.
  • 런타임 프로비저닝은 일반적으로 3~5분이 걸려요. 600초의 타임아웃이 합리적인 기본값이에요.
  • 함수가 시간 초과되면 기본 작업은 계속돼요. 새 타임아웃으로 대기 함수를 다시 실행해요. CREATE OPENFLOW RUNTIME을 다시 실행하지 마세요. 런타임은 이미 존재하고 여전히 프로비저닝 중이에요.

예시

런타임을 일시 중단한 후 SUSPENDED 상태가 될 때까지 기다리기:

ALTER OPENFLOW RUNTIME my_db.my_schema.my_runtime SUSPEND;

SELECT SYSTEM$WAIT_FOR_OPENFLOW_RUNTIME_STATUS(600, 'SUSPENDED', 'my_db.my_schema.my_runtime');

더 알아보기