SQL 데이터 관리

SQL 데이터 관리 활동을 사용하면 작업 테이블을 만들고 채울 고유한 SQL 스크립트를 작성할 수 있습니다.

사전 요구 사항

활동을 구성하기 전에 다음 전제 조건이 충족되었는지 확인하십시오.

  • 활동은 원격 데이터 소스에서만 사용할 수 있습니다. 따라서 FDA (Federated Data Access) 패키지가 인스턴스에 설치되어 있어야 합니다. 자세히 알아보기
  • 아웃바운드 스키마는 데이터베이스에 존재하며 FDA 데이터베이스에 연결되어 있어야 합니다. 자세히 알아보기
  • 워크플로우를 실행하는 연산자는 USE SQL DATA MANAGEMENT ACTIVITY (useSqlDmActivity) 명명된 오른쪽이어야 합니다. 자세히 알아보기

SQL 데이터 관리 작업 구성

  1. 활동을 지정합니다 Label.

  2. 사용할 항목 External account 을 선택한 다음 이 외부 계정에 Outbound schema 연결된 항목을 선택합니다.

    주의

    아웃바운드 스키마가 수정되었으며 편집할 수 없습니다.

  3. SQL 스크립트를 추가합니다.

    주의

    SQL 스크립트 작성기가 SQL 스크립트를 사용할 수 있는지, SQL 스크립트의 참조(필드 이름 등)가 있는지 확인하는 것은 SQL 스크립트 작성기의 책임입니다. 는 아웃바운드 스키마에 부합합니다.

    기존 SQL 코드를 로드하려면 The SQL script is contained in an entity stored in the database 옵션을 선택합니다. SQL 스크립트를 만들어 Administration / Configuration / SQL scripts 메뉴에 저장해야 합니다.

    그렇지 않으면 전용 영역에 SQL 스크립트를 입력하거나 복사하여 붙여 넣습니다.

    이 활동을 사용하면 스크립트에서 다음 변수를 사용할 수 있습니다.

    • activity.tableName:아웃바운드 작업 테이블의 SQL 이름입니다.

    • task.incomingTransitionByName('name').tableName:사용할 들어오는 전환이 가져오는 작업 테이블의 SQL 이름(해당 이름으로 전환 식별).

      노트

      ('name') 값은 전환 속성의 Name 필드에 해당합니다.

  4. SQL 스크립트에 아웃바운드 작업 테이블을 만드는 명령이 이미 포함되어 있는 경우 Automatically create work table 옵션을 선택 취소합니다. 그렇지 않으면 워크플로우가 실행되면 작업 테이블이 자동으로 생성됩니다.

  5. 활동 구성 Ok 을 확인하려면 을(를) 클릭합니다.

이제 활동이 구성됩니다. 워크플로우에서 실행할 준비가 되었습니다.

주의

활동이 실행되면 아웃바운드 전환 레코드 수가 표시만 됩니다. SQL 스크립트의 복잡도에 따라 다를 수 있습니다.

활동을 다시 시작하면 실행 상태에 관계없이 전체 스크립트가 처음부터 실행됩니다.

SQL 스크립트 샘플

노트

이 섹션의 스크립트 샘플은 PostgreSQL에서 실행되어야 합니다.

아래 스크립트에서는 작업 테이블을 만들고 데이터를 동일한 작업 테이블에 삽입할 수 있습니다.

CREATE UNLOGGED TABLE <%= activity.tableName %> (
  iRecipientId INTEGER DEFAULT 0,
  sFirstName VARCHAR(100),
  sMiddleName VARCHAR(100),
  sLastName VARCHAR(100),
  sEmail VARCHAR(100)
);

INSERT INTO <%= activity.tableName %>
SELECT iRecipientId, sFirstName, sMiddleName, sLastName, sEmail
FROM nmsRecipient
GROUP BY iRecipientId, sFirstName, sMiddleName, sLastName, sEmail;

아래 스크립트에서는 CTAS 작업(CREATE TABLE AS SELECT)을 수행하고 작업 테이블 인덱스를 만들 수 있습니다.

CREATE TABLE <%= activity.tableName %>
AS SELECT iRecipientId, sEmail, sFirstName, sLastName, sMiddleName
FROM nmsRecipient
WHERE sEmail IS NOT NULL
GROUP BY iRecipientId, sEmail, sFirstName, sLastName, sMiddleName;

CREATE INDEX ON <%= activity.tableName %> (sEmail);

ANALYZE <%= activity.tableName %> (sEmail);

아래 스크립트를 사용하면 두 개의 작업 테이블을 병합할 수 있습니다.

CREATE TABLE <%= activity.tableName %>
AS SELECT i1.sFirstName, i1.sLastName, i2.sEmail
FROM <%= task.incomingTransitionByName('input1').tableName %> i1
JOIN <%= task.incomingTransitionByName('input2').tableName %> i2 ON (i1.id = i2.id)

이 페이지에서는