Problemi noti (limitazioni)

Le seguenti limitazioni e problemi noti si applicano a IBM® watsonx.data.

watsonx.data Le API restituiscono una risposta vuota nel piano watsonx.data Lite (catalogo sample_data)

I seguenti endpoint watsonx.data API restituiscono risposte vuote per i cataloghi Hive di esempio (bucket IBM COS):

API 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}

API della 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}

Le applicazioni Spark non vengono visualizzate nella Console quando si utilizzano endpoint privati

Quando si abilitano gli endpoint privati virtuali (VPE) per una maggiore sicurezza, le applicazioni Spark inviate agli endpoint privati non sono visibili nella watsonx.data console. L'elenco delle applicazioni viene visualizzato solo quando sono abilitati anche gli endpoint pubblici.

Soluzione alternativa: è possibile accedere all'elenco delle applicazioni dall'interno della propria VPC utilizzando il gateway VPE.

ANALYZE TABLE le operazioni sulle tabelle nel sample_data catalogo non sono supportate

Importazione/esportazione CPG non supportata per le istanze watsonx.data a livello di account

Per le watsonx.data istanze, che ora sono a livello di account, la funzionalità di importazione/esportazione del Common Policy Gateway (CPG) non è supportata. Qualsiasi tentativo di utilizzare queste funzionalità fallirà e restituirà il seguente messaggio di errore: import/export features will not be supported for this instance: <instanceID>.

Spark 4.0 non riesce a eseguire query SQL in modalità ANSI con la configurazione fornita

Quando si eseguono query SQL su Spark 4.0 con la modalità ANSI abilitata (spark.sql.ansi.enabled=true), le query falliscono con ExtendedAnalysisException a causa dell'applicazione rigorosa dei tipi nella modalità ANSI. Questo problema si verifica anche quando si utilizzano configurazioni che funzionano su Spark 3.5.

Soluzione alternativa: utilizzare la modalità non ANSI impostando il parametro: "spark.sql.ansi.enabled": "false"

Disabilitare la modalità ANSI in Spark 4.0 per evitare errori nelle query TPC-DS

Quando si utilizza Spark 4.0 come runtime, la modalità ANSI è abilitata per impostazione predefinita. Questo causa errori durante l'esecuzione delle query TPC-DS standard. Per evitare questi problemi, la modalità ANSI dovrebbe essere disabilitata nei modelli 4.0 Spark impostando la configurazione spark.sql.ansi.enabled": "false". Ciò garantisce che la modalità ANSI non venga attivata automaticamente e previene incompatibilità nelle query.

Errori di accesso quando Context-based restrictions è abilitato

Quando Context-based restrictions è abilitato, i processi di acquisizione non vanno a buon fine. Inoltre, anche altre operazioni che richiedono l'accesso dell'amministratore del metastore non vanno a buon fine. Le operazioni di ingestione e a livello amministrativo funzionano come previsto quando CBR è disabilitato.

watsonx.data L'operazione dell'assistente non riesce a causa della context-based restrictions politica di rete

Quando si tenta di recuperare informazioni per watsonx.data un'istanza tramite watsonx.data l'assistente, la richiesta potrebbe non andare a buon fine a causa di un errore di autenticazione se Context-based restrictions è abilitato a livello di account. Ciò si verifica quando watsonx.data l'assistente non è incluso negli indirizzi IP attendibili definiti nella Context-based restrictions politica, con conseguente rifiuto della richiesta API.

Errore di accesso negato nelle Presto query e Spark quando il servizio Hadoop Ranger è integrato

Quando si integra il servizio Hadoop Ranger in watsonx.data, le query SQL eseguite utilizzando il Presto motore falliscono con l'errore: Access denied: USE. Ciò si verifica durante operazioni quali la creazione di schemi nel catalogo predefinito tramite Query Workspace. Inoltre, se il servizio Presto Ranger è configurato e la query viene eseguita utilizzando il motore Spark, anche la query fallirà con lo stesso errore.

Impossibile filtrare le colonne DATE, TIME, TIMESTAMP e VARBINARY utilizzando la clausola WHERE in MongoDB Connector

Quando si utilizza il MongoDB connettore in Presto, le query con una WHERE clausola non restituiscono i record quando si filtra su colonne dei seguenti tipi di dati:

  • DATA
  • ORA
  • DATA/ORA
  • VarBinary

Questa limitazione ha un impatto sugli scenari in cui le regole di governance come ROW FILTER si basano sulla clausola WHERE sottostante per la valutazione.

La sincronizzazione manuale del metastore di Query Optimizer non è disponibile per il piano Lite

Per le istanze Lite di watsonx.data, sia la sincronizzazione manuale che la sincronizzazione iniziale del metastore per Query Optimizer non sono supportate nella versione 2.3. Se la sincronizzazione iniziale non va a buon fine, le query dei clienti ricorreranno all'ottimizzatore nativo di Presto anziché al Query Optimizer. Per ulteriori informazioni, consultare Sincronizzazione manuale di Query Optimizer con metastore.

Errore di connessione a watsonx.data dalla schermata Chat with Document

Quando si tenta di stabilire una connessione a watsonx.data dalla schermata Chat with Document (in particolare nella regione del ca-tor), gli utenti riscontrano il seguente errore: Errore: A data source of the specified type [null] does not exist.

La disabilitazione dell'interfaccia utente ACL non impedisce il filtraggio delle righe in Presto

La disabilitazione delle ACL di GenAI attraverso l'interfaccia utente della console non impedisce completamente il filtraggio a livello di riga in Presto. Questo accade perché Presto controlla lo stato delle ACL interrogando l'API GET /acl_storage per verificare la presenza del bucket ACL. Se il bucket è ancora registrato, il filtraggio continua anche se le ACL sono state disattivate nell'interfaccia utente.

Soluzione: Dopo aver disabilitato le ACL tramite l'interfaccia utente, eliminare manualmente il bucket ACL da watsonx.data.

Accesso non autorizzato alle colonne delle tabelle con campi dello schema identici

Se a un utente viene concesso l'accesso a una tabella specifica all'interno di uno schema, è inaspettatamente in grado di visualizzare e interrogare le colonne di altre tabelle dello stesso schema se queste tabelle condividono gli stessi nomi di colonna. Ciò si verifica anche se l'utente non dispone di criteri di accesso espliciti per le altre tabelle.

EXT_METASTORE_SYNC fallisce a causa di una mancata corrispondenza del nome del catalogo

Gli utenti potrebbero non essere a conoscenza del nome del catalogo memorizzato nei metadati. Pertanto, se il nome del catalogo utilizzato nell'interfaccia utente watsonx.data è diverso da quello specificato nel file di metadati, EXT_METASTORE_SYNC fallirà, impedendo l'uso di Query Optimizer.

Soluzione: Creare un catalogo con lo stesso nome dei file di metadati.

Node ritardo di assegnazione durante il riavvio del motore

Durante la fase di riavvio, il motore non riesce ad assegnare un nodo a causa della disponibilità limitata di nodi. Di conseguenza, la creazione dello schema subisce un notevole ritardo.

La pagina Dettagli archivio nell'interfaccia utente Cronologia di Spark viene caricata come vuota

La pagina Dettagli archivio all'interno dell'interfaccia utente di Spark History non riesce a visualizzare alcun contenuto. Mentre la pagina viene caricata, rimane completamente vuota, impedendo agli utenti di visualizzare o gestire le informazioni relative allo storage. Per acquisire informazioni dettagliate sullo storage (aggiornamento dei blocchi) nei registri degli eventi, è necessario abilitare la configurazione spark.eventLog.logBlockUpdates.enabled quando si invia la domanda. Per ulteriori informazioni, vedere Presentazione di un'applicazione Spark utilizzando il motore Spark nativo e Accesso al server della cronologia di Spark.

