Solução de problemas

Nesta página, você verá como resolver problemas com o Cloud Data Fusion.

O pipeline está parado

Nas versões do Cloud Data Fusion anteriores à 6.2, há um problema conhecido em que os pipelines ficam presos nos estados Starting ou Running. Interromper o pipeline resulta no seguinte erro: Malformed reply from SOCKS server. Esse erro se deve à falta de recursos de memória adequados no nó mestre do Dataproc.

Recomendações

Para evitar que o pipeline fique preso na próxima execução, exclua o cluster do Dataproc. Em seguida, atualize a memória mestre no perfil do Compute Engine:

  • Obrigatório: aumente o tamanho do cluster do Dataproc para pelo menos duas CPUS e os nós mestres para pelo menos 8 GB.
  • Opcional: migre para o Cloud Data Fusion 6.2. A partir da versão 6.2, as execuções de pipeline são enviadas por meio da API Dataproc Job e não impõem muita utilização da memória no nó mestre. Porém, ainda é recomendado usar duas CPUs e nós mestres de 8 GB para jobs de produção.

Como alterar o tamanho do cluster

API REST

Para alterar o tamanho do cluster, exporte o perfil do Compute Engine e use a API REST para atualizar as configurações de memória:

  1. Exporte o perfil do Compute. Ele é salvo localmente em um arquivo JSON.
  2. Edite as seguintes configurações de memória no arquivo JSON: atualize masterCPUs para pelo menos 2 e masterMemoryMB para pelo menos 8192 MB (aproximadamente 8 GB).

    {
     "name": "masterCPUs",
     "value": "2",
     "isEditable": true
    },
    {
     "name": "masterMemoryMB",
     "value": "8192",
     "isEditable": true
    },
    
  3. Use a API REST para atualizar o perfil do Compute. É possível usar cURL ou o Executor HTTP na IU.

    Para cURL, use o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" https://<data-fusion-instance-url>/api/v3/profiles/<profile-name> -X PUT -d @<path-to-json-file>

Como recuperar o pipeline

Para recuperar o pipeline travado, reinicie a instância. Reinicie a instância usando a API REST ou a ferramenta de linha de comando gcloud.

API REST

Para reiniciar a instância, use o método restart().

gcloud

Para reiniciar a instância, execute o seguinte comando:

gcloud beta data-fusion instances restart

Pipelines simultâneos estão paralisados

O seguinte problema pode ocorrer quando você executa muitos pipelines simultâneos: os jobs de pipeline travam nos estados Starting, Provisioning ou Running. A IU do Cloud Data Fusion se torna lenta ou não responde. Quando isso acontece, talvez não seja possível interromper os pipelines na IU ou com chamadas de API.

Recomendação

  1. Reinicie a instância.

    API REST

    Para reiniciar a instância, use o método restart().

    gcloud

    Para reiniciar a instância, execute o seguinte comando:

    gcloud beta data-fusion instances restart

  2. Divida as execuções simultâneas do pipeline. Se isso não for possível ou se o problema persistir, consulte Como receber suporte.

O plug-in do ingresso não mostra as condições de participação

O seguinte problema ocorre no Cloud Data Fusion versão 6.4.0, quando você usa o plug-in do Joiner, que permite alternar entre condições básicas e avançadas de mesclagem. Depois de fazer upgrade ou importar um pipeline de uma versão anterior e abrir a página de propriedades do Joiner, a condição básica de mesclagem do pipeline configurado não será exibida. Esse problema não afeta como o pipeline é executado. A condição ainda existe.

Recomendação

Para resolver o problema:

  1. Clique em System Admin > Configuration > Make HTTP Calls.
  2. Nos campos do executor de chamadas HTTP, digite:

    PUT namespaces/system/artifacts/core-plugins/versions/CORE_PLUGIN_VERSION/properties/widgets.Joiner-batchjoiner?scope=SYSTEM

    Para a CORE_PLUGIN_VERSION, use a versão mais recente do plug-in de núcleo.

  3. Cole o seguinte conteúdo JSON no campo Corpo:

    0967c-fdb73
    2ee80-67055
    b41f9-1dcd9
    425a5-cf822
    7e1a0-485e6
    eda47-040ea
    27430-fabba
    803ec-2c6e7
    8f7e0-2738d
    e22b5-4c375
    b3abb-778e4
    2deda-2d6be
    47855-b451d
    3e356-1268e
    f0ff9-876b6
    623df-8703a
    

  4. Clique em Send.

Se a página do Pipeline estiver aberta em outra janela, talvez seja necessário atualizar a página para ver as condições de junção.

A replicação do SQL Server não replica todas as colunas das tabelas alteradas

O problema a seguir ocorre em jobs de replicação que estão replicando dados de uma tabela no SQL Server. Se a tabela de origem de replicação tiver uma coluna recém-adicionada, ela não será adicionada automaticamente à tabela da CDC. É preciso adicioná-la manualmente à tabela de CDC subjacente.

Recomendação

