Problemas Conhecidos (Limitações)

As seguintes limitações e problemas conhecidos aplicam-se a IBM® watsonx.data.

watsonx.data As APIs retornam uma resposta vazia no plano watsonx.data Lite (catálogo sample_data)

Os seguintes pontos watsonx.data finais da API retornam respostas vazias para catálogos de amostra do Hive (balde IBM COS):

APIs Unity

  • /api/2.1/unity-catalog/schemas/{catalog_name}.{schema_name}
  • /api/2.1/unity-catalog/tables?catalog_name={catalog_name}&schema_name={schema_name}

APIs de console

  • /v3/tables/{table_name}?catalog_name={catalog_name}&schema_name={schema_name}
  • /v3/columns?catalog={catalog_name}&schema={schema_name}
  • /v3/schemas/{schema_name}?catalog={catalog_name}
  • /v3/schemas?catalog={catalog_name}

Aplicativos Spark não exibidos no Console ao usar pontos de extremidade privados

Quando você habilita os Pontos de Extremidade Privados Virtuais (VPE) para aumentar a segurança, os aplicativos Spark enviados para pontos de extremidade privados não ficam visíveis no watsonx.data console. A lista de aplicativos aparece apenas quando os pontos finais públicos também estão habilitados.

Solução alternativa: você pode acessar a lista de aplicativos de dentro da sua VPC usando o VPE Gateway.

ANALYZE TABLE As operações em tabelas no sample_data catálogo não são suportadas

Importação/exportação de CPG não suportada para instâncias watsonx.data no escopo da conta

Para as watsonx.data instâncias, que agora estão no escopo da conta, a funcionalidade de importação/exportação do Common Policy Gateway (CPG) não é suportada. Qualquer tentativa de usar esses recursos falhará e retornará a seguinte mensagem de erro: import/export features will not be supported for this instance: <instanceID>.

O Spark 4.0 não consegue executar consultas SQL no modo ANSI com a configuração fornecida

Ao executar consultas SQL no Spark 4.0 com o modo ANSI ativado (spark.sql.ansi.enabled=true), as consultas falham devido ExtendedAnalysisException à aplicação rigorosa de tipos no modo ANSI. Esse problema ocorre mesmo ao usar configurações que funcionam no Spark 3.5.

Solução alternativa: Use o modo não ANSI definindo o parâmetro: "spark.sql.ansi.enabled": "false"

Desative o modo ANSI no Spark 4.0 para evitar falhas nas consultas TPC-DS

Quando você usa o Spark 4.0 como tempo de execução, o modo ANSI é ativado por padrão. Isso causa falhas ao executar consultas TPC-DS padrão. Para evitar esses problemas, o modo ANSI deve ser desativado nos modelos 4.0 Spark definindo a configuração spark.sql.ansi.enabled": "false". Isso garante que o modo ANSI não seja ativado automaticamente e evita incompatibilidades de consulta.

Falhas de acesso quando o modo de Context-based restrictions segurança está ativado

Quando Context-based restrictions está ativado, as tarefas de ingestão falham. Além disso, outras operações que exigem acesso do administrador do metastore também falham. A ingestão e as operações de nível administrativo funcionam conforme o esperado quando o CBR está desativado.

watsonx.data A operação do assistente falha devido à política context-based restrictions de rede

Ao tentar recuperar informações para uma watsonx.data instância por meio do watsonx.data assistente, a solicitação pode falhar com um erro de autenticação se Context-based restrictions estiver habilitado no nível da conta. Isso ocorre quando o watsonx.data assistente não está incluído nos endereços IP confiáveis definidos na Context-based restrictions política, resultando na recusa da solicitação da API.

Erro de acesso negado em consultas Presto SQL e Spark quando o serviço Hadoop Ranger está integrado

Ao integrar o serviço Hadoop Ranger no watsonx.data, as consultas SQL executadas usando o Presto mecanismo falham com o erro: Access denied: USE. Isso ocorre durante operações como a criação de esquemas no catálogo padrão por meio do Espaço de Trabalho de Consulta. Além disso, se o serviço Presto Ranger estiver configurado e a consulta for executada usando o mecanismo Spark, a consulta também falhará com o mesmo erro.

Falha ao filtrar colunas DATE, TIME, TIMESTAMP e VARBINARY usando a cláusula WHERE no MongoDB Conector

Ao usar o MongoDB conector em Presto, as consultas com uma WHERE cláusula falham ao retornar registros ao filtrar colunas dos seguintes tipos de dados:

  • DATA
  • Horário
  • TIMESTAMP
  • Varbinary

Essa limitação afeta cenários em que regras de governança, como, ROW FILTER dependem da cláusula WHERE subjacente para avaliação.

A sincronização manual do metastore do Otimizador de Consultas não está disponível para o plano Lite

Para instâncias Lite do watsonx.data, tanto a sincronização manual quanto a sincronização inicial do metastore para o Query Optimizer não são suportadas na versão 2.3. Se a sincronização inicial falhar, as consultas dos clientes voltarão ao otimizador nativo do Presto em vez do Otimizador de Consultas. Para obter mais informações, consulte Sincronização manual do Otimizador de Consultas com o metastore.

Erro ao conectar-se a watsonx.data na tela Chat with Document

Ao tentar estabelecer uma conexão com watsonx.data a partir da tela Chat with Document (especificamente na região de ca-tor), os usuários encontram o seguinte erro: Erro: A data source of the specified type [null] does not exist.

A desativação da interface do usuário da ACL não impede a filtragem de linhas em Presto

A desativação das ACLs do GenAI por meio da interface do usuário do console não impede totalmente a filtragem em nível de linha no Presto. Isso ocorre porque o site Presto verifica o status da ACL consultando a API GET /acl_storage para verificar a presença do bucket da ACL. Se o bucket ainda estiver registrado, a filtragem continuará mesmo que as ACLs tenham sido desativadas na interface do usuário.

Solução alternativa: Depois de desativar as ACLs por meio da interface do usuário, exclua manualmente o bucket da ACL em watsonx.data.

Acesso não autorizado a colunas em tabelas com campos de esquema idênticos

Se um usuário tiver acesso a uma tabela específica dentro de um esquema, ele poderá inesperadamente visualizar e consultar colunas de outras tabelas no mesmo esquema se essas tabelas compartilharem os mesmos nomes de coluna. Isso ocorre mesmo que o usuário não tenha políticas de acesso explícitas para as outras tabelas.

EXT_METASTORE_SYNC falha devido à incompatibilidade do nome do catálogo

Os usuários podem não estar cientes do nome do catálogo armazenado nos metadados. Portanto, se o nome do catálogo usado na interface do usuário watsonx.data for diferente do especificado no arquivo de metadados, EXT_METASTORE_SYNC falhará, impedindo o uso do Query Optimizer.

Solução alternativa: Crie um catálogo com o mesmo nome dos arquivos de metadados.

Node atraso na atribuição durante a reinicialização do motor

Durante a fase de reinicialização, o mecanismo não consegue atribuir um nó devido à disponibilidade limitada do nó. Como resultado, a criação do esquema é significativamente atrasada.

A página Detalhes do armazenamento na UI do histórico do Spark é carregada em branco

A página Detalhes do armazenamento na interface do usuário do histórico do Spark não renderiza nenhum conteúdo. Enquanto a página é carregada, ela permanece completamente em branco, impedindo que os usuários visualizem ou gerenciem informações relacionadas ao armazenamento. Para capturar informações detalhadas de armazenamento (atualização de bloco) nos registros de eventos, é necessário ativar a configuração spark.eventLog.logBlockUpdates.enabled ao enviar o aplicativo. Para obter mais informações, consulte Envio de aplicativo Spark usando o mecanismo Spark nativo e Acesso ao servidor de histórico do Spark.

O aplicativo Spark falha ao ser executado quando o nome do arquivo contém espaços ou caracteres especiais