L'applicazione Spark non viene eseguita quando il nome del file contiene spazi o caratteri speciali

Se si carica un file Python (.py) con spazi o caratteri speciali nel nome del file (ad esempio, wordcount (1).py), il lavoro Spark non viene eseguito. Il sistema non gestisce tali nomi di file, causando il seguente errore durante l'invio del lavoro.

/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''

Soluzione: Per evitare questo problema, è necessario rinominare il file dell'applicazione Python per rimuovere spazi e caratteri speciali prima di caricarlo. Ad esempio, rinominare wordcount (1).py in wordcount_1.py.

Il Prepared Statement fallisce per le query SQL lunghe a causa dei limiti di dimensione dell'intestazione in IBM watsonx.data Presto

Le dichiarazioni preparate per query SQL lunghe e complesse possono fallire quando vengono eseguite tramite Flight service o i client JDBC (ad esempio, DBeaver). Questo fallimento è causato da errori interni al server dovuti al superamento dei limiti predefiniti di dimensione dell'intestazione di HTTP nel motore di Presto. Il problema è riproducibile in Watsonx BI quando si arricchiscono asset di dati metrici con query SQL di dimensioni pari a circa 14KB.

Non si tratta di una limitazione di PrestoDB stesso, ma piuttosto di una conseguenza del funzionamento dell'API JDBC PreparedStatement. Quando un client o uno strumento di BI utilizza PreparedStatement,, il testo SQL e i metadati dei parametri vengono serializzati e trasmessi come parte delle intestazioni della richiesta HTTP al coordinatore Presto. Questo comportamento è standard per le implementazioni dei driver di JDBC e non è specifico del motore di interrogazione di Presto.

Soluzione: Per mitigare questo problema, considerare i seguenti approcci a seconda del carico di lavoro:

  1. Aumentare i limiti di dimensione delle intestazioni

    Aggiornare la configurazione del motore Presto con i seguenti parametri per supportare query più grandi:

    • http-server.max-request-header-size=128kB
    • http-server.max-response-header-size=128kB Queste proprietà sono già inserite nella lista bianca e possono essere modificate utilizzando l'API di personalizzazione.

    Il valore predefinito attuale è impostato in base alle dimensioni tipiche delle query. Tuttavia, l'aumento del limite di dimensione dell'intestazione della richiesta per impostazione predefinita può introdurre alcuni compromessi. Una dimensione dell'intestazione maggiore aumenta il rischio di attacchi Denial-of-Service (DoS DoS ), poiché consente l'invio di una maggiore quantità di dati in ogni richiesta. Inoltre, ogni HTTP richiesta consumerà più memoria, il che può diventare significativo in condizioni di elevata concorrenza. Pertanto, questi valori devono essere regolati con cautela in base all'ambiente e ai modelli di query.

  2. Evitare di utilizzare PreparedStatement per le query di grandi dimensioni

    Se il vostro strumento di BI o il vostro carico di lavoro tende a generare query SQL molto grandi, considerate la possibilità di disabilitare PreparedStatement e di utilizzare invece createStatement. Questo evita la trasmissione di payload SQL di grandi dimensioni tramite le intestazioni di HTTP e può essere un approccio più scalabile.

Milvus e la pagina dei dettagli di modifica di Presto mostra un errore interno del server inizialmente dopo la creazione

Potrebbe verificarsi un errore 500 Internal Server Error quando si cerca di modificare la descrizione nella pagina dei dettagli del motore Milvus e Presto poco dopo la creazione del motore. Questo problema si verifica in genere durante i primi tentativi perché il sistema ritarda la propagazione dei criteri a causa della cache.

Ritardo nell'aggiornamento delle politiche

Gli aggiornamenti delle politiche CPG e AMS potrebbero richiedere un po' più di tempo per essere riflessi in tutto il sistema. Questo ritardo è dovuto al nuovo metodo di caching ed è un comportamento previsto.

Il motore Spark esterno non riesce a connettersi allo storage Amazon S3

Quando si utilizza un motore Spark esterno per accedere ai dati archiviati in un bucket amazon_s3 configurato con l'autenticazione basata sui ruoli IAM, il motore non riesce a connettersi o a recuperare i dati.

La conversione delle tabelle da MOR a COW non riesce in Spark 4.0

L'applicazione spark di conversione della tabella MOR in COW non è supportata in Spark 4.0.

Soluzione: Utilizzare le versioni di Spark 3.4 o 3.5 per eseguire la conversione delle tabelle da MOR a COW.

La dashboard di anteprima visualizza valori nulli con il motore Presto (C++) a causa di una mancata corrispondenza del nome della colonna del catalogo hive

Il motore Presto (C++) fa sì che il dashboard di anteprima visualizzi tutti i valori nulli per alcune tabelle a causa di una mancata corrispondenza tra i nomi delle colonne nei file Parquet e la configurazione del catalogo Hive.

Soluzione: Applicare la seguente proprietà di sessione:

   set session [catalog_name].file_column_names_read_as_lower_case=true;

Le applicazioni Manta non funzionano su Spark 4.0

Le applicazioni Manta (Iceberg, Hudi, Hive, Delta) non vengono eseguite quando vengono inviate su Spark 4.0.

Soluzione: Eseguire le applicazioni Manta utilizzando altre versioni di Spark disponibili.

La connessione di prova per i connettori a freccia non riesce nei cluster abilitati FIPS

La connessione di prova per i connettori freccia può fallire se distribuita in cluster abilitati FIPS a causa di restrizioni crittografiche. Ciò riguarda connettori come Greenplum, MariaDB, e Salesforce, che si basano su fonti di dati sottostanti o librerie incompatibili con la modalità FIPS durante la convalida della connessione.

Apache Kafka la connessione di prova non riesce nei cluster abilitati FIPS

Per Apache Kafka, la connessione di prova può fallire a meno che SASL_MECHANISM non sia impostato esplicitamente su " SCRAM-SHA-512 ". Questo meccanismo è compatibile con i requisiti FIPS e dovrebbe essere utilizzato per garantire il successo dei test di connessione negli ambienti abilitati FIPS.

Caratteri speciali non supportati nella creazione di schemi e tabelle tramite l'interfaccia utente di Ingestion

I seguenti caratteri speciali non sono supportati durante la creazione di schemi e tabelle tramite l'interfaccia utente di Ingestion: % e + Queste restrizioni sono imposte a causa delle limitazioni dei motori di archiviazione sottostanti, come Hive, Delta e Hudi. Mentre la pagina Data Manager può consentire un insieme più ampio di caratteri speciali (ad esempio, !, @, #, &, _, -, =, +, ], }, <, e >), il flusso di ingestione impone una convalida più rigorosa per garantire la compatibilità tra i servizi.

L'esecuzione della query fallisce temporaneamente dopo l'aggiornamento delle credenziali di archiviazione o di database scadute

Dopo l'aggiornamento delle credenziali scadute per una risorsa di archiviazione o di database associata a un motore Presto, l'esecuzione delle query nell'area di lavoro delle query non riesce per circa 30-40 secondi. Dopo questo ritardo, le query vengono eseguite correttamente senza ulteriori problemi.

Il lavoro di sincronizzazione delle statistiche rimane bloccato durante l'esecuzione

