O plug-in de origem de lotes de tabelas SAP (plug-in de tabelas SAP) permite-lhe ler dados de tabelas ou vistas padrão e personalizadas do SAP. Permite o carregamento de dados em massa de aplicações SAP para o BigQuery ou qualquer outro sistema de destino suportado através do Cloud Data Fusion. O plug-in tem as seguintes funcionalidades principais:
- Usa o SAP ECC, o SAP S4/HANA ou o SAP BW como sistema de origem
- Não usa o SAP CDC (captura de dados de alterações) para acompanhar e extrair dados novos e delta nas origens de dados
- Usa o modo de extração em lote
- Suporta tabelas SAP e vistas CDS ABAP como origens de dados
- Acede aos dados SAP através da camada de aplicação
Pode ler dados de:
- Tabelas transparentes
- Tabelas de cluster
- Mesas de bilhar
- Vistas CDS ABAP
- Objetos ADSO do SAP BW
Versões de software compatíveis
Software | Versões |
---|---|
SAP S4/HANA | SAP S4/HANA 1909 e posterior |
SAP ECC | SAP ERP6 NW 7.31 SP16 e posteriores |
SAP JCo | Versão 3.0.20 e posterior do SAP JCo |
Cloud Data Fusion | 6.3 e posteriores |
Para mais informações sobre o SAP no Google Cloud, consulte a vista geral do SAP no Google Cloud.
Antes de começar
Configure os seguintes sistemas e serviços usados pelo plug-in de tabelas SAP:
- Configure o sistema SAP ERP.
Este processo inclui os seguintes passos:
- Instale os ficheiros de transporte do SAP.
- Configure as autorizações e as funções SAP necessárias.
- Configure o SAP Java Connector.
Implemente o plug-in no Cloud Data Fusion.
- Importante: escolha uma versão do plug-in compatível com a versão do Cloud Data Fusion.
- Se atualizar a versão da instância ou do plug-in do Cloud Data Fusion, avalie o impacto das alterações no âmbito funcional e no desempenho do pipeline.
Estabeleça a conetividade RFC entre o Cloud Data Fusion e o SAP.
- Certifique-se de que a comunicação está ativada entre a instância do Cloud Data Fusion e o servidor SAP.
- Para instâncias privadas, configure o intercâmbio da rede da VPC.
- Tanto o sistema SAP como a instância do Cloud Data Fusion têm de estar no mesmo projeto.
Configure o plug-in
- Aceda à interface Web do Cloud Data Fusion e clique em Studio.
- Verifique se a opção Data Pipeline - Batch está selecionada (e não Tempo Real).
- No menu Origem, clique em Tabela SAP. O nó da tabela SAP é apresentado no pipeline.
- Para configurar a origem, aceda ao nó da tabela SAP e clique em Propriedades.
Introduza as seguintes propriedades. Para ver uma lista completa, consulte as Propriedades.
- Introduza uma etiqueta para o nó da tabela SAP, por exemplo,
SAP tables
. Introduza os detalhes da associação. Pode configurar uma nova associação única ou uma associação existente reutilizável.
Nova associação
Para adicionar uma associação única ao SAP, siga estes passos:
- Mantenha a opção Usar ligação desativada.
Na secção Ligação, introduza as seguintes informações da conta SAP nestes campos:
- No campo Nome de referência, introduza um nome para a ligação que identifica esta origem para a linhagem.
- No campo Cliente SAP, introduza o nome do cliente de uma instância ou um ambiente específico no SAP. Um administrador do SAP pode indicar o nome do cliente.
- No campo Idioma do SAP, introduza um idioma de início de sessão do SAP. A predefinição é EN (inglês).
Selecione um dos seguintes Tipos de associação.
- Direta (através do servidor de aplicações SAP). Se escolher este tipo predefinido, introduza informações nos seguintes campos: Anfitrião do servidor de aplicações SAP, Número do sistema SAP e Router SAP.
- Equilibrado de carga (através do servidor de mensagens SAP). Se escolher este tipo, introduza informações nos seguintes campos: Anfitrião do servidor de mensagens SAP, Serviço do servidor de mensagens SAP ou número da porta, ID do sistema SAP (SID) e Nome do grupo de início de sessão SAP.
No campo Nome da tabela/vista SAP, introduza o nome da tabela ou da vista do seu sistema SAP.
Faculte as credenciais da SAP: peça ao seu administrador da SAP o nome de utilizador de início de sessão da SAP e a palavra-passe.
No campo Caminho do Cloud Storage da biblioteca JCo, introduza o caminho do SAP Java Connector (SAP JCo) no Cloud Storage que contém os ficheiros da biblioteca SAP JCo que carregou.
Para gerar um esquema com base nos metadados do SAP que mapeiam os tipos de dados do SAP para os tipos de dados do Cloud Data Fusion correspondentes, clique em Obter esquema. Para mais informações, consulte o artigo Mapeamentos de tipos de dados.
Opcional: para otimizar a carga de ingestão do SAP, introduza informações nos seguintes campos:
A utilização das Opções de filtro permite-lhe extrair registos com base em condições de seleção, como colunas com um conjunto definido de valores. Defina as condições na sintaxe OpenSQL numa cláusula
WHERE
. Por exemplo, esta consulta devolve todas as linhas da tabelaRoster
onde a colunaSchoolID
tem o valorSchoolID > 52
:SELECT * FROM Roster WHERE SchoolID > 52;
Para mais informações, consulte o artigo Filtros suportados.
No campo Número de linhas a obter, pode limitar os dados extraídos fornecendo um número inteiro positivo de linhas.
No campo Número de divisões, pode criar partições para extrair registos de dados em paralelo, o que melhora o desempenho. O número de divisões pode afetar os processos de trabalho do SAP e tem de ser selecionado cuidadosamente.
No campo Tamanho do pacote, especifique o número de registos a extrair numa única chamada de rede SAP. O tamanho do pacote afeta o desempenho e os recursos disponíveis e tem de ser selecionado cuidadosamente.
Ligação reutilizável
Para reutilizar uma associação existente, siga estes passos:
- Ative a opção Usar ligação.
- Clique em Procurar associações.
Clique no nome da associação.
Se não existir uma associação, para criar uma associação reutilizável, siga estes passos:
- Clique em Adicionar associação > SapTable.
- Na página Crie uma associação SapTable apresentada, introduza um nome e uma descrição da associação.
- No campo Cliente SAP, introduza o nome do cliente de uma instância ou um ambiente específico no SAP. Um administrador do SAP pode indicar o nome do cliente.
- No campo Idioma do SAP, introduza um idioma de início de sessão do SAP. A predefinição é EN (inglês).
Selecione um dos seguintes Tipos de associação.
- Direta (através do servidor de aplicações SAP). Se escolher este tipo predefinido, introduza informações nos seguintes campos: Anfitrião do servidor de aplicações SAP, Número do sistema SAP e Router SAP.
- Equilibrado de carga (através do servidor de mensagens SAP). Se escolher este tipo, introduza informações nos seguintes campos: Anfitrião do servidor de mensagens SAP, Serviço do servidor de mensagens SAP ou número da porta, ID do sistema SAP (SID) e Nome do grupo de início de sessão SAP.
Faculte as credenciais da SAP: peça ao administrador da SAP os valores do nome de utilizador de início de sessão da SAP e da palavra-passe.
No campo Caminho do Cloud Storage da biblioteca JCo, introduza o caminho do conetor Java (SAP JCo) do SAP no Cloud Storage que contém os ficheiros da biblioteca SAP JCo que carregou.
Opcional: no campo Propriedades de ligação SAP adicionais, introduza pares de chave-valor que têm de substituir as predefinições do SAP JCo.
Clique em Criar.
- Introduza uma etiqueta para o nó da tabela SAP, por exemplo,
Propriedades
Propriedade | O modo macro está ativado | Propriedade obrigatória | Descrição |
---|---|---|---|
Etiqueta | Não | Sim | O nome do nó no pipeline de dados. |
Usar ligação | Não | Não | Use uma ligação reutilizável. Se for usada uma associação, não tem de fornecer as credenciais. Para mais informações, consulte o artigo Faça a gestão das associações. |
Nome de referência | Não | Sim | Se a opção Usar ligação não estiver ativada, este campo é apresentado. O nome da associação a usar para a linhagem. |
Nome | Não | Sim | Se a opção Usar ligação estiver ativada, este campo é apresentado. O nome da associação reutilizável. |
Cliente SAP | Sim | Sim | A instância ou o ambiente num sistema SAP. |
Tirar instantâneo | Sim | Sim | Ative os instantâneos de dados no SAP. Quando ativar os instantâneos:
Quando desativar as capturas instantâneas: estiver a executar várias extrações de dados de grande volume em paralelo. As imagens instantâneas usam tabelas de buffer no SAP, o que pode originar problemas de out of memory no SAP. No entanto, quando a extração de dados é concluída, a tabela de buffer é limpa. |
Idioma do SAP | Sim | Sim | O idioma em que a interface do utilizador e os dados do SAP são apresentados e processados. |
Tipo de ligação | Não | Sim | O tipo de ligação SAP: direta ou com equilíbrio de carga. |
Anfitrião do servidor de aplicações SAP | Sim | Não | Apenas para o tipo de ligação Direta, este nome do anfitrião é do servidor de aplicações SAP, que funciona como uma camada de software intermédio entre clientes SAP (como a interface Web SAP, navegadores de Internet ou apps para dispositivos móveis) e a base de dados subjacente. |
Número do sistema SAP | Sim | Não | Apenas para o tipo de ligação Direta, este número é o identificador exclusivo atribuído a cada sistema SAP. Por exemplo,
00 . |
Router SAP | Sim | Não | Apenas para o tipo de ligação Direta, esta é a string do router para o servidor proxy, que fornece um canal seguro para a comunicação entre os sistemas SAP e os clientes ou os parceiros externos. |
Anfitrião do servidor de mensagens SAP | Sim | Não | Apenas para o tipo de ligação Equilibrado por carga, este é o nome do anfitrião, que facilita o equilíbrio de carga em vários servidores de aplicações no SAP. |
Serviço ou número da porta do servidor de mensagens SAP | Sim | Não | Apenas para o tipo de ligação Equilibrado por carga, esta é a porta de rede onde o servidor de mensagens SAP escuta as ligações recebidas de clientes SAP e servidores de aplicações no SAP. |
ID do sistema SAP (SID) | Sim | Não | Apenas para o tipo de ligação Equilibrado por carga, este ID é atribuído a cada sistema SAP. |
Nome do grupo de início de sessão da SAP | Sim | Não | O nome do agrupamento lógico ou da configuração de vários servidores de aplicações SAP. A predefinição é PUBLIC . |
Nome da tabela/vista do SAP | Sim | Sim | Um nome de tabela ou vista válido e não sensível a maiúsculas e minúsculas a partir do qual é possível extrair todas as colunas. |
Nome de utilizador de início de sessão da SAP | Sim | Sim | Nome de utilizador para o SAP Recomendado: se o nome de utilizador mudar periodicamente, use uma macro. |
Palavra-passe de início de sessão da SAP | Sim | Sim | Palavra-passe da SAP. Recomendado: use macros seguras. |
ID do projeto da GCP | Sim | Sim | Google Cloud ID do projeto. |
Caminho do GCS da biblioteca SAP JCo | Sim | Sim | O caminho para o Cloud Storage onde carregou os ficheiros da biblioteca SAP JCo. |
Obter esquema | N/A | N/A | O plug-in gera um esquema com base nos metadados do SAP, que mapeia os tipos de dados do SAP para os tipos de dados do Cloud Data Fusion correspondentes. Consulte o artigo Mapeamento de tipos de dados. |
Propriedades de associação SAP adicionais | Sim | Não | Defina propriedades SAP JCo adicionais para substituir as predefinições do SAP JCo.
Por exemplo, a definição de jco.destination.pool_capacity = 10
substitui a capacidade do conjunto de ligações predefinido. |
Filtros | Sim | Não | Condições especificadas na sintaxe SQL aberta que filtram através de uma cláusula SQL
WHERE . Extrair registos com base em condições, como:
Os que estão em colunas com um conjunto definido de valores ou um intervalo de valores.
Para mais informações, consulte os filtros compatíveis. |
Número de linhas a obter | Sim | Não | Limita o número de registos extraídos.
|
Número de divisões a gerar | Sim | Não | Cria partições para extrair registos em paralelo. O motor de tempo de execução cria o número especificado de partições (e ligações SAP) enquanto extrai os registos. Tenha cuidado ao aumentar este valor, uma vez que aumenta as ligações simultâneas com o SAP. Recomendado: planeie ter ligações SAP para cada pipeline e o número total de pipelines em execução em simultâneo. Se o valor for 0 ou for deixado em branco, o Cloud Data Fusion escolhe um valor adequado, com base no número de executores disponíveis, nos registos a extrair e no tamanho do pacote. |
Tamanho da embalagem | Sim | Não | O número de registos a extrair numa única chamada de rede SAP. É o número de registos que o SAP armazena em buffer na memória durante cada chamada de extração de rede. Tenha cuidado ao definir esta propriedade. Vários pipelines de dados que extraem dados podem aumentar o uso de memória, o que causa falhas devido a erros Out of memory .
|
Filtros suportados
As seguintes condições de filtro são suportadas.
Filtro que contém um operador de comparação
Use operadores de comparação para fazer uma filtragem mais complexa com base em comparações entre valores.
Sintaxe
SELECT * FROM table_name WHERE column_name > value; \ SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;
Exemplo
AUDAT GT '20230914'
Filtro que contém um operador LIKE
Use operadores LIKE
para a correspondência de padrões. Para estabelecer correspondência com qualquer caráter, use o símbolo %
como caráter universal.
Sintaxe
SELECT * FROM table_name WHERE column_name LIKE 'pattern%';
Exemplo
ERNAM LIKE 'KIRAN%'
Filtro que contém um operador IN
Use operadores IN
para especificar uma lista de valores com os quais
estabelecer uma correspondência.
Sintaxe
SELECT * FROM table_name WHERE column_name \ IN ('value1', 'value2', 'value3');
Exemplo
ERNAM IN ( 'LEE' , 'KIRAN' )
Filtro que contém um operador lógico
Use operadores lógicos para especificar uma lista de valores com os quais fazer a correspondência.
Sintaxe
SELECT * FROM table_name WHERE condition1 AND condition2; \ SELECT * FROM table_name WHERE condition1 OR condition2; \ SELECT * FROM table_name WHERE NOT condition;
Exemplos
( AUDAT EQ '20220615' ) AND ( ERNAM LIKE 'LEE%' )
( AUDAT EQ '20220615' ) OR ( AUDAT EQ '20220617' )
Filtro que contém um intervalo de datas
Use intervalos de datas para obter linhas em que uma coluna de data/hora se enquadra num intervalo de datas específico.
Sintaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'start_date' AND datetime_column <= 'end_date';
Exemplo
AUDAT GE '20230910' AND AUDAT LE '20230914'
Filtro que contém uma comparação de datas
Use comparações de datas para obter linhas onde a data/hora é usada.
Sintaxe
SELECT * FROM table_name WHERE datetime_column > 'target_date';
Exemplo
AUDAT GE '20230910' AND AUDAT LE '20230914'
Filtro que combina data e hora
Se a coluna de data/hora incluir a data e a hora, pode filtrar em conformidade.
Sintaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'target_datetime' \ AND datetime_column <= 'target_datetime';
Exemplo
TIMESTAMP GE '20210602144800' AND TIMESTAMP LE '20210624080836'
(Formato de data/hora : AAAAMMDDHHMMSS)
Filtre a combinação de várias condições com operadores lógicos
Pode obter linhas que cumprem várias condições através de operadores lógicos, como AND
e OR
.
Sintaxe
SELECT * FROM table_name \ WHERE (column1 = 'value1' AND column2 > value2) \ OR (column3 = 'value3' AND column4 < value4);
Exemplo
( ERNAM EQ 'LEE' AND AUDAT GT '20220722' ) \ OR ( BSTNK EQ 'PO54321065' AND BSTDK LT '20220714' )
Combinação de filtros com condições aninhadas
Pode combinar condições de forma aninhada para criar filtros complexos.
Sintaxe
SELECT * FROM table_name \ WHERE (column1 = 'value1' OR (column2 = 'value2' AND column3 > value3)) \ AND column4 = 'value4';
Exemplo
( ERDAT EQ '20220722' OR ( ERNAM EQ 'LEE' AND VDATU GT '20210623' ) ) \ AND FMBDAT EQ '20220722'
Filtro que usa subconsultas
Pode usar subconsultas para filtrar com base nos resultados de outra consulta.
Sintaxe
SELECT * FROM table_name \ WHERE column1 IN (SELECT related_column FROM other_table WHERE condition);
Exemplo
VBELN IN ( SELECT VBELN FROM VBAK WHERE ERNAM = 'LEE' )
Filtrar a combinação de condições de data e valor
Pode combinar condições baseadas em datas e valores num filtro complexo.
Sintaxe
SELECT * FROM table_name \ WHERE (column1 = 'value1' OR column2 = 'value2') \ AND datetime_column > 'target_datetime';
Exemplo
( ERDAT EQ '20220722' OR ERNAM EQ 'LEE' ) AND VDATU GT '20210623'
Filtro que contém datas de formatação
No SAP, os campos de data e hora são sempre guardados sem -
nem :
ao nível da base de dados.
Sintaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'YYYY-MM-DD HH:MM:SS' \ AND datetime_column <= 'YYYY-M
Não suportado: filtro que contém funções e operadores de comparação
No SAP, as funções na cláusula WHERE da QUERY não são suportadas.
Não suportado: filtro que contém intervalos
No SAP, a função NOW()
não é suportada.
Sintaxe
SELECT * FROM table_name \ WHERE datetime_column >= NOW() - INTERVAL X DAY;
Não suportado: filtro que extrai o componente de data
No SAP, a filtragem de desvio não é suportada.
Exemplo
WHERE YEAR+0(4) = 2023
Mapeamentos de tipos de dados
A tabela seguinte é uma lista de tipos de dados SAP com os tipos de dados do Cloud Data Fusion correspondentes.
Tipo de dados SAP | Tipo ABAP | Descrição do SAP | Tipo de dados do Cloud Data Fusion |
---|---|---|---|
INT1 (numérico) |
b | Número inteiro de 1 byte | int |
INT2 (numérico) |
s | Número inteiro de 2 bytes | int |
INT4 (numérico) |
i | Número inteiro de 4 bytes | int |
INT8 (numérico) |
8 | Número inteiro de 8 bytes | longo |
DEC (numérico) |
p | Número compactado no formato BCD (DEC) | decimal |
DF16_DEC , DF16_RAW (numérico) |
a | Vírgula flutuante decimal de 8 bytes IEEE 754r | dupla |
DF34_DEC , DF34_RAW (numérico) |
e | Vírgula flutuante decimal de 16 bytes IEEE 754r | dupla |
FLTP (numérico) |
f | Número de vírgula flutuante binário | dupla |
CHAR , LCHR (personagem) |
c | String de carateres | de string |
SSTRING , GEOM_EWKB (personagem) |
de string | String de carateres | de string |
STRING (Caráter) |
de string | CLOB de string de carateres | bytes |
NUMC , ACCP (personagem) |
n | Texto numérico | de string |
RAW , LRAW (byte) |
x | Dados binários | bytes |
RAWSTRING (byte) |
xstring | BLOB de string de bytes | bytes |
DATS (data/hora) |
d | Data | data |
TIMS (data/hora) |
t | Hora | tempo |
TIMS (data/hora) |
utcl | (Utclong), TimeStamp | timestamp |
Exemplos de utilização
São suportados dois contextos de extração:
- Tabelas e vistas da base de dados SAP
- SAP ABAP CDS
Em cada um dos contextos, o plug-in de tabela SAP suporta tabelas e vistas de base de dados padrão e personalizadas.
Limitações
O plug-in de tabela SAP tem as seguintes limitações:
- Não suporta a união de tabelas.
- Não suporta vistas CDS com parâmetros.
- Não suporta campos sem chave.
- Se a funcionalidade Snapshots estiver ativada, a utilização de um tamanho do pacote superior a 30 000 pode causar falhas no pipeline. O tamanho deste pacote pode variar consoante o número de colunas na tabela SAP. Pode calcular um tamanho ideal do pacote para uma tabela através desta fórmula: tamanho da linha (em número de carateres) * 5.
- O Gestor de associações permite-lhe procurar um máximo de 1000 nomes de tabelas SAP.
- Quando ocorre um erro no pipeline, como um erro no destino, o plug-in SAP Table tenta limpar todos os processos ativos do lado do SAP relacionados com a extração chamando o RFM personalizado destinado à limpeza:
/GOOG/RFC_READ_TABLE_CLEANUP
.
Notas de lançamento
O que se segue?
- Saiba mais sobre o SAP no Google Cloud.