O plug-in de origem em lote da tabela SAP (plug-in da tabela SAP) permite ler dados de tabelas ou visualizações padrão e personalizadas do SAP. Ele permite a ingestão de dados em massa de aplicativos SAP no BigQuery ou em qualquer outro sistema de destino compatível usando o Cloud Data Fusion. O plug-in tem os seguintes recursos principais:
- Usa SAP ECC, SAP S4/HANA ou SAP BW como um sistema de origem
- Não usa a CDC (captura de dados alterados) do SAP para rastrear e extrair dados novos e delta nas fontes de dados.
- Usa o modo de extração em lote
- Compatível com tabelas SAP e visualizações ABAP CDS como fontes de dados
- Acessa dados do SAP pela camada de aplicativo
É possível ler dados de:
- Tabelas transparentes
- Tabelas de cluster
- Mesas de bilhar
- Visualizações de CDS ABAP
- Objetos ADSO do SAP BW
Versões de software compatíveis
| Software | Versões |
|---|---|
| SAP S4/HANA | SAP S4/HANA 1909 e versões mais recentes |
| SAP ECC | SAP ERP6 NW 7.31 SP16 e posterior |
| SAP JCo | SAP JCo versão 3.0.20 e mais recente |
| Cloud Data Fusion | 6.3 e versões mais recentes |
Para mais informações sobre o SAP em Google Cloud, consulte a Visão geral do SAP em Google Cloud.
Antes de começar
Configure os seguintes sistemas e serviços usados pelo plug-in de tabela do SAP:
- Configure o sistema ERP da SAP.
Esse processo inclui as seguintes etapas:
- Instale os arquivos de transporte SAP.
- Configure as autorizações e os papéis necessários do SAP.
- Configure o SAP Java Connector.
Implante 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 você fizer upgrade da versão da instância ou do plug-in do Cloud Data Fusion, avalie o impacto das mudanças no escopo funcional e na performance do pipeline.
Estabeleça a conectividade RFC entre o Cloud Data Fusion e o SAP.
- Verifique se a comunicação está ativada entre a instância do Cloud Data Fusion e o servidor SAP.
- Para instâncias particulares, configure o peering de rede VPC.
- O sistema SAP e a instância do Cloud Data Fusion precisam estar no mesmo projeto.
Configurar o plug-in
- Acesse a interface da Web do Cloud Data Fusion e clique em Studio.
- Verifique se Pipeline de dados – lote está selecionado (não Tempo real).
- No menu Origem, clique em Tabela SAP. O nó "Tabela do SAP" aparece no pipeline.
- Para configurar a origem, acesse o nó "Tabela SAP" e clique em Propriedades.
Insira as seguintes propriedades. Para uma lista completa, consulte Propriedades.
- Insira um Rótulo para o nó da tabela SAP, por exemplo,
SAP tables. Insira os detalhes da conexão. É possível configurar uma conexão única ou uma conexão reutilizável.
Nova conexão
Para adicionar uma conexão única ao SAP, siga estas etapas:
- Mantenha a opção Usar conexão desativada.
Na seção Conexão, insira as seguintes informações da conta SAP nestes campos:
- No campo Nome de referência, insira um nome para a conexão que identifica essa origem para linhagem.
- No campo Cliente SAP, insira o nome do cliente de uma instância ou ambiente específico no SAP. Um administrador do SAP pode fornecer o nome do cliente.
- No campo Idioma SAP, insira um idioma de logon do SAP. O padrão é EN (inglês).
Selecione um dos seguintes Tipos de conexão.
- Direto (via servidor de aplicativos SAP). Se você escolher esse tipo padrão, insira informações nos seguintes campos: Host do servidor de aplicativos SAP, Número do sistema SAP e SAP Router.
- Balanceamento de carga (via servidor de mensagens SAP). Se você escolher esse tipo, insira informações nos seguintes campos: Host do SAP Message Server, Serviço ou número da porta do SAP Message Server, ID do sistema SAP (SID) e Nome do grupo de logon do SAP.
No campo Nome da tabela/visualização da SAP, insira o nome da tabela ou visualização do seu sistema SAP.
Forneça as credenciais do SAP: peça ao administrador do SAP o nome de usuário de logon do SAP e a senha.
No campo Caminho do Cloud Storage da biblioteca JCo, insira o caminho do SAP Java Connector (SAP JCo) no Cloud Storage que contém os arquivos da biblioteca SAP JCo que você enviou.
Para gerar um esquema com base nos metadados da SAP que mapeia tipos de dados da SAP para tipos de dados correspondentes do Cloud Data Fusion, clique em Receber esquema. Para mais informações, consulte Mapeamentos de tipo de dados.
Opcional: para otimizar a carga de ingestão do SAP, insira informações nos seguintes campos:
Com as Opções de filtro, é possível extrair registros com base em condições de seleção, como colunas com um conjunto definido de valores. Defina as condições na sintaxe do OpenSQL em uma cláusula
WHERE. Por exemplo, esta consulta retorna todas as linhas da tabelaRosterem que a colunaSchoolIDtem o valorSchoolID > 52:SELECT * FROM Roster WHERE SchoolID > 52;Para mais informações, consulte Filtros compatíveis.
No campo Número de linhas a serem buscadas, é possível limitar os dados extraídos fornecendo um número inteiro positivo de linhas.
No campo Número de divisões, é possível criar partições para extrair registros de dados em paralelo, o que melhora a performance. O número de divisões pode afetar os processos de trabalho do SAP e precisa ser selecionado com cuidado.
No campo Tamanho do pacote, especifique o número de registros a serem extraídos em uma única chamada de rede SAP. O tamanho do pacote afeta o desempenho e os recursos disponíveis e precisa ser selecionado com cuidado.
Conexão reutilizável
Para reutilizar uma conexão, siga estas etapas:
- Ative a opção Usar conexão.
- Clique em Procurar conexões.
Clique no nome da conexão.
Se não houver uma conexão, siga estas etapas para criar uma reutilizável:
- Clique em Adicionar conexão > SapTable.
- Na página Criar uma conexão SapTable, insira um nome e uma descrição para a conexão.
- No campo Cliente SAP, insira o nome do cliente de uma instância ou ambiente específico no SAP. Um administrador do SAP pode fornecer o nome do cliente.
- No campo Idioma SAP, insira um idioma de logon do SAP. O padrão é EN (inglês).
Selecione um dos seguintes Tipos de conexão.
- Direto (via servidor de aplicativos SAP). Se você escolher esse tipo padrão, insira informações nos seguintes campos: Host do servidor de aplicativos SAP, Número do sistema SAP e SAP Router.
- Balanceamento de carga (via servidor de mensagens SAP). Se você escolher esse tipo, insira informações nos seguintes campos: Host do servidor de mensagens SAP, Serviço ou número da porta do servidor de mensagens SAP, ID do sistema SAP (SID) e Nome do grupo de logon SAP.
Forneça as credenciais do SAP: peça ao administrador do SAP os valores de nome de usuário de logon do SAP e senha.
No campo Caminho do Cloud Storage da biblioteca JCo, insira o caminho do SAP Java Connector (SAP JCo) no Cloud Storage que contém os arquivos da biblioteca SAP JCo que você enviou.
Opcional: no campo Propriedades adicionais da conexão SAP, insira pares de chave-valor que precisam substituir os padrões do SAP JCo.
Clique em Criar.
- Insira um Rótulo para o nó da tabela SAP, por exemplo,
Propriedades
| Propriedade | Ativada para macros | Propriedade obrigatória | Descrição |
|---|---|---|---|
| Rótulo | Não | Sim | O nome do nó no pipeline de dados. |
| Usar conexão | Não | Não | Use uma conexão reutilizável. Se uma conexão for usada, não será necessário fornecer as credenciais. Para mais informações, consulte Gerenciar conexões. |
| Nome de referência | Não | Sim | Se a opção Usar conexão não estiver ativada, esse campo vai aparecer. O nome da conexão a ser usada para linhagem. |
| Nome | Não | Sim | Se a opção Usar conexão estiver ativada, esse campo vai aparecer. O nome da conexão reutilizável. |
| Cliente SAP | Sim | Sim | A instância ou o ambiente em um sistema SAP. |
| Capturar snapshot | Sim | Sim | Ativar snapshots de dados no SAP. Quando ativar os snapshots:
Quando desativar os instantâneos: você está executando várias extrações de dados de grande volume em paralelo. Os snapshots usam tabelas de buffer no SAP, o que pode causar problemas de out of memory no SAP. No entanto, quando a extração de dados é concluída, a tabela de buffer é limpa. |
| Idioma SAP | Sim | Sim | O idioma em que a interface do usuário e os dados do SAP são exibidos e processados. |
| Tipo de conexão | Não | Sim | O tipo de conexão SAP: Direta ou Balanceamento de carga. |
| Host do servidor de aplicativos SAP | Sim | Não | Somente para o tipo de conexão Direta, esse nome de host é do servidor de aplicativos SAP, que serve como uma camada de middleware entre clientes SAP (como a interface da Web SAP, navegadores da Web ou apps móveis) e o banco de dados subjacente. |
| Número do sistema SAP | Sim | Não | Apenas para o tipo de conexão Direta, esse número é o identificador exclusivo atribuído a cada sistema SAP. Por exemplo,
00. |
| SAP Router | Sim | Não | Somente para o tipo de conexão Direta, essa é a string do roteador para o servidor proxy, que fornece um canal seguro para comunicação entre sistemas SAP e clientes ou parceiros externos. |
| Host do servidor de mensagens SAP | Sim | Não | Apenas para o tipo de conexão Balanceamento de carga, este é o nome do host, que facilita o balanceamento de carga em vários servidores de aplicativos no SAP. |
| Serviço ou número da porta do SAP Message Server | Sim | Não | Somente para o tipo de conexão Balanceamento de carga, essa é a porta de rede em que o SAP Message Server escuta conexões recebidas de clientes SAP e servidores de aplicativos no SAP. |
| ID do sistema SAP (SID) | Sim | Não | Somente para o tipo de conexão Balanceamento de carga, esse ID é atribuído a cada sistema SAP. |
| Nome do grupo de logon da SAP | Sim | Não | O nome do agrupamento lógico ou da configuração de vários servidores de aplicativos SAP. O padrão é PUBLIC. |
| Nome da tabela/visualização da SAP | Sim | Sim | Um nome de tabela ou visualização válido que não diferencia maiúsculas de minúsculas e em que todas as colunas podem ser extraídas. |
| Nome de usuário de logon SAP | Sim | Sim | Nome de usuário do SAP Recomendado: se o nome de usuário mudar periodicamente, use uma macro. |
| Senha de logon da SAP | Sim | Sim | Senha do SAP. Recomendado: use macros seguras. |
| ID do projeto do GCP | Sim | Sim | ID do projetoGoogle Cloud . |
| Caminho do GCS da biblioteca SAP JCo | Sim | Sim | O caminho do Cloud Storage em que você fez upload dos arquivos da biblioteca SAP JCo. |
| Gerar 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 correspondentes do Cloud Data Fusion. Consulte Mapeamento de tipo de dados. |
| Outras propriedades de conexão do SAP | Sim | Não | Defina outras propriedades do SAP JCo para substituir os padrões.
Por exemplo, definir jco.destination.pool_capacity = 10 substitui a capacidade padrão do pool de conexões. |
| Filtros | Sim | Não | Condições especificadas na sintaxe do Open SQL que filtram usando uma cláusula WHERE do SQL. Extraia registros com base em condições, como
aqueles em colunas com um conjunto definido de valores ou um intervalo de valores.
Para mais informações, consulte Filtros compatíveis. |
| Número de linhas a serem buscadas | Sim | Não | Limita o número de registros extraídos.
|
| Número de divisões a serem geradas | Sim | Não | Cria partições para extrair registros em paralelo. O mecanismo do ambiente de execução cria o número especificado de partições (e conexões SAP) enquanto extrai os registros. Tenha cuidado ao aumentar esse valor, já que ele aumenta as conexões simultâneas com o SAP. Recomendado: planeje ter conexões SAP para cada pipeline e o número total de pipelines em execução simultânea. Se o valor for 0 ou for deixado em branco, o Cloud Data Fusion vai escolher um valor adequado com base no número de executores disponíveis, nos registros a serem extraídos e no tamanho do pacote. |
| Tamanho do pacote | Sim | Não | O número de registros a serem extraídos em uma única chamada de rede SAP. É
o número de registros que o SAP armazena em buffer na memória durante cada
chamada de extração de rede. Tenha cuidado ao definir essa propriedade. Vários pipelines de dados que extraem dados podem atingir o pico de uso da memória, causando falhas devido a erros Out of memory.
|
Filtros compatíveis
As seguintes condições de filtro são aceitas.
Filtro que contém um operador de comparação
Use operadores de comparação para fazer filtragens mais complexas 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 correspondência de padrões. Para corresponder a qualquer caractere, use o símbolo % como um curinga.
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 a serem correspondidos.
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 a serem correspondidos.
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 período
Use períodos para extrair linhas em que uma coluna de data e hora esteja dentro de um período 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 extrair linhas em que datetime é usado.
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 e hora incluir data e hora, você poderá filtrar de acordo com isso.
Sintaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'target_datetime' \ AND datetime_column <= 'target_datetime';
Exemplo
TIMESTAMP GE '20210602144800' AND TIMESTAMP LE '20210624080836'
(Formato do carimbo de data/hora : AAAAMMDDHHMMSS)
Filtro que combina várias condições com operadores lógicos
É possível recuperar linhas que atendem a várias condições usando 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' )
Filtrar combinando condições aninhadas
É possível combinar condições de maneira 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
É possível 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 combinando condições de data e valor
É possível combinar condições com base em datas e valores em um 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 salvos sem - ou : no nível do banco de dados.
Sintaxe
SELECT * FROM table_name \ WHERE datetime_column >= 'YYYY-MM-DD HH:MM:SS' \ AND datetime_column <= 'YYYY-M
Indisponível: filtro que contém funções e operadores de comparação
No SAP, não há suporte para funções na cláusula WHERE da QUERY.
Indisponível: filtro com intervalos
No SAP, a função NOW() não é compatível.
Sintaxe
SELECT * FROM table_name \ WHERE datetime_column >= NOW() - INTERVAL X DAY;
Indisponível: filtro que extrai o componente de data
No SAP, a filtragem por ajuste não é compatível.
Exemplo
WHERE YEAR+0(4) = 2023
Mapeamentos de tipo de dados
A tabela a seguir é uma lista de tipos de dados SAP com os tipos correspondentes do Cloud Data Fusion.
| Tipo de dados do SAP | Tipo ABAP | SAP description | Tipo de dados do Cloud Data Fusion |
|---|---|---|---|
INT1 (numérico) |
b | Inteiro de 1 byte | int |
INT2 (numérico) |
s | Inteiro de 2 bytes | int |
INT4 (numérico) |
i | Inteiro de 4 bytes | int |
INT8 (numérico) |
8 | Inteiro de 8 bytes | long |
DEC (numérico) |
p | Número no pacote no formato BCD (DEC) | decimal |
DF16_DEC, DF16_RAW (numérico) |
a | Ponto flutuante decimal de 8 bytes IEEE 754r | double |
DF34_DEC, DF34_RAW (numérico) |
e | Ponto flutuante decimal de 16 bytes IEEE 754r | double |
FLTP (numérico) |
f | Número de ponto flutuante binário | double |
CHAR, LCHR (personagem) |
c | String de caracteres | string |
SSTRING, GEOM_EWKB (personagem) |
string | String de caracteres | string |
STRING (caractere) |
string | CLOB de string de caracteres | bytes |
NUMC, ACCP (personagem) |
n | Texto numérico | string |
RAW, LRAW (byte) |
x | Dados binários | bytes |
RAWSTRING (byte) |
xstring | String de bytes BLOB | bytes |
DATS (data/hora) |
d | Data | data |
TIMS (data/hora) |
t | Hora | tempo |
TIMS (data/hora) |
utcl | (Utclong), TimeStamp | timestamp |
Casos de uso
Há suporte para dois contextos de extração:
- Tabelas e visualizações de banco de dados SAP
- CDS do SAP ABAP
Em cada um dos contextos, o plug-in de tabela do SAP é compatível com tabelas e visualizações de banco de dados padrão e personalizadas.
Limitações
O plug-in de tabela SAP tem as seguintes limitações:
- Não é possível unir tabelas.
- Não há suporte para visualizações de CDS com parâmetros.
- Não é compatível sem campos de chave.
- Se o recurso de snapshots estiver ativado, usar um tamanho de pacote maior que 30.000 poderá causar falhas no pipeline. O tamanho do pacote pode variar dependendo do número de colunas na tabela do SAP. É possível calcular um tamanho ideal de pacote para uma tabela usando esta fórmula: tamanho da linha (em número de caracteres) * 5.
- Com o Gerenciador de conexões,é possível navegar por até 1.000 nomes de tabelas SAP.
- Quando ocorre um erro de pipeline, como um erro no coletor, o plug-in da tabela SAP
tenta limpar todos os processos ativos do lado do SAP relacionados à
extração chamando o RFM personalizado destinado à limpeza:
/GOOG/RFC_READ_TABLE_CLEANUP.
Notas de lançamento
A seguir
- Saiba mais sobre o SAP no Google Cloud.