I lavori di sincronizzazione delle statistiche possono rimanere bloccati durante l'esecuzione a causa di condizioni sconosciute. In questo caso, gli utenti possono controllare i registri per visualizzare lo stato del lavoro nell'ottimizzatore o in Db2. Se lo stato del lavoro è NOTRECEIVED, NOTRUN o UNKNOWN, gli utenti devono forzare manualmente l'eliminazione del lavoro.

Dopo l'eliminazione del lavoro bloccato:

  • Se ci sono lavori in coda, il primo passa automaticamente ad Attivo e inizia l'esecuzione.
  • Se non ci sono lavori in coda, gli utenti possono inviare manualmente un nuovo lavoro.

Definizioni di stato:

  • NON RICEVUTA: Il sistema non ha ricevuto una chiamata per l'ID compito indicato.
  • NOTRUN: un errore ha impedito allo scheduler di invocare la procedura dell'attività.
  • UNKNOWN: l'attività ha iniziato l'esecuzione, ma lo scheduler non è riuscito a registrare il risultato a causa di una condizione imprevista.

Problema di compatibilità: Spark non riesce a leggere le tabelle iceberg scritte da presto con Parquet V2

Spark non riesce a leggere i dati inseriti nelle tabelle iceberg da Presto quando Presto è configurato esplicitamente per utilizzare lo scrittore Parquet V2. Questo problema si verifica perché Spark non supporta la lettura vettoriale per alcune codifiche Parquet V2, come DELTA_BINARY_PACKED. Un tipico messaggio di errore è 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).

Soluzione: Se si riscontra questo errore durante la lettura di una tabella, in particolare di una creata con versioni precedenti di watsonx.data, impostare la seguente configurazione di Spark.

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

Limitazione dell'interrogazione della tabella information_schema relativa ai ruoli per i connettori tpcds o tpch

Gli utenti riscontrano un errore quando interrogano la tabella information_schema relativa ai ruoli per i connettori tpcds o tpch. Questo comportamento è intenzionale e previsto per questi connettori in Presto, poiché tpcds e tpch sono connettori di benchmarking che non supportano funzioni di sicurezza basate sui ruoli.

Soluzione: Per evitare errori, evitare di interrogare le tabelle information_schema relative ai ruoli (come applicable_roles, enabled_roles e roles) per i connettori tpcds o tpch.

Utilizzare nomi di schemi, tabelle e colonne validi per garantire l'affidabilità delle query

Evitare di usare spazi iniziali o finali nei nomi di schemi, tabelle o colonne quando si creano tabelle nell'area di lavoro Query. Anche se la creazione può andare a buon fine, questi spazi extra possono causare problemi durante l'interrogazione o l'interazione. Per garantire un funzionamento regolare e affidabile, utilizzare sempre nomi puliti senza spazi aggiuntivi.

Limitazioni del supporto BLOB e CLOB in Presto

Presto può leggere e scrivere da connettori che includono tabelle con colonne BLOB e CLOB. Tuttavia, non supporta l'uso di BLOB o CLOB come tipi di dati di colonna nelle istruzioni CREATE TABLE.

Ritardo nell'applicazione delle politiche di controllo degli accessi in Milvus

C'è un ritardo tra la creazione delle politiche di controllo degli accessi e la loro applicazione all'interno di Milvus. Questo ritardo è dovuto al tempo necessario per la sincronizzazione dei criteri.

Le viste SQL non possono essere interrogate da un motore all'altro (Spark e Presto )

Le viste SQL create da un motore con il catalogo iceberg Hive sono riconosciute da altri motori, ma non possono essere interrogate da un motore all'altro, poiché un motore non può comprendere il dialetto SQL di un altro motore.

Mancano i dettagli del driver e del gruppo di risorse nella risposta dell'API Tiny Presto

L'API GET presto_engines attualmente restituisce null per driver e resource_group quando si interrogano i motori Tiny Presto, poiché la nuova architettura omette i dettagli dei driver dalle chiamate a get_presto_engine ; tuttavia, gli utenti esistenti possono ancora accedere alle informazioni sui driver tramite l'endpoint /driver_registration.

Impossibile eliminare i dati dalle colonne con caratteri speciali nei loro nomi

Impossibile eliminare i dati dalle colonne con caratteri speciali nei loro nomi, poiché i caratteri speciali non sono supportati nei nomi delle colonne all'interno della clausola WHERE.

L'errore si genera dopo un uso prolungato di watsonx.data Assistant

Dopo aver utilizzato watsonx.data Assistant per un periodo prolungato, viene generato il seguente errore. There is an error with the message you just sent, but feel free to ask me something else.

Soluzione: Ricaricare il browser.

Impossibile registrare nuovamente SAL dopo aver rimosso la registrazione esistente

L'utente non sperimentale non è in grado di registrare nuovamente SAL dopo aver rimosso la registrazione esistente.

Soluzione alternativa: completare i seguenti passaggi:

  1. Aggiungere l'accesso per l'utente nell'account cloud di accesso IAM.

  2. Utilizzare la seguente API SAL per eliminare l'integrazione.

    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. Utilizzare la seguente API per verificare lo stato dell'integrazione e assicurarsi che l'integrazione sia stata eliminata.

    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. Registrare nuovamente SAL.

La creazione di una tabella materializzata nell'area di lavoro Query riesce ma non nel notebook Spark utilizzando le stesse autorizzazioni

Quando si tenta di creare una tabella materializzata utilizzando una query SQL nell'area di lavoro Query, l'operazione ha esito positivo. L'utente ha accesso in lettura al bucket e ai criteri di accesso appropriati (inserimento, aggiornamento, selezione, eliminazione) per il catalogo Iceberg predefinito. Tuttavia, quando la stessa istruzione SQL viene eseguita all'interno di un notebook Spark utilizzando il modello watsonx.data Spark genera il seguente errore the action is not allowed.

Soluzione: Definire il criterio L3 per lo storage iceberg-bucket nella pagina Create access control policy.

Il secchio QHMM si associa al motore solo quando il motore è in funzione

Se si associa un catalogo QHMM al motore durante lo stato di provisioning, il sistema restituirà un errore che indica che il catalogo non esiste sul lato serviceability. Tuttavia, il sistema associa automaticamente il catalogo QHMM quando il motore è in funzione.

Gli utenti potrebbero riscontrare un errore di "errore di connessione di prova dovuto a credenziali non valide"

Gli utenti potrebbero riscontrare un errore "Test connection failure error due to invalid credentials" per alcune fonti di dati anche quando le credenziali della fonte di dati sono corrette. Questo problema può verificarsi nonostante le credenziali valide, impedendo il successo dei test di connessione per le fonti di dati.

Soluzione: Se si verifica questo errore, è necessario contattare l'assistenza IBM.

L'assenza di statistiche NDV delle colonne nelle tabelle Iceberg porta a piani di query non ottimali

Nell'implementazione attuale, per le tabelle Iceberg all'interno di Presto ( Java ) e Presto (C++), le statistiche NDV (Number of Distinct Values) delle colonne non vengono utilizzate quando sono disponibili in MDS. Gli NDV sono importanti per generare piani di query ottimali. Senza di essi, si può verificare un significativo degrado delle prestazioni.

Soluzione: Per le tabelle non partizionate, utilizzare SET SESSION <iceberg_catalog>.hive_statistics_merge_strategy='USE_NULLS_FRACTION_AND_NDV';.

Questa soluzione non si applica alle tabelle partizionate.

Limitazione della configurazione della rete privata virtuale

Gli endpoint privati non sono supportati per i motori esterni come IBM Db2 Warehouse, IBM Netezza e IBM Analytics Engine (Spark).

HDFS l'aggiunta di un secchio non è supportata tramite CPDCTL

L'aggiunta dei bucket HDFS non è attualmente supportata dal plugin cpdctl wx-data.

