Show Menu
TÓPICOS×

Gestão de Dados SQL

A atividade de Gestão de Dados SQL permite escrever seus próprios scripts SQL para criar e preencher tabelas de trabalho.

Pré-requisitos

Antes de configurar a atividade, verifique se os pré-requisitos a seguir estão sendo cumpridos:
  • A atividade está disponível somente para fontes de dados remotas. O pacote FDA (Federated Data Access) deve, portanto, ser instalado em sua instância (consulte esta seção ).
  • O schema de saída deve existir no banco de dados e ser vinculado a um banco de dados do FDA (para obter mais informações sobre schemas de dados, consulte esta seção ).
  • O operador que executa o fluxo de trabalho deve ter o item USE SQL DATA MANAGEMENT ACTIVITY (useSqlDmActivity) nomeado corretamente. Para saber mais sobre direitos nomeados, consulte esta seção .

Configurando a atividade de gestão de dados SQL

  1. Especifique a atividade Label .
  2. Selecione a External account a ser utilizada e selecione o Outbound schema vinculado a esta conta externa.
    O schema de saída está fixo e não pode ser editado.
  3. Adicione o script SQL.
    É a responsabilidade do gravador de script SQL garantir que o script SQL esteja funcional e que suas referências (nomes de campos, etc.) estejam de acordo com o schema de saída.
    Para carregar um código SQL existente, selecione a opção The SQL script is contained in an entity stored in the database . Os scripts SQL devem ser criados e armazenados no menu Administration / Configuration / SQL scripts .
    Caso contrário, digite ou copie e cole o script SQL na área dedicada.
    A atividade permite usar as seguintes variáveis no script:
    • activity.tableName : nome SQL da tabela de trabalho de saída
    • task.incomingTransitionByName('name').tableName : nome SQL da tabela de trabalho transmitida pela transição recebida a ser utilizada (a transição é identificada pelo próprio nome).
      O valor ('name') corresponde ao Name campo das propriedades de transição.
  4. Se o script SQL já tiver comandos para criar uma tabela de trabalho de saída, desmarque a opção Automatically create work table . Caso contrário, uma tabela de trabalho será criada automaticamente quando o workflow for executado.
  5. Clique em Ok para confirmar a configuração da atividade.
A atividade está configurada agora. Ela está pronta para ser executada no workflow
Ao executar a atividade, os registros de transição de saída são somente indicativos. Pode variar de acordo com o nível de complexidade do script SQL.
Se a atividade for reiniciada, todo o script será executado desde o seu início, independentemente do status de execução.

Exemplos de script SQL

Os exemplos de script nesta seção dever ser executados em PostgreSQL.
O script abaixo permite criar uma tabela de trabalho e inserir dados nesta mesma tabela de trabalho:
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;

O script abaixo permite executar uma operação CTAS (CREATE TABLE AS SELECT) e criar um índice de tabela de trabalho:
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);

O script abaixo permite mesclar duas tabelas de trabalho:
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)