Para resolver o problema:

  1. Desative a instância da CDC:

    EXEC sp_cdc_disable_table
    @source_schema = N'dbo',
    @source_name = N'myTable',
    @capture_instance = 'dbo_myTable'
    GO
    
  2. Ative a instância de CDC novamente:

    EXEC sp_cdc_enable_table
    @source_schema = N'dbo',
    @source_name = N'myTable',
    @role_name = NULL,
    @capture_instance = 'dbo_myTable'
    GO
    
  3. Crie um novo job de replicação.

Para mais informações, consulte Como gerenciar alterações nas tabelas de origem.

Replicação e bancos de dados sempre ativados do SQL Server

Uma origem do Microsoft SQL Server pode capturar alterações de uma réplica somente leitura sempre ativada. Para essa configuração, o argumento do ambiente de execução source.connector.database.applicationIntent=ReadOnly precisa ser transmitido para o job de replicação. Sem esse argumento de ambiente de execução, o job falha com o seguinte erro:

Producer failure java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: Failed to update database "DATABASE_NAME" because the database is read-only.

Recomendação

Para resolver o erro, defina source.connector.database.applicationIntent=ReadOnly como um argumento de ambiente de execução. Isso define internamente a snapshot.isolation.mode como snapshot.

O pipeline falha ou apresenta resultados incorretos com a versão 0.17.0, ou seja, o coletor do BigQuery.

Há um problema conhecido em que os pipelines de dados que incluem o plug-in do coletor do BigQuery versão 0.17.0 falham ou fornecem resultados incorretos. Esse problema foi resolvido na versão 0.17.1.

Recomendação

Para resolver esse problema, atualize as versões do plug-in do Google Cloud:

  1. Receba a versão 0.17.1 ou posterior do Google Cloud.
    1. Na IU da Web do Cloud Data Fusion, clique em HUB.
    2. Selecione Google Cloud versão 0.17.1 ou posterior e clique em Implantar.
  2. Altere todos os plug-ins do Google Cloud que o pipeline usa para a mesma versão com uma das seguintes opções:
    • Para atualizar todas as versões do plug-in de uma só vez, exporte o pipeline atual e importe-o novamente. Ao importá-la, selecione a opção para substituir todos os plug-ins pela versão mais recente.
    • Para atualizar plug-ins manualmente:
      1. Abra a página do Pipeline Studio.
      2. No menu Coletor, mantenha o ponteiro do mouse sobre o BigQuery e clique em Alterar.
      3. Selecione a versão 0.17.1 ou posterior.
      4. Repita para qualquer outro plug-in do Google Cloud que você usar, como o plug-in de origem do BigQuery.

O plug-in de origem do SQL Server é compatível com o tipo de dados Datetime

Nas versões anteriores da origem do SQL Server (versão 1.5.3 ou anterior):

  • Os tipos de dados datetime e datetime2 do SQL Server são mapeados para o tipo de dados timestamp do CDAP.
  • O tipo de dados datetimeoffset é mapeado para o tipo de dados CDAP string.

Embora a versão 1.5.4 do plug-in seja incompatível com versões anteriores, os pipelines que trabalham com a 1.5.3 podem não funcionar após o upgrade para a versão 1.5.4 se um estágio downstream no pipeline depende do esquema de saída da origem (porque o esquema de saída muda agora). A versão 1.5.4 gera uma NullPointerException quando datetime, datetime2 e datetimeoffset têm valores nulos.

As versões 1.5.5 e posteriores são mais compatíveis com datetime. Os pipelines que funcionam na versão 1.5.3 ainda funcionarão após o upgrade para a 1.5.5 na maioria dos casos. As configurações de esquema de saída existentes no plug-in de origem serão respeitadas. Por exemplo, se você já tiver o esquema de saída definido para mapear os tipos de dados datetime e datetime2 para o tipo de dados timestamp e o tipo de dados datetimeoffset para o string, eles ainda serão respeitados.

O caso especial é quando você usa uma macro para o nome do banco de dados, do esquema ou da tabela e se não tiver especificado manualmente um esquema de saída. Assim, o esquema é detectado e mapeado no ambiente de execução. A versão antiga (1.5.3) mapeia datetime e datetime2 para timestamp, e o tipo datetimeoffset para string no ambiente de execução. e as versões 1.5.5 e posteriores as mapearão para datetime no tempo de execução.

Recomendação

Para resolver esse problema, faça upgrade do pipeline para usar a versão 1.5.5 ou posterior do plug-in.

Após o upgrade, os tipos de dados datetime, datetime2 e datetimeoffset do SQL Server são mapeados para o tipo de dados de data e hora do CDAP no ambiente de execução. Se você tiver um estágio ou coletor downstream que consome o carimbo de data/hora original (para o qual datetime e datetime2 foram mapeados) ou a string (para a qual datetimeoffset foi mapeado) atualizá-los ou esperar que eles consumam dados datetime. Para mais informações, consulte Fonte do lote do CDAP do SQL Server.