IBM watsonx.data Presto il connettore in Software Hub 5.1.1 e successivi non può connettersi all'istanza cloud di IBM watsonx.data

IBM watsonx.data Presto il connettore non riesce a connettersi all'istanza IBM watsonx.data a causa di un errore 520 di Cloudflare. Questo problema si verifica quando vengono effettuate più chiamate simultanee all'API GET /engines, soprattutto quando l'istanza watsonx.data ha un numero elevato di criteri.

La modifica delle credenziali dell'home bucket del motore Spark può interrompere i dati e le operazioni

L'aggiornamento delle credenziali di accesso per un bucket di archiviazione che è stato designato come home bucket del motore Spark durante il processo di provisioning può causare problemi di accesso ai dati e guasti operativi.

Gli amministratori del metastore e i visualizzatori del metastore non sono in grado di visualizzare i dettagli dello schema e delle tabelle

Un utente con i privilegi di amministratore del metastore e di visualizzatore del metastore nell'area di lavoro Query e in Data manager non può visualizzare i dettagli dello schema e delle tabelle, a meno che non sia stato definito un criterio di visualizzazione per gli schemi e le tabelle.

Gli scenari di evoluzione dello schema falliscono in Presto (C++)

Quando si eliminano e/o aggiungono colonne della tabella, le query potrebbero fallire. Ad esempio, si veda la sequenza di istruzioni riportata di seguito, dopo la quale le query sulla tabella falliscono.

   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)

Soluzione: Per PARQUET, eseguire il seguente comando in sessione:

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

Sostituire <catalog-name> con il catalogo effettivo utilizzato.

Oppure impostare hive.parquet.use-column-names=true nelle proprietà del catalogo. Per ORC, impostare hive.orc.use-column-names=true nelle proprietà del catalogo.

Problema con il carattere turco maiuscolo İ nel database Oracle che utilizza il set di caratteri WE8ISO8859P9 ( ORA-00911 Error)

In un database Oracle che utilizza il set di caratteri WE8ISO8859P9, il carattere turco maiuscolo İ non è supportato nella modalità OFF (predefinita) del flag delle caratteristiche miste, causando errori di carattere non valido in ORA-00911:.

Soluzione: Impostare il flag della funzione mixed-case su ON.

La visualizzazione predefinita dell' information_schema e di un catalogo elenca schemi e tabelle di altri cataloghi

Se un utente ha più di un catalogo, la visualizzazione predefinita dell' information_schema e mostrerà anche gli schemi e le tabelle di altri cataloghi, indipendentemente dai cataloghi associati al motore.

Hive i nomi delle colonne esterne con lettere maiuscole a larghezza intera non possono essere riconosciuti quando file-column-names-read-as-lower-case è impostato su true

Quando il valore presto worker catalog property file-column-names-read-as-lower-case è impostato su true, converte i nomi dei campi in lettere maiuscole ASCII in lettere minuscole ASCII. Di conseguenza, i dati sotto i nomi delle colonne con caratteri maiuscoli a larghezza intera non verranno riconosciuti e appariranno come "nulli".

Errore di accensione dovuto alla scadenza della firma ADLS durante l'operazione di scrittura/cancellazione/aggiornamento

Il processo Spark fallisce con il seguente errore quando esegue un'operazione di scrittura/cancellazione/aggiornamento in un archivio ADLS- Gen1. Ciò accade perché la firma ADLS scade a metà del processo. java.io.IOException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature

Soluzione alternativa: impostare un valore elevato per la scadenza della firma ADLS. Configurare la proprietà, spark.hadoop.spark.hadoop.wxd.cas.sas.expiry.period per controllare il tempo di scadenza della firma ADLS. Aggiorna il valore predefinito da 300s a 43200s.

Presto Limitazione della dimensione della password CLI

Presto CLI supporta una dimensione massima della password di 1 KB (1024 byte). Se la password supera queste dimensioni, il sistema non può accettarla nel campo password; deve invece essere esportata.

Il tipo di dato timestamptz non è supportato per una tabella ORC durante l'aggiornamento della console web watsonx.data.

I nomi dei database contenenti trattini o spazi non possono essere interrogati dal motore Spark in un notebook di Python, anche quando è stata aggiunta l'estensione appropriata per il controllo degli accessi di Spark.

I termini commerciali rimangono dopo che l'integrazione del livello di automazione semantica è stata eliminata da IBM watsonx.data

I termini commerciali importati in IBM Knowledge Catalog per l'integrazione di un livello di automazione semantica (SAL) in watsonx.data non vengono rimossi quando l'integrazione viene eliminata. Ciò può comportare la duplicazione dei termini commerciali se viene successivamente abilitata una nuova integrazione SAL e vengono nuovamente caricati termini commerciali uguali o simili.

Soluzione alternativa: per evitare termini aziendali duplicati, l'amministratore del cluster o l'utente che ha creato originariamente la registrazione SAL deve eliminare manualmente tutti i termini aziendali importati per l'integrazione SAL.

La clausola EXISTS sulle tabelle di tipo " Apache Phoenix " genera un'eccezione durante l'esecuzione dell'errore di query

Le query che coinvolgono la clausola EXISTS su tabelle Apache Phoenix potrebbero non riuscire inaspettatamente, anche quando la colonna referenziata è valida. Ciò si verifica a causa delle limitazioni nell'interpretazione della clausola EXISTS da parte di Apache Phoenix, in particolare nei casi con strutture di query ambigue o disallineate.

Soluzione alternativa: per ovviare a questo limite, applicare una delle seguenti strategie:

  • Stabilire una relazione chiara tra la sottoquery e la query principale. Introdurre una condizione di filtro all'interno della sottoquery per creare una relazione significativa tra la sottoquery e la query principale. Ad esempio, dove department_id_bigint NON È NULL nella sottoquery. Per ulteriori informazioni, fare riferimento al seguente esempio:

    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
    )
    
  • Stabilire una relazione chiara tra le tabelle coinvolte unendo esplicitamente le tabelle nella sottoquery. Ciò garantisce che la sottoquery sia contestualmente rilevante e risolva il problema di esecuzione. Ad esempio, dove t3.department_id_bigint = t2.department_id_bigint nella sottoquery. Per ulteriori informazioni, fare riferimento al seguente esempio:

    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
    )
    

Il catalogo di Hive non supporta il formato CSV per la creazione di tabelle con colonne di tipo int

Il catalogo Hive non supporta il formato CSV per la creazione di colonne di tipo int. Viene visualizzato il seguente errore:

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

Soluzione: Utilizzare le seguenti opzioni per il catalogo Hive:

  • Creare una tabella in varchar.
  • Creare una vista che restituisca le colonne ai loro tipi di dati originali.

Comportamento incoerente nell'ingestione di file CSV e Parquet

Nonostante le specifiche di progetto indichino che i file CSV devono essere ingeriti solo in tabelle create da file CSV e che i file di parquet devono essere ingeriti solo in tabelle create da file di parquet, c'è una discrepanza nel comportamento effettivo in cui gli utenti sono in grado di ingerire file CSV in tabelle di parquet. Questo può portare a risultati imprevisti, problemi di qualità dei dati o di prestazioni se lo schema o la formattazione del file CSV o parquet non sono in linea con la struttura prevista della tabella di destinazione.

Associazioni di file non valide nel gruppo di risorse Presto attraverso l'interfaccia utente e problemi di riavvio del motore

Quando viene associato un file non valido per un motore nel gruppo di risorse Presto tramite l'interfaccia utente watsonx.data, il motore viene riavviato. Tuttavia, l'interfaccia utente potrebbe visualizzare erroneamente che il motore sta utilizzando il nuovo file assegnato.