Se você carregar um arquivo Python (.py) com espaços ou caracteres especiais em seu nome de arquivo (por exemplo, wordcount (1).py), o trabalho do Spark não será executado. O sistema não lida com esses nomes de arquivos, o que resulta no seguinte erro durante o envio do trabalho.

/opt/ibm/entrypoint/start-spark-job-wrapper.sh: eval: line 293: syntax error near unexpected token (' /opt/ibm/entrypoint/start-spark-job-wrapper.sh: eval: line 293: spark-submit --master spark://spark-master-headless-b778988f-24ff-49c2-aa05-a56f3c204f0b:7077 s3a://sparkqa-donotdelete-pr-7aqi2frntm5vlz/spark_jobs/uploads/8f472c67-23aa-4f94-8ed6-c9f2dbe13e20/application/wordcount (1).py '/opt/ibm/spark/examples/src/main/resources/people.txt''

Solução alternativa: Para evitar esse problema, você deve renomear o arquivo do aplicativo Python para remover espaços e caracteres especiais antes de fazer o upload. Por exemplo, renomeie wordcount (1).py para wordcount_1.py.

O comando Prepared falha em consultas SQL longas devido aos limites de tamanho do cabeçalho em IBM watsonx.data Presto

As instruções preparadas para consultas SQL longas e complexas podem falhar quando executadas por meio de clientes Flight service ou JDBC (por exemplo, DBeaver). Essa falha é causada por erros internos do servidor resultantes da ultrapassagem dos limites padrão de tamanho do cabeçalho HTTP no mecanismo Presto. O problema pode ser reproduzido em Watsonx BI ao enriquecer os ativos de dados de métricas com consultas SQL de tamanho aproximado a 14KB.

Isso não é uma limitação do próprio PrestoDB, mas sim uma consequência do funcionamento da API JDBC PreparedStatement. Quando um cliente ou uma ferramenta de BI usa PreparedStatement,, o texto SQL e os metadados dos parâmetros são serializados e transmitidos como parte dos cabeçalhos da solicitação HTTP para o coordenador Presto. Esse comportamento é padrão para as implementações de drivers do JDBC e não é específico do mecanismo de consulta do Presto.

Solução alternativa: Para atenuar esse problema, considere as seguintes abordagens, dependendo de sua carga de trabalho:

  1. Aumentar os limites de tamanho do cabeçalho

    Atualize a configuração do mecanismo Presto com os seguintes parâmetros para dar suporte a consultas maiores:

    • http-server.max-request-header-size=128kB
    • http-server.max-response-header-size=128kB Essas propriedades já estão na lista de permissões e podem ser ajustadas usando a API de personalização.

    O valor padrão atual é definido com base nos tamanhos típicos de consulta. No entanto, o aumento do limite de tamanho do cabeçalho da solicitação por padrão pode introduzir certas compensações. Um tamanho de cabeçalho maior aumenta o risco de ataques de negação de serviço (DoS DoS ), pois permite que mais dados sejam enviados em cada solicitação. Além disso, cada HTTP solicitação consumirá mais memória, o que pode se tornar significativo em situações de alta simultaneidade. Portanto, esses valores devem ser ajustados com cautela com base em seu ambiente e nos padrões de consulta.

  2. Evite usar o site PreparedStatement para consultas grandes

    Se sua ferramenta de BI ou carga de trabalho tende a gerar consultas SQL muito grandes, considere desativar o PreparedStatement e usar o createStatement. Isso evita a transmissão de grandes cargas úteis de SQL por meio dos cabeçalhos HTTP e pode ser uma abordagem mais dimensionável.

Milvus e a página de detalhes de edição do Presto mostra inicialmente um erro interno do servidor após a criação

Você pode encontrar um erro interno do servidor 500 ao tentar editar a descrição na página de detalhes do mecanismo Milvus e Presto logo após criar o mecanismo. Esse problema geralmente ocorre durante as primeiras tentativas porque o sistema atrasa a propagação da política devido ao armazenamento em cache.

Atraso na atualização da política

As atualizações de políticas de CPG e AMS podem demorar um pouco mais para serem refletidas em todo o sistema. Esse atraso se deve ao novo método de cache e é um comportamento esperado.

O mecanismo Spark externo não consegue se conectar ao armazenamento Amazon S3

Ao usar um mecanismo Spark externo para acessar dados armazenados em um bucket amazon_s3 configurado com autenticação baseada em função do IAM, o mecanismo falha ao se conectar ou recuperar dados.

A conversão da tabela MOR para COW falha no Spark 4.0

O aplicativo Spark de conversão da tabela MOR para COW não é compatível com o Spark 4.0.

Solução alternativa: Use as versões do Spark 3.4 ou 3.5 para realizar a conversão da tabela MOR para COW.

O painel de visualização exibe valores nulos com o mecanismo Presto (C++) devido à incompatibilidade do nome da coluna do catálogo hive

O mecanismo Presto (C++) faz com que o painel de visualização exiba todos os valores nulos de determinadas tabelas devido a uma incompatibilidade entre os nomes das colunas nos arquivos Parquet e a configuração do catálogo Hive.

Solução alternativa: Aplique a seguinte propriedade de sessão:

   set session [catalog_name].file_column_names_read_as_lower_case=true;

Os aplicativos Manta não são executados no Spark 4.0

Os aplicativos Manta (Iceberg, Hudi, Hive, Delta) não são executados quando enviados no Spark 4.0.

Solução alternativa: Execute os aplicativos Manta usando outras versões disponíveis do Spark.

A conexão de teste para conectores de seta falha em clusters habilitados para FIPS

A conexão de teste para conectores de seta pode falhar quando implantada em clusters habilitados para FIPS devido a restrições criptográficas. Isso afeta conectores como Greenplum, MariaDB, e Salesforce, que dependem de fontes de dados subjacentes ou bibliotecas incompatíveis com o modo FIPS durante a validação da conexão.

Apache Kafka falha na conexão de teste em clusters habilitados para FIPS

Para Apache Kafka, a conexão de teste pode falhar, a menos que o SASL_MECHANISM seja explicitamente definido como " SCRAM-SHA-512 ". Esse mecanismo é compatível com os requisitos do FIPS e deve ser usado para garantir testes de conexão bem-sucedidos em ambientes habilitados para FIPS.

Caracteres especiais não suportados na criação de esquemas e tabelas por meio da interface do usuário de ingestão

Os seguintes caracteres especiais não são compatíveis com a criação de esquemas e tabelas por meio da interface do usuário de ingestão: % e + Essas restrições são impostas devido às limitações dos mecanismos de armazenamento subjacentes, como Hive, Delta e Hudi. Embora a página do Data Manager possa permitir um conjunto mais amplo de caracteres especiais (por exemplo, !, @, #, &, _, -, =, +, ], }, < e >), o fluxo de ingestão impõe uma validação mais rigorosa para garantir a compatibilidade entre os serviços.

A execução da consulta falha temporariamente após a atualização de credenciais de armazenamento ou de banco de dados expiradas

Após atualizar as credenciais expiradas de um recurso de armazenamento ou banco de dados associado a um mecanismo Presto, a execução da consulta no Query Workspace falha por aproximadamente 30 a 40 segundos. Após esse atraso, as consultas são executadas com êxito, sem outros problemas.

O trabalho de sincronização de estatísticas permanece travado durante a execução

Os trabalhos de sincronização de estatísticas podem ficar parados durante a execução devido a condições desconhecidas. Quando isso ocorre, os usuários podem verificar os registros para visualizar o status do trabalho no otimizador ou em Db2. Se o status do trabalho for NOTRECEIVED, NOTRUN ou UNKNOWN, os usuários deverão forçar manualmente a exclusão do trabalho.

Depois que o trabalho preso for excluído:

  • Se houver trabalhos na lista Queued, o primeiro será automaticamente movido para Active e começará a ser executado.
  • Se não houver trabalhos na fila, os usuários poderão enviar manualmente um novo trabalho.

Definições de status:

  • NOTRECEIVED: O sistema não recebeu uma chamada para a ID de tarefa fornecida.
  • NOTRUN: um erro impediu que o agendador invocasse o procedimento da tarefa.
  • UNKNOWN: a tarefa começou a ser executada, mas o agendador não conseguiu registrar o resultado devido a uma condição inesperada.

Problema de compatibilidade: O Spark falha ao ler tabelas iceberg escritas pelo presto com Parquet V2

O Spark não consegue ler os dados inseridos nas tabelas iceberg por Presto quando Presto está explicitamente configurado para usar o gravador Parquet V2. Esse problema ocorre porque o Spark não oferece suporte a leituras vetorizadas para determinadas codificações do Parquet V2, como DELTA_BINARY_PACKED. Uma mensagem de erro típica é UnsupportedOperationException: Cannot support vectorized reads for column [CustomerID] optional int32 CustomerID = 1 with encoding DELTA_BINARY_PACKED. Disable vectorized reads to read this table/file at org.apache.iceberg.arrow.vectorized.parquet.VectorizedPageIterator.initDataReader(VectorizedPageIterator.java:98).

Solução alternativa: Se você encontrar esse erro ao ler uma tabela, especialmente uma criada usando versões anteriores do watsonx.data, defina a seguinte configuração do Spark.

   config("spark.sql.iceberg.vectorization.enabled", "false")

Limitação da consulta à tabela information_schema relacionada à função para conectores tpcds ou tpch

Os usuários encontram um erro ao consultar a tabela information_schema relacionada à função para os conectores tpcds ou tpch. Esse comportamento é intencional e esperado para esses conectores em Presto, pois tpcds e tpch são conectores de benchmarking que não oferecem suporte a recursos de segurança baseados em função.

Solução alternativa: Para evitar erros, evite consultar tabelas information_schema relacionadas a funções (como applicable_roles, enabled_roles e funções) para conectores tpcds ou tpch.

Use nomes válidos de esquema, tabela e coluna para garantir a confiabilidade da consulta

Evite usar espaços à esquerda ou à direita em nomes de esquemas, tabelas ou colunas ao criar tabelas no espaço de trabalho Query. Embora a criação possa ser bem-sucedida, esses espaços extras podem causar problemas durante a consulta ou a interação. Para garantir uma operação suave e confiável, sempre use nomes limpos, sem espaços extras.

Limitações do suporte a BLOB e CLOB em Presto

Presto pode ler e gravar em conectores que incluem tabelas com colunas BLOB e CLOB. No entanto, ele não suporta o uso de BLOB ou CLOB como tipos de dados de coluna em instruções CREATE TABLE.

Atraso na aplicação de políticas de controle de acesso em Milvus

Há um atraso entre a criação de políticas de controle de acesso e sua aplicação em Milvus. Esse atraso ocorre devido ao tempo necessário para a sincronização de políticas.

As exibições SQL não podem ser consultadas em todos os mecanismos (Spark e Presto )

As visualizações SQL criadas por um mecanismo com o catálogo Hive iceberg são reconhecidas por outros mecanismos, mas não podem ser consultadas entre eles, pois um mecanismo não consegue entender o dialeto SQL de outro mecanismo.

Detalhes do driver e do grupo de recursos ausentes na resposta da API do Tiny Presto

A API GET presto_engines atualmente retorna null para driver e resource_groups ao consultar os mecanismos Tiny Presto, pois a nova arquitetura omite os detalhes do driver das chamadas get_presto_engine ; no entanto, os usuários existentes ainda podem acessar as informações do driver por meio do endpoint /driver_registration.

Não é possível excluir dados de colunas com caracteres especiais em seus nomes

Não é possível excluir dados de colunas com caracteres especiais em seus nomes, pois não há suporte para caracteres especiais em nomes de colunas dentro da cláusula WHERE.

Erro gerado após o uso prolongado do watsonx.data Assistant

Depois de usar o watsonx.data Assistant por um longo período, ele gera o seguinte erro. There is an error with the message you just sent, but feel free to ask me something else.

Solução alternativa: Recarregar o navegador.

Não é possível registrar novamente o SAL depois de remover o registro existente

O usuário não experimental não consegue registrar novamente o SAL depois de remover o registro existente.

Solução alternativa: execute as seguintes etapas:

  1. Adicione acesso para o usuário na conta de nuvem de acesso IAM.

  2. Use a seguinte API SAL para excluir a integração.

    curl -X 'DELETE' \ 'https://api.dataplatform.cloud.ibm.com/semantic_automation/v1/wxd_integrations/<wxd-instance-id>' \ -H 'accept: */*' \ -H 'Authorization: Bearer <iam_bearer_token>'

  3. Use a API a seguir para verificar o status da integração e certificar-se de que a integração foi excluída.

    curl -X 'GET' \ 'https://api.dataplatform.cloud.ibm.com/semantic_automation/v1/wxd_integrations/<wxd-instance-id>' \ -H 'accept: */*' \ -H 'Authorization: Bearer <iam_bearer_token>'

  4. Registre novamente o SAL.

A criação da tabela materializada no espaço de trabalho de consulta é bem-sucedida, mas falha no notebook do Spark usando as mesmas permissões

Ao tentar criar uma tabela materializada usando uma consulta SQL no espaço de trabalho Query, a operação é bem-sucedida. O usuário tem acesso de leitura ao bucket e às políticas de acesso apropriadas (inserir, atualizar, selecionar, excluir) para o catálogo padrão do Iceberg. No entanto, quando a mesma instrução SQL é executada em um notebook do Spark usando o modelo watsonx.data Spark, é gerado o seguinte erro the action is not allowed.

Solução alternativa: Defina a política L3 para o armazenamento iceberg-bucket na página Create access control policy.

O balde QHMM associa-se ao motor somente quando o motor está em estado de funcionamento

Se você associar um catálogo QHMM ao mecanismo durante o estado de provisionamento, o sistema retornará um erro informando que o catálogo não existe no lado da capacidade de manutenção. No entanto, o sistema associa automaticamente o catálogo QHMM quando o motor está em estado de funcionamento.

Os usuários podem encontrar um erro de "falha na conexão de teste devido a credenciais inválidas"

Os usuários podem encontrar um erro de "falha na conexão de teste devido a credenciais inválidas" para algumas fontes de dados, mesmo quando as credenciais da fonte de dados estão corretas. Esse problema pode ocorrer apesar de credenciais válidas, impedindo testes de conexão bem-sucedidos para fontes de dados.

Solução alternativa: Se encontrar esse erro de falha, entre em contato com o suporte do IBM.

A ausência de estatísticas de coluna NDV em tabelas Iceberg leva a planos de consulta abaixo do ideal

Na implementação atual, para tabelas Iceberg em Presto ( Java ) e Presto (C++), as estatísticas da coluna NDV (Number of Distinct Values) não são usadas quando disponíveis no MDS. Os NDVs são importantes para gerar planos de consulta ideais. Sem eles, pode haver uma degradação significativa do desempenho.

Solução alternativa: Para tabelas não particionadas, use SET SESSION <iceberg_catalog>.hive_statistics_merge_strategy='USE_NULLS_FRACTION_AND_NDV';.

Essa solução alternativa não se aplica a tabelas particionadas.

Limitação da configuração da rede privada virtual

Os pontos de extremidade privados não são compatíveis com mecanismos externos, como IBM Db2 Warehouse, IBM Netezza e IBM Analytics Engine (Spark).

HDFS a adição de balde não é compatível com o CPDCTL

Atualmente, o plug-in cpdctl wx-data não oferece suporte à adição de HDFS buckets.

IBM watsonx.data Presto o conector em Software Hub 5.1.1 e posterior não pode se conectar a IBM watsonx.data Instância de nuvem

IBM watsonx.data Presto o conector não consegue se conectar à instância IBM watsonx.data devido a um erro 520 do Cloudflare. Esse problema ocorre quando várias chamadas simultâneas são feitas para a API GET /engines, especialmente quando a instância watsonx.data tem um grande número de políticas.

A modificação das credenciais do bucket inicial do mecanismo Spark pode interromper os dados e as operações

A atualização das credenciais de acesso para um bucket de armazenamento que foi designado como o bucket inicial do mecanismo Spark durante o processo de provisionamento pode levar a problemas de acesso aos dados e falhas operacionais.

Os administradores do metastore e os visualizadores do metastore não conseguem visualizar o esquema e os detalhes da tabela

Um usuário com privilégios de administrador de metastore e visualizador de metastore no espaço de trabalho de consulta e no Gerenciador de dados não pode visualizar os detalhes do esquema e da tabela, a menos que uma política de visualização seja definida para esquemas e tabelas.

Os cenários de evolução de esquema falham em Presto (C++)

Quando você remove e/ou adiciona colunas da tabela, as consultas podem falhar. Por exemplo, veja a sequência de instruções abaixo, após a qual as consultas na tabela falham.

   create table ice.s3.tessch.12 (age int, name varchar(25), place varchar(25)
   insert into ice.s3.tessch.t12 values (35, 'ken', 'paris')
   alter table ice.s3.tessch.t12 drop column age
   select * from ice.s3.tessch.t12
   alter table ice.s3.tessch.t8 add column place varchar(25)

Solução alternativa: Para PARQUET, execute o seguinte comando na sessão:

   set session <catalog-name>.parquet_use_column_names=true;

Substitua <catalog-name> pelo catálogo real que está sendo usado.

Ou defina hive.parquet.use-column-names=true nas propriedades do catálogo. Para ORC, defina hive.orc.use-column-names=true nas propriedades do catálogo.

Problema com o caractere turco maiúsculo İ no banco de dados Oracle usando o conjunto de caracteres WE8ISO8859P9 ( ORA-00911 Error)

Em um banco de dados Oracle que usa o conjunto de caracteres WE8ISO8859P9, o caractere turco maiúsculo İ não é compatível com o modo OFF (padrão) do sinalizador de recursos de letras maiúsculas e minúsculas, o que leva a erros de caracteres inválidos em ORA-00911:.

Solução alternativa: Defina o sinalizador de recurso de casos mistos como ON.

A visualização padrão information_schema de um catálogo lista esquemas e tabelas de outros catálogos

Se um usuário tiver mais de um catálogo, a visualização padrão do information_schema exibirá os esquemas e as tabelas de outros catálogos também, independentemente dos catálogos associados ao mecanismo.

Hive os nomes de colunas externas com letras maiúsculas em toda a largura não podem ser reconhecidos quando file-column-names-read-as-lower-case está definido como true

Quando a propriedade file-column-names-read-as-lower-case do catálogo do presto worker é definida como true, ela converte os nomes de campo em letras maiúsculas ASCII para letras minúsculas ASCII. Como resultado, os dados em nomes de colunas com caracteres de largura total em maiúsculas não serão reconhecidos e aparecerão como "nulos".

Falha no trabalho do Spark devido à assinatura ADLS expirada durante a operação Write/Delete/Update

O trabalho do Spark falha com o seguinte erro quando executa a operação Write/Delete/Update em um armazenamento ADLS Gen1. Isso ocorre porque a assinatura do ADLS expira no meio do processo. java.io.IOException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature

Solução alternativa: Defina o tempo de expiração da assinatura ADLS como um valor alto. Configure a propriedade spark.hadoop.spark.hadoop.wxd.cas.sas.expiry.period para controlar o tempo de expiração da assinatura ADLS. Atualize o valor padrão de 300s para 43200s.

Presto Limitação do tamanho da senha da CLI

Presto A CLI suporta um tamanho máximo de senha de 1 KB (1024 bytes). Se a senha exceder esse tamanho, o sistema não poderá aceitá-la no campo de senha; em vez disso, ela deverá ser exportada.

O tipo de dados timestamptz não é compatível com uma tabela ORC durante a atualização do console da Web watsonx.data.

Os nomes de bancos de dados que contêm hifens ou espaços não podem ser consultados pelo mecanismo Spark em um notebook Python, mesmo quando a extensão de controle de acesso Spark apropriada tiver sido adicionada.

Os termos comerciais permanecem depois que a integração da camada de automação semântica é excluída do site IBM watsonx.data

Os termos comerciais que foram importados para IBM Knowledge Catalog para uma integração da camada de automação semântica (SAL) em watsonx.data não são removidos quando a integração é excluída. Isso pode resultar em termos comerciais duplicados se uma nova integração SAL for ativada posteriormente e os mesmos termos comerciais ou similares forem carregados novamente.

Solução alternativa: Para evitar termos comerciais duplicados, o administrador do cluster ou o usuário que criou originalmente o registro SAL deve excluir manualmente todos os termos comerciais que foram importados para a integração SAL.

A cláusula EXISTS nas tabelas Apache Phoenix gera uma exceção durante a execução do erro de consulta

As consultas que envolvem a cláusula EXISTS nas tabelas do site Apache Phoenix podem falhar inesperadamente, mesmo quando a coluna referenciada é válida. Isso ocorre devido a limitações na interpretação da cláusula EXISTS pelo site Apache Phoenix, especialmente em casos com estruturas de consulta ambíguas ou desalinhadas.

Solução alternativa: Para resolver essa limitação, aplique uma das seguintes estratégias:

  • Estabeleça uma relação clara entre a subconsulta e a consulta principal. Introduzir uma condição de filtro na subconsulta para criar uma relação significativa entre a subconsulta e a consulta principal. Por exemplo, where department_id_bigint IS NOT NULL na subconsulta. Para obter mais informações, consulte o exemplo a seguir:

    SELECT DISTINCT t1.first_name_varchar, t2.performance_rating_real, t1.team_head_varchar
    FROM phoenix.tm_lh_engine.employee t1, phoenix.tm_lh_engine.departments t2
    WHERE EXISTS (
       SELECT 1
       FROM phoenix.tm_lh_engine.departments
       WHERE department_id_bigint IS NOT NULL
    )
    
  • Estabeleça uma relação clara entre as tabelas envolvidas unindo explicitamente as tabelas na subconsulta. Isso garante que a subconsulta seja contextualmente relevante e resolve o problema de execução. Por exemplo, where t3.department_id_bigint = t2.department_id_bigint na subconsulta. Para obter mais informações, consulte o exemplo a seguir:

    SELECT DISTINCT t1.first_name_varchar, t2.performance_rating_real, t1.team_head_varchar
    FROM phoenix.tm_lh_engine.employee t1, phoenix.tm_lh_engine.departments t2
    WHERE EXISTS (
       SELECT 1
       FROM phoenix.tm_lh_engine.departments t3
       WHERE t3.department_id_bigint = t2.department_id_bigint
    )
    

O catálogo Hive não é compatível com o formato CSV para criar uma coluna do tipo int de tabela

O catálogo Hive não é compatível com o formato CSV para criar uma coluna do tipo int de tabela. O erro a seguir é exibido:

presto> create table  hive_data.hive_schema.intcsv ( type int ) with ( format = 'CSV' ) ;
Query 20241017_021409_00059_fmcyt failed: Hive CSV storage format only supports VARCHAR (unbounded). Unsupported columns: type integer

Solução alternativa: Use as seguintes opções para o catálogo Hive:

  • Criar tabela em varchar.
  • Crie uma exibição que converta as colunas em seus tipos de dados originais.

Comportamento inconsistente de ingestão de arquivos CSV e Parquet

Apesar de as especificações de design indicarem que os arquivos CSV só devem ser ingeridos em tabelas criadas a partir de arquivos CSV e que os arquivos parquet só devem ser ingeridos em tabelas criadas a partir de arquivos parquet, há uma discrepância no comportamento real em que os usuários podem ingerir arquivos CSV em tabelas parquet. Isso pode resultar em resultados inesperados, problemas de qualidade de dados ou problemas de desempenho se o esquema ou a formatação do arquivo CSV ou parquet não estiver alinhado com a estrutura esperada da tabela de destino.

Associações de arquivos inválidas no grupo de recursos Presto por meio da interface do usuário e problemas de reinicialização do mecanismo

Quando um arquivo inválido é associado a um mecanismo no grupo de recursos Presto por meio da interface do usuário watsonx.data, o mecanismo será reiniciado. No entanto, a interface do usuário pode exibir incorretamente que o mecanismo está usando o arquivo recém-atribuído.

Correção: Se você descobrir que o novo arquivo não está associado ao ambiente watsonx.data, entre em contato com o suporte da IBM para obter mais assistência.

Suporte ao tipo de dados de tempo em Hive e Iceberg

Hive: o catálogo Hive não suporta nativamente o tipo de dados de tempo.

Iceberg: O Iceberg é compatível com o tipo de dados de tempo.

Solução alternativa: Para permitir o tratamento correto dos dados de tempo nas tabelas Iceberg, a propriedade hive.parquet-batch-read-optimization-enabled deve ser definida como false.

Arquivos com esquemas diferentes resultam em valores nulos

watsonx.data agora suporta a ingestão de tipos de arquivos compatíveis com esquemas variados. No entanto, quando as colunas nesses arquivos têm esquemas distintos, os valores nessas colunas são definidos como nulos.

Caracteres especiais não suportados na criação de esquemas, tabelas e locais de armazenamento

Os seguintes caracteres especiais não são aceitos na criação de esquemas, tabelas e locais de armazenamento:

Esquemas ( Hive e Iceberg): $, ^, +, ?, *, {, [, (, ), e /.

Tabelas ( Hive ): $, ^, +, ?, *, {, [, (, ), /, }, ", e '(A criação de tabelas em um nome de esquema que começa com o caractere especial @ resultará em um erro).

Tabelas (Iceberg):$, ^, +, ?, *, {, [, (, ), /, @, }, ", e '.

Local de armazenamento: $, ^, +, ?, *, {, [, (, }, @, ", e '.

Recomenda-se não usar caracteres especiais, como ponto de interrogação (?), hífen (-), asterisco (*) ou caracteres delimitadores como \r, \n e \t em nomes de tabelas, colunas e esquemas. Embora esses caracteres especiais sejam suportados e tabelas, colunas e esquemas possam ser criados, usá-los pode causar problemas ao executar o comando INSERT ou aplicar políticas de acesso para o mesmo.

Para garantir uma experiência perfeita, siga a lista abaixo:

  • Os nomes de esquemas podem conter letras, números ou um dos seguintes itens: !, #, &, ], }, <, >, =, % e @.
  • Os nomes das tabelas podem conter letras, números ou uma das seguintes opções: !, #, &, ], }, <, >, = e ;.
  • As colunas podem conter letras, números, um de !, #, &, [, ], < >, _, :, e @.

A operação ALTER TABLE falha no envio do trabalho do Spark

Os trabalhos do Spark que criam um esquema, uma tabela e, em seguida, tentam uma operação ALTER TABLE podem encontrar um authz.AccessControlException devido a permissões insuficientes.

Isso ocorre porque, embora a criação do esquema e da tabela seja bem-sucedida, o trabalho tenta executar a operação ALTER TABLE antes que os dados do metastore sejam atualizados com os detalhes do esquema e da tabela recém-criados.

Resolução: Para evitar erros de acesso negado, você deve fornecer um atraso entre cada operação que envolva a criação de novos esquemas ou tabelas dentro do mesmo Python.

Solução alternativa: Você pode desativar o DAS ou certificar-se de que seus buckets ou armazenamento de objetos estejam configurados com pontos de extremidade HTTPS.

A tentativa de ler tabelas Parquet v2 por meio do Presto (C++) resulta em um erro

Quando você tenta ler as tabelas Parquet v2 por meio do Presto (C++) que foram criadas por meio do Gerenciador de dados em watsonx.data, ele apresenta o seguinte erro:

Error in ZlibDecompressionStream::Next

Correção: Presto (C++) atualmente não oferece suporte à leitura de tabelas Parquet v2. Você deve copiar os dados para uma nova tabela no formato v1 para que seja compatível com a leitura usando Presto (C++).

  1. Defina a propriedade de sessão como PARQUET_1_0:

    set session <catalog_name>.parquet_writer_version = 'PARQUET_1_0';
    
  2. Execute o seguinte comando para copiar os dados em uma nova tabela:

    create table <catalog name>.<schema name>.<table name> as (select * from <originaltablename>;
    

No momento, a ingestão do Spark não oferece suporte a caracteres especiais, como aspas, ticks posteriores e parênteses para nomes de colunas de tabelas particionadas.

A tentativa de consultar as tabelas relacionadas ao Query History and Monitoring Management (QHMM) usando os mecanismos Presto (C++) pode apresentar erros

Ao tentar consultar as tabelas relacionadas ao QHMM usando os mecanismos Presto (C++), você poderá encontrar erros devido a formatos de arquivo não suportados. Presto (C++) é compatível apenas com os formatos Parquet v1. Você não pode usar o Presto (C++) para consultar dados ou tabelas em outros formatos.

Correção: Você pode mudar para usar os mecanismos Presto (Java) para consultar tabelas relacionadas ao QHMM.

Erro de limite de simultaneidade do servidor atingido no servidor de voo

Você pode encontrar um erro de limite de simultaneidade do servidor atingido ao usar o servidor de voo para executar consultas. Isso ocorre quando o servidor apresenta alto uso de memória devido a um grande número de solicitações simultâneas.

Solução alternativa: Aumente o número de pods de voo ou reestruture para simplificar as consultas e reduzir o número de subconsultas. Ajuste o número de réplicas com base na carga do sistema e nos recursos disponíveis.

Use o seguinte comando para dimensionar o número de pods para a implantação wdp-connect-flight:

oc scale deployment wdp-connect-flight --replicas=<number of replicas>

Por exemplo, se você precisar dimensionar o número de pods para 36, execute o seguinte comando:

oc scale deployment wdp-connect-flight --replicas=36

Reconhecimento incorreto de datas gregorianas em Presto com Hive tabelas Parquet

O Presto apresenta problemas ao processar datas históricas anteriores a 0200-01-01, especificamente quando elas são armazenadas em tabelas Hive formatadas como Parquet. Esse problema ocorre devido à conversão entre os calendários gregoriano e juliano, que foram implementados em 1582-10-15. As datas anteriores a essa data de corte são interpretadas incorretamente pelo Presto.

Informações incompletas sobre o comprimento da coluna na saída SHOW COLUMNS

A consulta SHOW COLUMNS em Presto atualmente fornece informações sobre colunas, incluindo nome, tipo de dados, detalhes adicionais (extra) e comentários. Esse problema destaca que a funcionalidade existente carece de detalhes sobre o comprimento dos tipos de dados baseados em caracteres (CHAR e VARCHAR). Embora alguns conectores retornem o comprimento real definido durante a criação da tabela, outros podem fornecer um valor padrão ou nenhuma informação.

Para resolver essa limitação, três novas colunas foram adicionadas à saída SHOW COLUMNS:

  • Escala: Aplicável ao tipo de dados DECIMAL, indicando o número de dígitos após o ponto decimal.

  • Precisão: Aplicável a tipos de dados numéricos, especificando o número total de dígitos. (Padrão: 10)

  • Comprimento: Destinado aos tipos de dados CHAR e VARCHAR, representando o número máximo de caracteres permitido.

Limitações atuais:

  • O comprimento informado na coluna Length pode nem sempre refletir o tamanho real definido no esquema da tabela devido a limitações do conector.

  • Os conectores que não fornecem informações de comprimento exibirão um valor padrão ou nulo, dependendo do conector.

Erro de cálculo para OPT_SORTHEAP no Query Optimizer

Devido a um erro de cálculo na definição de configuração do Query Optimizer para o valor de OPT_SORTHEAP, o desempenho do Query Optimizer pode ser afetado.

Resolução: Para resolver o erro de cálculo de OPT_SORTHEAP no Query Optimizer, conclua as etapas a seguir para atualizar a configuração de OPT_SORTHEAP= <initial_value> para OPT_SORTHEAP <initial_value>/20.

  1. Configure a variável de ambiente PROJECT_CPD_INSTANCE que aponta para o namespace onde watsonx.data está instalado.
export PROJECT_CPD_INSTANCE=<wxd_namespace
  1. Edite o valor de OPT_SORTHEAP para OPT_SORTHEAP <initial_value>/20 executando o seguinte comando.
oc edit db2uinstance lakehouse-oaas -n $PROJECT_CPD_INSTANCE
  1. Aguarde algum tempo até que o STATE mude para Ready ou lakehouse-oaas e execute o seguinte comando.
watch "oc get db2uinstance  -n $PROJECT_CPD_INSTANCE"

Limitações -Presto (C++)

  • Presto O mecanismo (C++) atualmente não oferece suporte a catálogos de banco de dados.
  • O Parquet é o único formato de arquivo suportado.
  • Hive conector é suportado.
  • A tabela Iceberg padrão só tem suporte de leitura com o formato Parquet v1.
  • Consultas TPC-H/TPC-DS são suportadas.
  • DELETE FROM e CALL SQL declarações não são suportadas.
  • START,COMMIT, e ROLLBACK transações não são suportadas.
  • Tipos de dados CHAR,TIME, e TIME WITH TIMEZONE não são suportados. Esses tipos de dados são subsumidos por VARCHAR,TIMESTAMP, e TIMESTAMP WITH TIMEZONE.
    • IPADDRESS,IPPREFIX,UUID,kHYPERLOGLOG,P4HYPERLOGLOG,QDIGEST, e TDIGEST não são suportados.
    • VARCHAR suporta apenas um comprimento limitado.Varchar(n) com um limite de comprimento máximo não é suportado.
    • TIME e TIME WITH TIMEZONE é apoiado no desenvolvimento comunitário.
    • TIMESTAMP colunas em arquivos Parquet não podem ser lidas.
  • Funções escalares:
    • IPFunctions,QDigest,HyperLogLog e a internacionalização geoespacial não são suportadas.
  • Funções agregadas:
    • QDigest, Métricas de classificação e Entropia diferencial não são suportadas.
  • S3 eS3 sistemas de arquivos compatíveis (leitura e gravação) são suportados.

Presto (C++) falha ao consultar uma tabela particionada externa

Quando você consulta uma tabela externa com CHAR colunas de tipo de dados, a consulta não será executada. Esse problema ocorre devido à limitação quePresto (C++) não suporta CHAR tipos de dados.

Correção: Altere a coluna de tipo de dados CHAR para tipo de dados VARCHAR.

Acessando as tabelas Hive e Iceberg no mesmo catálogo de metastore de cola

Ao usar oAWS Cole o Catálogo de Dados para gerenciar um bucket ou local de armazenamento contendo Iceberg eHive tabelas, tentando acessar tabelas Iceberg a partir doHive catálogo dá,Not a Hive table erro e tentativa de acessoHive tabelas do catálogo Iceberg fornecem,Not an Iceberg table erro.

Usando ID como nome de coluna emCassandraCREATE TABLE

EmCassandra, você não pode criar uma tabela com uma coluna chamada ID enquanto estiver usando umCassandra conector atravésPresto. Isto é porque ID é uma palavra-chave reservada para oCassandra driver que é usado porPresto, que gera automaticamente um UUID para cada linha. A tentativa de criar uma tabela com um ID de nome de coluna resulta em uma mensagem de erro indicando uma declaração de coluna duplicada como segue: Coluna duplicada id declaração para mesa tm_lakehouse_engine_ks.testtable12

Correção: Evite usar ID como um nome de coluna ao criar tabelas Cassandra por meio de Presto.

A função de usuário com a política CreateCollection L3 não consegue criar a coleção no Milvus

Usuários com User role ao criar coleções no Milvus com pymilvus podem falhar ao usar os métodos ORM Connection e MilvusClient Connection.

Solução de problemas: Você deve seguir as instruções:

ORM Connection: O usuário requer ambosDescribeCollection eCreateCollection privilégios concedidos noL3 página de política. Você deve selecionar todas as coleções em um banco de dados ao conceder DescribeCollection privilégio noL3 política por meio do console da web.

MilvusClient Connection: Apenas CreateCollection privilégio é necessário noL3 página de política. No entanto, a primeira tentativa de criar uma coleção falhará.

  1. Execute o create_collection funcionar uma vez.
  2. Execute novamente o create_collection funcionar novamente. Isto permite que as políticas sejam sincronizadas e a criação da coleção seja bem-sucedida.

Caracteres especiais e maiúsculas e minúsculas impactando a sincronização de dados

Ao sincronizar dados entre buckets contendo tabelas ou esquemas com caracteres especiais ou letras maiúsculas mistas em seus nomes, você poderá encontrar os seguintes comportamentos inesperados:

  • Tabelas ou esquemas com determinados caracteres especiais %,,,{,),(,@,$,[,: terão seus dados totalmente ignorados durante a sincronização.
  • Tabelas ou esquemas com letras maiúsculas ou minúsculas serão convertidas em minúsculas antes da sincronização.

Solução alternativa: evite usar caracteres especiais e letras maiúsculas e minúsculas nos nomes de tabela e de esquema Renomeie as tabelas e esquemas existentes para usar apenas os caracteres suportados.

Validação de dados ausente para terminais de armazenamento do Amazon S3

Atualmente, a interface com o usuário (UI) não executa validação de dados para terminais associados ao tipo de armazenamento Amazon S3.

Uso de alias incorreto na cláusulas WITH e USE catalog.schema

Cláusula WITH: Ao referenciar dados dentro da cláusula WITH, use o nome exato do alias designado durante sua definição O uso de um alias incorreto aciona a mensagem de erro a seguir:

Schema must be specified when session schema is not set

Uso de USE catalog.schema juntamente com a cláusula WITH: quando as tabelas são especificadas usando WITH e USE catalog.schema, consultas com nomes de alias incorretos resultarão no erro a seguir.

Table does not exist

Interpretação literal de string emPresto (Java )

Presto (Java ), por padrão interpreta literais de string como VARCHAR, diferentemente de muitos outros sistemas de banco de dados que os tratam como CHAR.

EmPresto (Java ), as comparações de cadeias de caracteres são executadas nos caracteres reais presentes na cadeia de caracteres, excluindo espaços à direita. Isso pode fazer com que as consultas retornem resultados incorretos ao trabalhar com sequências que podem conter espaços à direita, pois esses espaços não são considerados durante a comparação.

Nomes de tabelas com vários pontos..

Presto (Java ) não oferece suporte à criação ou consulta de nomes de tabelas que contenham três ou mais pontos consecutivos em seu nome. As tentativas de referenciar essas tabelas em consultas podem resultar em erros

O usuário ainda está visível na página de controle de acesso de um mecanismo depois de remover o usuário do IAM

A autenticação LDAP não é suportada pelo conector Teradata.

O conector watsonx.data Teradata não suporta atualmente LDAP (Lightweight Directory Access Protocol) para autenticação do usuário.

Solução alternativa: se você encontrar o erro 502, recarregue a página da IU do histórico do Spark após esperar de 1 a 5 segundos. Isso deve permitir tempo suficiente para que o servidor se torne operacional

Anomalia na criação de esquemas de catálogos cruzados no Presto.

Existe uma anomalia na criação de esquemas para catálogos Hive e Iceberg gerenciados pelo Presto. Ao usar um Hive Metastore Service comum para vários catálogos (por exemplo, um catálogo Iceberg e um catálogo Hive, ou dois catálogos Iceberg ou Hive ), a criação de um esquema em um catálogo pode criá-lo em um catálogo errado. Isso ocorre se o local especificado durante a criação do esquema pertencer a um catálogo diferente do desejado.

Solução alternativa: Você deve sempre fornecer explicitamente o caminho de armazenamento correto associado ao catálogo de destino ao usar instruções CREATE SCHEMA no Presto. Isso assegura que o esquema seja criado no local desejado

Presto (Java ) consultas com muitas colunas e tamanho excedendo o limite padrão.

Presto (Java ) consultas envolvendo diversas tabelas com um grande número de colunas (por exemplo, 1.000 colunas por tabela ou mais) no SELECT cláusula pode encontrar problemas de desempenho em todos os ambientes de implantação.

O otimizador iterativo atinge o tempo limite quando max_reorder_joins é configurado como 5 ou superior (o tempo limite padrão é 3 minutos) e fornece o erro a seguir:

The optimizer exhausted the time limit of 180000 ms

Para consultas que excedem o padrão max-task-update-size limite (16MB emPresto (Java )), você pode observar um TaskUpdate size exceeding this limit erro (o valor específico do limite depende da consulta real).

Solução Alternativa:

  • É possível melhorar o desempenho da consulta desativando temporariamente a regra reorder_joins usando a seguinte propriedade da sessão:

    set session reorder_joins = false;
    
  • Aumente o max-task-update-size valor no config.properties arquivo se o problema envolver um TaskUpdate size exceeding the limit erro e reiniciePresto (Java ).

Exemplo:

experimental.internal-communication.max-task-update-size=64MB

Limitação: Transações não suportadas em bancos de dados do Informix não registrados.

Em watsonx.data, ao tentar executar consultas com implicações transacionais em bancos de dados Informix não registrados, as consultas falharão. Isso ocorre porque bancos de dados Informix não registrados, por design, não suportam transações.

Limitação: Netezza Performance Server limitação da instrução INSERT.

O Netezza Performance Server atualmente não suporta inserir várias linhas diretamente em uma tabela usando a cláusula VALUES. Essa funcionalidade é limitada a inserções de uma única linha. Consulte o oficial do Netezza Performance Server documentação para obter detalhes sobre a instrução INSERT

O exemplo a seguir usando VALUES para várias linhas não é suportado:

INSERT INTO EMPLOYEE VALUES (3,'Roy',45,'IT','CityB'),(2,'Joe',45,'IT','CityC');

Solução alternativa: use uma subconsulta com SELECT e UNION ALL para construir um conjunto de resultados temporário e insira-o na tabela de destino.

INSERT INTO EMPLOYEE SELECT * FROM(SELECT 4,'Steve',35,'FIN','CityC' UNION ALL SELECT 5,'Paul',37,'OP','CityA') As temp;

Problema: Milvus não responde às consultas.

Milvus pode não responder às consultas ao tentar carregar coleções ou partições que excedam a capacidade de memória disponível. Isso ocorre porque todas as operações de pesquisa e consulta no Milvus são executadas na memória, exigindo que toda a coleção ou partição seja carregada antes da consulta.

Solução Alternativa:

  • Considere as limitações de memória de sua implantação Milvus e evite carregar coleções ou partições excessivamente grandes.

  • Se Milvus deixar de responder às consultas, use a API Milvus apropriada para descarregar ou liberar algumas coleções da memória. Um exemplo usando o Python SDK: collection.release()

Problema: Contagem imprecisa de linhas após exclusões no Milvus.

A propriedade collection.num_entities pode não refletir o número real de linhas em uma coleção Milvus após as operações de exclusão. Essa propriedade fornece uma estimativa e não pode considerar entidades excluídas.

Para obter uma contagem precisa de linhas, execute uma consulta count(*) na coleta.. Isso fornece uma contagem precisa mesmo após exclusões.

Sintaxe Pymilvus:

collection = pymilvus.Collection(...)
collection.query(expr='', fields=['count(*)'])

Limitações: operações não suportadas do Db2.

watsonx.data atualmente não suporta a operação ALTER TABLE DROP COLUMN para tabelas organizadas por colunas do Db2.

Por padrão, Db2 as instâncias criam tabelas no formato organizado por colunas.

watsonx.data não suporta a criação de tabelas organizadas por linhas no Db2.

Limitações: manipulando valores nulos em Elasticsearch.

O conector Elasticsearch requer definição explícita de mapeamentos de índice para campos para manipular valores nulos ao carregar dados.

Limitações: Carregando JSON aninhado com Elasticsearch.

O conector Elasticsearch requer que os usuários especifiquem explicitamente estruturas JSON aninhadas como matrizes do tipo ROW para carregamento e consulta adequados. Para processar tais estruturas, use a operação UNNEST.

Limitações: Os usuários podem criar 3 instâncias do serviço Milvus para uma única instância de watsonx.data no IBM Cloud.

Problema: Não é possível criar visualizações no Presto.

Presto descreve uma visualização em um banco de dados mapeado como uma TABLE em vez de uma VIEW. Isso é evidente para o programa JDBC que se conecta ao mecanismo Presto.

Problema: o usuário não é removido do controle de acesso do catálogo ao revogar o acesso a dados..

Quando você concede acesso de usuário a um usuário, incluindo-o nas políticas de controle de dados usando a tela Controle de Acesso, o usuário é listado com sucesso no catálogo. Ao revogar o acesso de usuário a partir da página Controle de acesso, o usuário permanece listado no catálogo e continua a ter acesso de usuário.

Problema: não é possível visualizar os catálogos esperados dePresto (Java ).

Os usuários com privilégios de administrador não conseguem visualizar o esperadoHive ePostgreSQL catálogos dePresto (Java ).

Problema: a UI do Console lista usuários inválidos.

watsonx.data do utilizador (user1 ) convida um novo usuário (user2 ) para a conta usando o Gerenciar acessos e usuários tela (Gerenciar > Acesso (IAM) > Gerenciar acessos e usuários ) e concede acesso a uma função (MetastoreAccess, Visualizador, Operador, Editor, Administrador). User2 obtém acesso aos recursos na instância watsonx.data por meio da conta do user1. Além disso, o user2 recebe acesso a dados no nível do recurso, incluindo nas políticas de controle de dados usando a tela Controle de acesso Quando user1 remove user2 da conta do user1, user2 ainda está listado na guia Controle de Acesso no nível de recurso.

Problema: Não é possível visualizar o esquema criado

Quando um usuário com a função de Usuário e o acesso Criar (o usuário tem apenas o acesso Criar) é incluído em um banco de dados externo, ele não pode ver os esquemas que criou. Embora o usuário possa criar esquemas, ele não pode visualizá-los, A seguir está a resposta do sistema:

presto:default> show schemas;
Schema
--------
(0 rows)

Solução alternativa: forneça o privilégio de seleção para o esquema criado pelo usuário.

Problema: Acesso negado ao consultar um banco de dados externo.

Quando um usuário com a função Usuário e o acesso Criar (o usuário tem apenas acesso Criar) é incluído em um banco de dados externo, ele não pode executar a consulta de seleção a partir da tabela que ele criou. Embora o usuário possa se conectar aoPresto (Java ) e criarem tabelas e esquemas, eles não poderão consultar a partir da tabela. O sistema exibe uma mensagem Access Denied..

Query 20230608_132213_00042_wpmk2 failed: Access Denied: Cannot select from columns [id] in table or view tab_appiduser_01

Solução alternativa: forneça o privilégio de seleção para a tabela criada pelo usuário.

Problema: Esquema criado sob catálogo diferente.

Os esquemas estão disponíveis nos catálogos Iceberg e Hive. Quando um esquema é criado no catálogo do Iceberg, ele é listado no catálogo do Hive e vice-versa.

Emitir:Presto (Java ) não oferece suporte à exclusão de tabelas Iceberg.

Problema: DROP SCHEMA no Db2.

No Db2, o esquema poderá ser descartado apenas se estiver vazio. Iniciar a instrução DROP SCHEMA com relação a um esquema não vazio pode resultar em Db2 SQL Error SQLCODE=-478 e SQLSTATE=42893.

Problema: instrução CREATE VIEW que é parcialmente suportada pelo Db2.

O conector Db2 suporta parcialmente a instrução CREATE VIEW. OPresto (Java ) a sintaxe SQL suportada não inclui a criação de visualizações com nomes de colunas personalizados (diferentes dos nomes das colunas da tabela).

Problema: instrução CREATE VIEW que é parcialmente suportada pelo NPSaaS.

O conector NPSaaS suporta parcialmente a instrução CREATE VIEW. OPresto (Java ) A sintaxe SQL suportada não inclui a criação de visualizações com nomes de colunas personalizados (diferentes dos nomes das colunas da tabela).

Emitir:Presto (Java ) não reconhece o caminho como um diretório.

Quando você cria uma nova tabela com umPresto (Java )Hive conector que usa umS3 pasta de um local externo,Presto (Java ) não reconhece o caminho como um diretório e pode ocorrer um erro.

Por exemplo, ao criar uma tabela de cliente no diretório de destino DBCERT/tbint em um depósito chamado dqmdbcertpq usando o console IBM Cloud UX e Aspera S3, o erro a seguir é encontrado: External location must be a directory.

CREATE TABLE "hive-beta"."dbcert"."tbint" (
RNUM int , CBINT bigint
) WITH (
format='PARQUET', external_location = 's3a://dqmdbcertpq/DBCERT/tbint'
);
Query 20230509_113537_00355_cn58z failed: External location must be a directory

Objetos em um sistema de arquivos são armazenados como objetos e seu caminho. O objeto e o caminho devem ter metadados associados. Se o caminho não estiver associado aos metadados,Presto (Java ) não reconhece o objeto e responde que o caminho não é um diretório.

Problema: Designando privilégio de concessão ou de revogação.

Designar o privilégio Conceder ou Revogar a um usuário por meio da política de acesso não funciona conforme esperado nos cenários a seguir:

  1. User_A inclui um depósito e um catálogo Hive (por exemplo, useracat02).

  2. O User_A cria um esquema e uma tabela.

  3. User_B e User_C são funções de Usuário designadas ao catálogo.

  4. User_A inclui política de concessão de permissão para User_B.

  5. User_B se conecta ao catálogo e executa grant select para User_C.

    presto:default> grant select on useracat02.schema_test_01.tab_1 to "6ff74bf7-b71b-42f2-88d9-a98fdbaed304";
    
  6. Quando o User_C conecta ao catálogo e executa o comando select na tabela, o comando falha com a mensagem de acesso negado.

    presto:default> select * from useracat02.schema_test_01.tab_1;
    Query 20230612_073938_00132_hthnz failed: Access Denied: Cannot select from columns [name, id, salary, age] in table or view tab_1
    

Problema: Criando esquema sem um local.

Quando você cria um esquema sem um local, ele não é listado na lista de esquemas de qualquer catálogo Por exemplo, se você criar um esquema sem especificar o local do depósito, o esquema será criado no HMS e não no depósito.. Quando você tenta criar um novo esquema com o mesmo nome, ele falha e responde que o esquema já existe.

Solução alternativa: especifique o local do depósito ao criar um esquema.

Problema: nomes exclusivos para esquema e depósito.

Um esquema e um depósito não podem ser criados com o mesmo nome Por exemplo, se você criar um esquema denominado "vendas" em um catálogo, o mesmo nome não poderá ser usado para outro esquema em outro catálogo. Da mesma forma, se você registrar um depósito com o nome "salesbucket", um outro depósito com o mesmo não poderá ser registrado, mesmo se o depósito estiver localizado em um armazenamento de objeto diferente.

Solução Alternativa: Use nomes exclusivos ao criar esquemas e depósitos

Problema: Criando esquema para tabela de destino.

Você deve criar esquema para a tabela de destino se o esquema não existir.

Problema: a ingestão falhará se o arquivo CSV contiver registro inválido.

A ferramenta ibm-lh não suporta ignorar o máximo de registros inválidos para arquivos CSV se o campo de incompatibilidade for maior que a definição de tabela.

Problema: Criando local do esquema com caminho.

Use uma das seguintes opções de local ao criar um esquema:

  • Local que aponta para um depósito / subcaminho sem um / final
  • Local apontando para um depósito / subcaminho com um / final-Recomendado para uma melhor estruturação

Embora seja possível usar um local apontando para um depósito apenas com ou sem um / final, ele pode levar à falha. Portanto, é recomendado usar um subcaminho.

Emitir:Presto (Java ) não suporta AS OF com mesas de iceberg.

Presto (Java ) não suporta AS OF <time stamp> comando em uma consulta SELECT.

solução alternativa: Chamar CALL iceberg_data_rollback_to_snapshot para mover para o registro de data e hora necessário.

Se você usar CALL iceberg_data_rollback_to_snapshot com um registro de data e hora, não será possível chamar o procedimento armazenado para mover para um registro de data e hora posterior. Use Spark SQL como uma alternativa.

Problema: apenas o criador tem acesso DROP na tabela no Apache Hive (API).

Somente o criador de uma tabela pode eliminar a tabela que é criada no catálogo Apache Hive. Outros usuários não podem descartar a tabela mesmo se tiverem um acesso DROP explícito à tabela. Eles obtêm a mensagem Access Denied

Problema: certificados fornecidos pelo usuário não são suportados pelo watsonx.data.

Atualmente, os certificados fornecidos pelo usuário não são suportados no watsonx.data ao incluir conexões com o banco de dados, depósitos de armazenamento de objeto ou ao usar o utilitário ibm-lh.

Problema: Nenhuma coluna para analisar a partir do erro do arquivo.

Ao tentar alimentar a pasta do AWS S3 usando a ferramenta ibm-lh, o erro a seguir poderá ser encontrado se não houver arquivos vazios na pasta:

No columns to parse from file

Solução alternativa: primeiro, liste as pastas dentro do depósito usando o comando aws s3 ls Se nenhum arquivo vazio for listado, copie todos os arquivos para outra pasta usando o comando aws s3 cp

Caracteres especiais em nomes de tabela de destino podem causar falhas de ingestão

A ingestão falhará se um nome de tabela de destino contiver caracteres especiais ao alimentar por meio do console da web.

Solução alternativa: é possível ingerir dados usando a ingestão por meio da CLI do Spark

Limitação:Presto (Java ) não suporta VARBINARY tipo de dados.

A versão atual doPresto (Java ) não oferece suporte a strings binárias com comprimento. A execução de uma instrução ALTER TABLE em um banco de dados resulta no erro a seguir:

Unknown type 'varbinary(n)' for column 'testcolumn'

Esta é uma limitação do Preso e não uma limitação do watsonx.data.

Limitações: Faça backup de seus dados para evitar a perda de dados ao trabalhar com o ambiente de desenvolvimento do VS Code - Spark Labs.

Como os laboratórios do Spark são efêmeros por natureza, é necessário fazer backup dos dados armazenados periodicamente para evitar a possível perda de dados durante atualizações ou uma falha do Spark Master.