SQL 데이터 관리 sql-data-management
SQL 데이터 관리 활동을 사용하면 고유한 SQL 스크립트를 작성하여 작업 테이블을 만들고 채울 수 있습니다.
필수 구성 요소 prerequisites
활동을 구성하기 전에 다음 전제 조건이 충족되는지 확인하십시오.
SQL 데이터 관리 활동 구성 configuring-the-sql-data-management-activity
-
Label 활동을 지정하십시오.
-
사용할 External account 을(를) 선택한 다음 이 외부 계정에 연결된 Outbound schema 을(를) 선택하십시오.
note caution CAUTION 아웃바운드 스키마는 고정되어 편집할 수 없습니다. -
SQL 스크립트를 추가합니다.
note caution CAUTION 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 이름(해당 이름으로 전환 식별).
note note NOTE ('name') 값은 전환 속성의 Name 필드에 해당합니다.
-
-
SQL 스크립트에 아웃바운드 작업 테이블을 만드는 명령이 이미 있는 경우 Automatically create work table 옵션을 선택 취소합니다. 그렇지 않으면 워크플로우가 실행되면 작업 테이블이 자동으로 만들어집니다.
-
Ok 을(를) 클릭하여 활동 구성을 확인합니다.
이제 활동이 구성되었습니다. 워크플로우에서 실행할 준비가 되었습니다.
SQL 스크립트 샘플 sql-script-samples
아래 스크립트를 사용하면 작업 테이블을 만들고 동일한 작업 테이블에 데이터를 삽입할 수 있습니다.
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)