Risoluzione: Se il nuovo file non è associato all'ambiente watsonx.data, contattare il supporto IBM per ulteriore assistenza.

Supporto del tipo di dati Time in Hive e Iceberg

Hive: Il catalogo Hive non supporta nativamente il tipo di dati time.

Iceberg: Iceberg supporta il tipo di dati time.

Soluzione alternativa: per consentire la corretta gestione dei dati temporali nelle tabelle Iceberg, la proprietà " hive.parquet-batch-read-optimization-enabled " deve essere impostata su " false".

I file con schemi diversi danno luogo a valori nulli

watsonx.data ora supporta l'ingestione di tipi di file supportati con schemi diversi. Tuttavia, quando le colonne all'interno di questi file hanno schemi distinti, i valori di queste colonne vengono impostati su null.

Caratteri speciali non supportati nella creazione di schemi, tabelle e posizioni di archiviazione

I seguenti caratteri speciali non sono supportati durante la creazione di schemi, tabelle e posizioni di archiviazione:

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

Tabelle ( Hive ): $, ^, +, ?, *, {, [, (, ), /, }, ", e '(La creazione di tabelle all'interno di un nome di schema che inizia con il carattere speciale @ darà luogo a un errore).

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

Posizione di archiviazione: $, ^, +, ?, *, {, [, (, }, @, ", e '.

Si raccomanda di non utilizzare caratteri speciali come punto interrogativo (?), trattino (-), asterisco (*) o caratteri delimitatori come \r, \n, e \t nei nomi di tabelle, colonne e schemi. Sebbene questi caratteri speciali siano supportati e sia possibile creare tabelle, colonne e schemi, il loro utilizzo potrebbe causare problemi durante l'esecuzione del comando INSERT o l'applicazione delle politiche di accesso per lo stesso.

Per garantire un'esperienza senza interruzioni, si prega di seguire l'elenco riportato di seguito:

  • I nomi degli schemi possono contenere lettere, numeri o uno dei seguenti termini: !, #, &, ], }, <, >, =, % e @.
  • I nomi delle tabelle possono contenere lettere, numeri o uno dei seguenti caratteri: !, #, &, ], }, <, >, = e ;.
  • Le colonne possono contenere lettere, numeri uno di !, #, &, [, ], < >, _, : e @.

L'operazione ALTER TABLE fallisce nell'invio di un lavoro Spark

I lavori Spark che creano uno schema, una tabella e poi tentano un'operazione ALTER TABLE possono incontrare un authz.AccessControlException a causa di autorizzazioni insufficienti.

Questo accade perché, anche se la creazione dello schema e della tabella è avvenuta con successo, il lavoro cerca di eseguire l'operazione ALTER TABLE prima che i dati del metastore vengano aggiornati con i dettagli dello schema e della tabella appena creati.

Risoluzione: Per evitare errori di accesso negato, è necessario prevedere un ritardo tra ogni operazione che comporta la creazione di nuovi schemi o tabelle all'interno dello stesso script Python.

Soluzione: È possibile disattivare il DAS o assicurarsi che i bucket o l'object storage siano configurati con endpoint HTTPS.

Il tentativo di leggere le tabelle Parquet v2 attraverso Presto (C++) provoca un errore

Quando si tenta di leggere le tabelle Parquet v2 attraverso Presto (C++) create tramite Data manager in watsonx.data, viene visualizzato il seguente errore:

Error in ZlibDecompressionStream::Next

**Lavoro: ** Presto (C++) attualmente non supporta la lettura delle tabelle Parquet v2. È necessario copiare i dati in una nuova tabella in formato v1 per renderli compatibili con la lettura con Presto (C++).

  1. Impostare la proprietà della sessione su PARQUET_1_0:

    set session <catalog_name>.parquet_writer_version = 'PARQUET_1_0';
    
  2. Eseguire il seguente comando per copiare i dati in una nuova tabella:

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

Attualmente l'ingestione di Spark non supporta caratteri speciali come le virgolette, i segni di spunta e le parentesi per i nomi delle colonne delle tabelle partizionate.

Il tentativo di interrogare le tabelle relative a Query History and Monitoring Management (QHMM) utilizzando i motori Presto (C++) potrebbe generare degli errori

Quando si tenta di interrogare le tabelle relative a QHMM utilizzando i motori Presto (C++), è possibile che si verifichino errori dovuti a formati di file non supportati. Presto (C++) supporta solo i formati Parquet v1. Non è possibile utilizzare Presto (C++) per interrogare dati o tabelle in altri formati.

**Risoluzione: ** Si può passare a usare i motori Presto (Java) per interrogare le tabelle relative a QHMM.

Errore di raggiungimento del limite di concorrenza del server nel server di volo

È possibile che si verifichi un errore Server concurrency limit reached quando si utilizza il server di volo per eseguire le query. Questo si verifica quando il server utilizza molta memoria a causa di un gran numero di richieste contemporanee.

Soluzione: Aumentare il numero di flight pod o ristrutturare per semplificare le query e ridurre il numero di sotto-query. Regolare il numero di repliche in base al carico del sistema e alle risorse disponibili.

Usare il seguente comando per scalare il numero di pod per la distribuzione wdp-connect-flight:

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

Ad esempio, se è necessario scalare il numero di pod a 36, eseguire il seguente comando:

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

Riconoscimento errato delle date gregoriane in Presto con Hive tabelle Parquet

Presto presenta problemi nell'elaborazione di date storiche precedenti a 0200-01-01, in particolare quando sono memorizzate in tabelle Hive formattate come Parquet. Questo problema si verifica a causa della conversione tra il calendario gregoriano e quello giuliano, implementata in 1582-10-15. Le date precedenti a questa data limite vengono interpretate erroneamente da Presto.

Informazioni incomplete sulla lunghezza delle colonne nell'output di SHOW COLUMNS

La query SHOW COLUMNS in Presto attualmente fornisce informazioni sulle colonne, tra cui nome, tipo di dati, dettagli aggiuntivi (extra) e commenti. Questo problema evidenzia che la funzionalità esistente manca di dettagli sulla lunghezza dei tipi di dati basati sui caratteri (CHAR e VARCHAR). Mentre alcuni connettori restituiscono la lunghezza effettiva definita durante la creazione della tabella, altri possono fornire un valore predefinito o nessuna informazione.

Per ovviare a questa limitazione, sono state aggiunte tre nuove colonne all'output SHOW COLUMNS:

  • Scala: Applicabile al tipo di dati DECIMALE, indica il numero di cifre dopo la virgola.

  • Precisione: Applicabile ai tipi di dati numerici, specifica il numero totale di cifre. (predefinito: 10)

  • Lunghezza: Inteso per i tipi di dati CHAR e VARCHAR, rappresenta il numero massimo di caratteri consentito.

Limitazioni attuali:

  • La lunghezza riportata nella colonna Length potrebbe non rispecchiare sempre la dimensione effettiva definita nello schema della tabella a causa delle limitazioni del connettore.

  • I connettori che non forniscono informazioni sulla lunghezza visualizzeranno un valore predefinito o nullo, a seconda del connettore.

Errore di calcolo per OPT_SORTHEAP in Query Optimizer

A causa di un errore di calcolo nelle impostazioni di configurazione di Query Optimizer per il valore di OPT_SORTHEAP, le prestazioni di Query Optimizer potrebbero essere compromesse.

Risoluzione: Per risolvere l'errore di calcolo per OPT_SORTHEAP in Query Optimizer, completare i passaggi seguenti per aggiornare la configurazione da OPT_SORTHEAP= <initial_value> a OPT_SORTHEAP <initial_value>/20.

  1. Impostare la variabile d'ambiente PROJECT_CPD_INSTANCE che punta allo spazio dei nomi in cui è installato watsonx.data.
export PROJECT_CPD_INSTANCE=<wxd_namespace
  1. Modificare il valore di OPT_SORTHEAP in OPT_SORTHEAP <initial_value>/20 eseguendo il seguente comando.
oc edit db2uinstance lakehouse-oaas -n $PROJECT_CPD_INSTANCE
  1. Attendete che STATE cambi in Ready per lakehouse-oaas ed eseguite il seguente comando.
watch "oc get db2uinstance  -n $PROJECT_CPD_INSTANCE"

Limitazioni -Presto (C++)

  • Presto Il motore (C++) attualmente non supporta i cataloghi di database.
  • Parquet è l'unico formato di file supportato.
  • Hive il connettore è supportato.
  • La tabella Iceberg predefinita supporta solo la lettura del formato Parquet v1.
  • Sono supportate le query TPC-H/TPC-DS.
  • DELETE FROM E CALL SQL le dichiarazioni non sono supportate.
  • START,COMMIT, E ROLLBACK le transazioni non sono supportate.
  • Tipi di dati CHAR,TIME, E TIME WITH TIMEZONE non sono supportati. Questi tipi di dati sono inclusi da VARCHAR,TIMESTAMP, E TIMESTAMP WITH TIMEZONE.
    • IPADDRESS,IPPREFIX,UUID,kHYPERLOGLOG,P4HYPERLOGLOG,QDIGEST, E TDIGEST non sono supportati.
    • VARCHAR supporta solo una lunghezza limitata.Varchar(n) con un limite di lunghezza massima non è supportato.
    • TIME E TIME WITH TIMEZONE è supportato nello sviluppo della comunità.
    • TIMESTAMP le colonne nei file Parquet non possono essere lette.
  • Funzioni scalari:
    • IPFunctions,QDigest,HyperLogLog e l'internazionalizzazione geospaziale non sono supportate.
  • Funzioni aggregate:
    • QDigest, le metriche di classificazione e l'entropia differenziale non sono supportate.
  • S3 ES3 sono supportati file system compatibili (sia in lettura che in scrittura).

Presto (C++) non riesce a eseguire query su una tabella partizionata esterna

Quando esegui una query su una tabella esterna con CHAR colonne del tipo di dati, la query non viene eseguita. Questo problema si verifica a causa della limitazione chePresto (C++) non supporta CHAR tipi di dati.

**Risoluzione: ** Cambiare la colonna del tipo di dati CHAR in VARCHAR.

Accesso alle tabelle Hive e Iceberg nello stesso catalogo di metastore glue

Quando si utilizza ilAWS Glue Data Catalog per gestire un bucket o una posizione di archiviazione contenente sia Iceberg cheHive tabelle, tentando di accedere alle tabelle Iceberg daHive il catalogo dà,Not a Hive table errore e tentativo di accessoHive i tavoli del catalogo Iceberg danno,Not an Iceberg table errore.

Utilizzo dell'ID come nome di colonna inCassandraCREATE TABLE

InCassandra, non è possibile creare una tabella con una colonna denominata ID durante l'utilizzo di aCassandra connettore attraversoPresto. Questo è perché ID è una parola chiave riservata per ilCassandra driver utilizzato daPresto, che genera automaticamente un UUID per ogni riga. Il tentativo di creare una tabella con un ID nome colonna genera un messaggio di errore che indica una dichiarazione di colonna duplicata come segue: Colonna duplicata id dichiarazione per tabella tm_lakehouse_engine_ks.testtable12

**Risoluzione: ** Evitare di usare ID come nome di colonna quando si creano tabelle Cassandra attraverso Presto.

Il ruolo utente con il criterio CreateCollection L3 non riesce a creare una raccolta in Milvus

Gli utenti con User role durante la creazione di collezioni in Milvus con pymilvus possono fallire quando si usano i metodi ORM Connection e MilvusClient Connection.

**Risoluzione: ** È necessario seguire le istruzioni:

ORM Connection: L'utente li richiede entrambiDescribeCollection ECreateCollection privilegi concessi nelL3 pagina delle politiche. È necessario selezionare tutte le raccolte in un database durante la concessione DescribeCollection privilegio nelL3 policy tramite console web.

MilvusClient Connection: Soltanto CreateCollection il privilegio è necessario nelL3 pagina delle politiche. Tuttavia, il primo tentativo di creare una raccolta fallirà.

  1. Corri il create_collection funzionare una volta.
  2. Rieseguire il create_collection funzionare di nuovo. Ciò consente la sincronizzazione delle policy e la creazione della raccolta avrà esito positivo.

Caratteri speciali e maiuscole e minuscole incidono sulla sincronizzazione dei dati

Durante la sincronizzazione dei dati tra bucket contenenti tabelle o schemi con caratteri speciali o lettere maiuscole e minuscole nei nomi, potresti riscontrare i seguenti comportamenti imprevisti:

  • Tabelle o schemi con determinati caratteri speciali %,,,{,),(,@,$,[,: i loro dati verranno completamente saltati durante la sincronizzazione.
  • Le tabelle o gli schemi con lettere miste o maiuscole verranno convertiti in minuscole prima della sincronizzazione.

Soluzione temporanea: evitare di utilizzare caratteri speciali e maiuscole / minuscole nei nomi di tabella e schema. Ridenominare le tabelle e gli schemi esistenti per utilizzare solo i caratteri supportati.

Convalida dei dati mancante per gli endpoint di storage Amazon S3

Attualmente, l'interfaccia utente (UI) non esegue la convalida dei dati per endpoint associati al tipo di memoria Amazon S3.

Utilizzo alias non valido nella clausola WITH e in USE catalog.schema.

Clausola WITH: quando si fa riferimento ai dati all'interno della clausola WITH, utilizzare il nome alias esatto assegnato durante la definizione. L'uso di un alias non corretto attiva il messaggio di errore riportato di seguito.

Schema must be specified when session schema is not set

Clausola USE catalog.schema usage with WITH: quando le tabelle vengono specificate utilizzando WITH e USE catalog.schema, le query con nomi alias non corretti genereranno il seguente errore.

Table does not exist

Interpretazione letterale delle stringhe inPresto (Java )

Presto (Java ), per impostazione predefinita interpreta i valori letterali stringa come VARCHAR, a differenza di molti altri sistemi di database che li trattano come CHAR.

InPresto (Java ), i confronti tra stringhe vengono eseguiti sui caratteri effettivi presenti nella stringa, esclusi gli spazi finali. Ciò può far sì che le query restituiscano risultati non corretti quando si utilizzano stringhe che possono contenere spazi finali, poiché questi spazi non vengono considerati durante il confronto.

Nomi tabella con più punti

Presto (Java ) non supporta la creazione o l'esecuzione di query su nomi di tabelle che contengono tre o più punti consecutivi nel nome. I tentativi di fare riferimento a tali tabelle nelle interrogazioni possono causare errori.

L'utente è ancora visibile nella pagina di controllo dell'accesso di un motore dopo aver rimosso l'utente da IAM.

L'autenticazione LDAP non è supportata per il connettore Teradata.

il connettore watsonx.data Teradata non supporta attualmente LDAP (Lightweight Directory Access Protocol) per l'autenticazione utente.

Soluzione temporanea: se si verifica l'errore 502, ricaricare la pagina della UI della cronologia Spark dopo aver atteso 1-5 secondi. Ciò dovrebbe consentire un tempo sufficiente per rendere operativo il server.

Anomalia nella creazione di schemi di catalogo incrociati in Presto.

Esiste un'anomalia nella creazione di schemi per i cataloghi Hive e Iceberg gestiti da Presto. Quando si utilizza un servizio metastore Hive comune per più cataloghi (ad esempio, un catalogo Iceberg e un catalogo Hive, oppure due cataloghi Iceberg o Hive ), la creazione di uno schema in un catalogo potrebbe crearlo in un catalogo sbagliato. Ciò si verifica se l'ubicazione specificata durante la creazione dello schema appartiene ad un catalogo diverso da quello previsto.

Soluzione: È necessario fornire sempre esplicitamente il percorso di archiviazione corretto associato al catalogo di destinazione quando si utilizzano le istruzioni CREATE SCHEMA in Presto. Ciò garantisce che lo schema venga creato nell'ubicazione desiderata.

Presto (Java ) query con molte colonne e dimensioni che superano il limite predefinito.

Presto (Java ) query che coinvolgono più tabelle con un numero elevato di colonne (ad esempio, 1000 colonne per tabella o più) nella SELECT La clausola potrebbe riscontrare problemi di prestazioni in tutti gli ambienti di distribuzione.

L'ottimizzazione iterativa va in timeout quando max_reorder_joins è impostato su 5 o su un valore superiore (il timeout predefinito è 3 minuti) e restituisce il seguente errore:

The optimizer exhausted the time limit of 180000 ms

Per query che superano il valore predefinito max-task-update-size limite (16MB InPresto (Java )), potresti osservare a TaskUpdate size exceeding this limit errore (il valore specifico del limite dipende dalla query effettiva).

Soluzione alternativa:

  • È possibile migliorare le prestazioni della query disabilitando temporaneamente la regola reorder_joins utilizzando la seguente proprietà di sessione:

    set session reorder_joins = false;
    
  • Aumentare il max-task-update-size valore nel config.properties file se il problema riguarda a TaskUpdate size exceeding the limit errore e riavviarePresto (Java ).

Esempio:

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

Limitazione: transazioni non supportate nei database Informix non registrati.

In watsonx.data, quando si tenta di eseguire query con implicazioni transazionali su database Informix non registrati, le query avranno esito negativo. Ciò si verifica perché i database Informix non registrati, per impostazione, non supportano le transazioni.

Limitazione: Netezza Performance Server limitazione dell'istruzione INSERT.

Netezza Performance Server attualmente non supporta l'inserimento di più righe direttamente in una tabella utilizzando la clausola VALUES. Questa funzionalità è limitata agli inserimenti a riga singola. Fare riferimento al Netezza Performance Server documentazione ufficiale per i dettagli sull'istruzione INSERT.

Il seguente esempio che utilizza VALUES per più righe non è supportato:

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

Soluzione temporanea: utilizzare una query secondaria con SELECT e UNION ALL per costruire una serie di risultati temporanea e inserirla nella tabella di destinazione.

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

Problema: Milvus non risponde alle richieste.

Milvus potrebbe non rispondere alle query quando si cerca di caricare collezioni o partizioni che superano la capacità di memoria disponibile. Questo accade perché tutte le operazioni di ricerca e di interrogazione in Milvus vengono eseguite in memoria, richiedendo il caricamento dell'intera collezione o partizione prima dell'interrogazione.

Soluzione alternativa:

  • Considerate i limiti di memoria della vostra installazione di Milvus ed evitate di caricare collezioni o partizioni troppo grandi.

  • Se Milvus non risponde alle interrogazioni, utilizzare l'API Milvus appropriata per scaricare o rilasciare alcune collezioni dalla memoria. Un esempio che utilizza l'SDK Python: collection.release()

Problema: Conteggio impreciso delle righe dopo le cancellazioni in Milvus.

La proprietà collection.num_entities potrebbe non riflettere il numero effettivo di righe in una raccolta Milvus dopo le operazioni di eliminazione. Questa proprietà fornisce una stima e potrebbe non tenere conto delle entità eliminate.

Per ottenere un conteggio preciso delle righe, eseguire una query count(*) sulla raccolta. Ciò fornisce un conteggio preciso anche dopo le eliminazioni.

Sintassi Pymilvus:

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

Limitazioni: operazioni Db2 non supportate.

watsonx.data attualmente non supporta l'operazione ALTER TABLE DROP COLUMN per le tabelle organizzate per colonna Db2.

Per impostazione predefinita, Db2 le istanze creano tabelle in formato organizzato per colonne.

watsonx.data non supporta la creazione di tabelle organizzate per riga in Db2.

Limitazioni: gestione dei valori null in Elasticsearch.

Il connettore Elasticsearch richiede una definizione esplicita delle associazioni di indice per i campi per gestire i valori null durante il caricamento dei dati.

Limitazioni: caricamento di JSON nidificato con Elasticsearch.

Il connettore Elasticsearch richiede che gli utenti specifichino esplicitamente le strutture JSON nidificate come array di tipo ROW per il caricamento e la query corretti. Per elaborare tali strutture, utilizzare l'operazione UNNEST.

Limitazioni: Gli utenti possono creare 3 istanze del servizio Milvus per una singola istanza di watsonx.data in IBM Cloud.

Problema: Impossibile creare viste in Presto.

Presto descrive una vista in un database mappato come una TABELLA e non come una VISTA. Questo è evidente al programma JDBC che si connette al motore Presto.

Problema: l'utente non viene rimosso dal controllo accessi del catalogo durante la revoca dell'accesso ai dati.

Quando concedi l'accesso utente a un utente aggiungendolo ai criteri di controllo dei dati utilizzando la schermata Controllo accesso, l'utente viene elencato correttamente nel catalogo. Alla revoca dell'accesso utente dalla pagina Controllo accessi, l'utente rimane elencato rispetto al catalogo e continua ad avere accesso utente.

Problema: impossibile visualizzare i cataloghi previsti daPresto (Java ).

Gli utenti con privilegi di amministratore non sono in grado di visualizzare quanto previstoHive EPostgreSQL cataloghi daPresto (Java ).

Problema: l'interfaccia utente della console elenca utenti non validi.

watsonx.data utente (user1 ) invita un nuovo utente (user2 ) all'account utilizzando il file Gestire l'accesso e gli utenti schermo (Gestisci > Accesso (IAM) > Gestisci accesso e utenti ) e concede l'accesso a un ruolo (MetastoreAccess, Visualizzatore, Operatore, Editor, Amministratore). User2 ottiene l'accesso alle risorse nell'istanza watsonx.data tramite l'account user1. Inoltre, a user2 viene concesso l'accesso ai dati a livello di risorsa aggiungendo i criteri di controllo dati utilizzando la schermata Controllo accesso. Quando user1 rimuove user2 dall'account user1, user2 è ancora elencato nella scheda Controllo accessi a livello di risorsa.

Problema: impossibile visualizzare lo schema creato.

Quando un utente con il ruolo Utente e l'accesso di creazione (l'utente ha solo l'accesso di creazione) viene aggiunto a un database esterno, non può vedere gli schemi creati. Sebbene l'utente possa creare schemi, non può visualizzarli. Di seguito è riportata la risposta del sistema:

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

Soluzione temporanea: fornire il privilegio select per lo schema creato dall'utente.

Problema: accesso negato durante la query di un database esterno.

Quando un utente con il ruolo Utente e l'accesso di creazione (l'utente ha solo l'accesso di creazione) viene aggiunto a un database esterno, non può eseguire la query di selezione dalla tabella che ha creato. Sebbene l'utente possa connettersi aPresto (Java ) e creano tabelle e schemi, non possono eseguire query dalla tabella. Il sistema visualizza un messaggio Access Denied.

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

Soluzione temporanea: fornire il privilegio di selezione per la tabella creata dall'utente.

Problema: schema creato in un catalogo differente.

Gli schemi sono disponibili nei cataloghi Iceberg e Hive. Quando uno schema viene creato nel catalogo Iceberg, viene elencato nel catalogo Hive e viceversa.

Problema:Presto (Java ) non supporta l'eliminazione delle tabelle Iceberg.

Problema: DROP SCHEMA in Db2.

In Db2, lo schema può essere eliminato solo se è vuoto. L'avvio dell'istruzione DROP SCHEMA rispetto a uno schema non vuoto può causare Db2 SQL Error SQLCODE=-478 e SQLSTATE=42893.

Problema: istruzione CREATE VIEW supportata parzialmente da Db2.

Il connettore Db2 supporta parzialmente l'istruzione CREATE VIEW. ILPresto (Java ) la sintassi SQL supportata non include la creazione di viste con nomi di colonna personalizzati (diversi dai nomi di colonna della tabella).

Problema: l'istruzione CREATE VIEW è parzialmente supportata da NPSaaS.

Il connettore NPSaaS supporta parzialmente l'istruzione CREATE VIEW. ILPresto (Java ) La sintassi SQL supportata non include la creazione di viste con nomi di colonna personalizzati (diversi dai nomi di colonna della tabella).

Problema:Presto (Java ) non riconosce il percorso come directory.

Quando crei una nuova tabella con aPresto (Java )Hive connettore che utilizza unS3 cartella da una posizione esterna,Presto (Java ) non riconosce il percorso come directory e potrebbe verificarsi un errore.

Ad esempio, quando si crea una tabella clienti nella directory di destinazione DBCERT/tbint in un bucket denominato dqmdbcertpq utilizzando la console IBM Cloud UX e Aspera S3, si verifica il seguente errore: 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

Gli oggetti in un file system vengono memorizzati come oggetti e il relativo percorso. L'oggetto e percorso devono avere un metadati associato. Se il percorso non è associato ai metadati,Presto (Java ) non riesce a riconoscere l'oggetto e risponde che il percorso non è una directory.

Problema: assegnazione del privilegio di concessione o revoca.

L'assegnazione del privilegio Concedi o Revoca a un utente tramite la politica di accesso non funziona come previsto nei seguenti scenari:

  1. User_A aggiunge un bucket e un catalogo Hive (ad esempio, useracat02).

  2. User_A crea uno schema e una tabella.

  3. User_B e User_C vengono assegnati ai ruoli Utente al catalogo.

  4. User_A aggiunge allow grant policy a User_B.

  5. User_B si connette al catalogo ed esegue grant select su User_C.

    presto:default> grant select on useracat02.schema_test_01.tab_1 to "6ff74bf7-b71b-42f2-88d9-a98fdbaed304";
    
  6. Quando User_C si connette al catalogo ed esegue il comando select sulla tabella, il comando ha esito negativo con il messaggio di accesso negato.

    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: creazione dello schema senza una posizione.

Quando si crea uno schema senza un'ubicazione, questo non viene elencato nell'elenco di schemi di alcun catalogo. Ad esempio, se crei uno schema senza specificare l'ubicazione del bucket, lo schema viene creato in HMS e non nel bucket. Quando si tenta di creare un nuovo schema con lo stesso nome, non riesce e risponde che lo schema esiste già.

Soluzione temporanea: specificare l'ubicazione del bucket quando si crea uno schema.

Problema: nomi univoci per schema e bucket.

Non è possibile creare uno schema e un bucket con lo stesso nome. Ad esempio, se si crea uno schema denominato "vendite" in un catalogo, lo stesso nome non può essere utilizzato per un altro schema in un altro catalogo. In modo simile, se si registra un bucket con il nome "salesbucket", non è possibile registrare un altro bucket con lo stesso, anche se il bucket si trova in un archivio oggetti differente.

Soluzione temporanea: utilizzare nomi univoci quando si creano schemi e bucket.

Problema: creazione dello schema per la tabella di destinazione.

Se lo schema non esiste, è necessario creare lo schema per la tabella di destinazione.

Problema: l'inserimento non riesce se il file CSV contiene un record non valido.

Lo strumento ibm - lh non supporta l'ignoramento del numero massimo di record non corretti per i file CSV se il campo di mancata corrispondenza è maggiore della definizione della tabella.

Problema: creazione dell'ubicazione dello schema con percorso.

Utilizzare una delle seguenti opzioni di posizione durante la creazione di uno schema:

  • Ubicazione che punta a un bucket / percorso secondario senza un / finale.
  • Ubicazione che punta a un bucket / percorso secondario con un / finale - Consigliato per una migliore strutturazione.

Anche se puoi utilizzare un'ubicazione che punta a un bucket solo con o senza un / finale, potrebbe portare a un errore. Pertanto, si consiglia di utilizzare un percorso secondario.

Problema:Presto (Java ) non supportano AS OF con tavoli iceberg.

Presto (Java ) non supportano AS OF <time stamp> comando in una query SELECT.

Soluzione temporanea: richiamare CALL iceberg_data_rollback_to_snapshot per passare alla data / ora richiesta.

Se si utilizza CALL iceberg_data_rollback_to_snapshot con una data / ora, non è possibile richiamare la procedura memorizzata per passare a una data / ora successiva. Utilizzare Spark SQL come alternativa.

Problema: solo il creatore ha accesso DROP sulla tabella in Apache Hive (API).

Solo il creatore di una tabella può eliminare la tabella che viene creata nel catalogo Apache Hive. Gli altri utenti non possono eliminare la tabella anche se dispongono di un accesso esplicito DROP alla tabella. Ricevono il messaggio Access Denied.

Problema: i certificati forniti dagli utenti non sono supportati da watsonx.data.

Attualmente, i certificati forniti dall'utente non sono supportati in watsonx.data quando si aggiungono connessioni al database, bucket dell'archivio oggetti o quando si utilizza il programma di utilità ibm - lh.

Problema: nessuna colonna da analizzare dall'errore del file.

Quando si tenta di inserire una cartella da AWS S3 utilizzando lo strumento ibm - lh, è possibile che si verifichi il seguente errore se non vi sono file vuoti nella cartella:

No columns to parse from file

Soluzione temporanea: elencare innanzitutto le cartelle all'interno del bucket utilizzando il comando aws s3 ls. Se non viene elencato alcun file vuoto, copiare tutti i file in un'altra cartella utilizzando il comando aws s3 cp.

I caratteri speciali nei nomi tabella di destinazione possono causare errori di inserimento.

L'inserimento ha esito negativo se il nome di una tabella di destinazione contiene caratteri speciali durante l'inserimento tramite la console web.

Soluzione temporanea: puoi inserire i dati utilizzando l'inserimento tramite la CLI Spark.

Limitazione:Presto (Java ) non supporta VARBINARY tipo di dati.

La versione attuale diPresto (Java ) non supporta stringhe binarie con lunghezza. L'esecuzione di un'istruzione ALTER TABLE su un database causa il seguente errore:

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

Si tratta di una limitazione di Preso e non di una limitazione di watsonx.data.

Limitazione: Eseguire il backup dei dati per evitare perdite di dati durante il lavoro con l'ambiente di sviluppo VS Code - Spark Labs.

Poiché i laboratori Spark sono di natura effimera, è necessario eseguire periodicamente il backup dei dati memorizzati per evitare una potenziale perdita di dati durante gli aggiornamenti o un crash del master Spark.