Guida alla traduzione SQL di IBM Netezza
Il data warehousing IBM Netezza è progettato per funzionare con la sintassi SQL specifica di Netezza. Netezza SQL è basato su Postgres 7.2. Gli script SQL scritti per Netezza non possono essere utilizzati in un data warehouse BigQuery senza alterazioni, poiché i dialetti SQL variano.
Questo documento illustra le analogie e le differenze nella sintassi SQL tra Netezza e BigQuery nelle seguenti aree:
- Tipi di dati
- Elementi del linguaggio SQL
- Sintassi delle query
- Data Manipulation Language (DML)
- Data Definition Language (DDL)
- Stored procedure
- Funzioni
Puoi anche utilizzare la traduzione SQL batch per eseguire la migrazione collettiva degli script SQL o la traduzione SQL interattiva per tradurre query ad hoc. IBM Netezza SQL/NZPLSQL è supportato da entrambi gli strumenti in anteprima.
Tipi di dati
Netezza | BigQuery | Note |
---|---|---|
INTEGER/INT/INT4 |
INT64 |
|
SMALLINT/INT2 |
INT64 |
|
BYTEINT/INT1 |
INT64 |
|
BIGINT/INT8 |
INT64 |
|
DECIMAL
|
NUMERIC
|
Il tipo di dati DECIMAL in Netezza è un alias per il tipo di dati NUMERIC . |
NUMERIC
|
NUMERIC
INT64 |
|
NUMERIC(p,s)
|
NUMERIC
|
Il tipo NUMERIC in
BigQuery non
applica limiti di cifre o
scala personalizzati
(vincoli) come avviene in
Netezza. BigQuery ha 9 cifre fisse dopo la virgola decimale, mentre Netezza consente una configurazione personalizzata. In
Nettezza, la precisione p
può variare da 1 a 38
e la scala s da 0 alla
precisione. |
FLOAT(p) |
FLOAT64 |
|
REAL/FLOAT(6) |
FLOAT64 |
|
DOUBLE PRECISION/FLOAT(14) |
FLOAT64 |
|
CHAR/CHARACTER
|
STRING
|
Il tipo STRING in
BigQuery è
di lunghezza variabile e
non richiede
l'impostazione manuale di una lunghezza massima
di caratteri, come richiedono i tipi
CHARACTER e
VARCHAR di Netezza. Il valore predefinito di n in CHAR(n) è 1. La dimensione massima della stringa di caratteri è 64.000. |
VARCHAR
|
STRING
|
Il tipo STRING in
BigQuery è
di lunghezza variabile e
non richiede
l'impostazione manuale di una lunghezza massima
di caratteri, come richiedono i tipi
CHARACTER e
VARCHAR di Netezza. La dimensione massima della stringa di caratteri è 64.000. |
NCHAR
|
STRING
|
Il tipo STRING in
BigQuery viene archiviato come
Unicode codificato UTF-8
di lunghezza variabile. La lunghezza massima è di 16.000 caratteri. |
NVARCHAR
|
STRING
|
Il tipo STRING in
BigQuery viene archiviato come
Unicode con codifica UTF-8 di lunghezza variabile.
La lunghezza massima è di 16.000 caratteri. |
VARBINARY |
BYTES |
|
ST_GEOMETRY |
GEOGRAPHY |
|
BOOLEAN/BOOL
|
BOOL
|
Il tipo BOOL in
BigQuery può solo
accettare TRUE/FALSE ,
a differenza del tipo BOOL
in Netezza, che può
accettare una serie di
valori come 0/1 ,
yes/no , true/false,
on/off . |
DATE |
DATE |
|
TIME |
TIME |
|
TIMETZ/TIME WITH TIME ZONE
|
TIME
|
Netezza memorizza il
tipo di dati TIME in UTC
e ti consente di passare
una differenza rispetto a UTC
utilizzando la sintassi WITH TIME
ZONE . Il
tipo di dato TIME in
BigQuery rappresenta un
ora indipendente
da qualsiasi data o
fuso orario. |
TIMESTAMP
|
DATETIME
|
Il tipo TIMESTAMP
Netezza non include un
fuso orario, come accade per il tipo DATETIME
BigQuery. |
ARRAY
|
In Netezza non esiste un tipo di dato array. Il tipo di array viene invece salvato in un campo varchar. |
Formattazione del tipo di timestamp e data
Per ulteriori informazioni sulla formattazione del tipo di data utilizzata da Netezza SQL, consulta la documentazione relativa ai pattern dei modelli di data e ora di Netezza. Per saperne di più sulle funzioni di data e ora, consulta la documentazione relativa alle funzioni di data/ora di Netezza.
Quando converti gli elementi di formattazione del tipo di data da Netezza a
GoogleSQL, devi prestare particolare attenzione alle differenze di fuso orario tra TIMESTAMP
e DATETIME
, come riassunto nella tabella seguente:
Netezza | BigQuery |
---|---|
Le informazioni CURRENT_TIMESTAMP CURRENT_TIME TIME in Netezza possono avere informazioni su diversi fusi orari, che vengono definite utilizzando la sintassi WITH TIME ZONE .
|
Se possibile, utilizza la funzione CURRENT_TIMESTAMP , che è formattata correttamente. Tuttavia, il formato di output non mostra sempre il fuso orario UTC (internamente, BigQuery non ha un fuso orario).
L'oggetto DATETIME nello strumento a riga di comando bq e nella console Google Cloud è formattato utilizzando un separatore T in base a RFC 3339. Tuttavia, in
Python e Java
JDBC, viene utilizzato un
spazio come separatore.
Utilizza la funzione esplicita
FORMAT_DATETIME per definire correttamente il formato della data.
In caso contrario, viene eseguito un trasferimento esplicito a una stringa, ad esempio:CAST(CURRENT_DATETIME() AS STRING) Inoltre, viene restituito un separatore di spazi. |
CURRENT_DATE |
CURRENT_DATE |
CURRENT_DATE-3
|
BigQuery non supporta le operazioni di dati matematici.
Utilizza invece la funzione
DATE_ADD . |
SELECT
dichiarazione
In genere, l'istruzione SELECT
di Netezza è compatibile con
BigQuery. La tabella seguente contiene un elenco di eccezioni:
Netezza | BigQuery |
---|---|
Un'istruzione SELECT
senza clausola FROM |
Supporta casi speciali come i seguenti:
|
SELECT (subquery) AS flag, CASE WHEN flag = 1 THEN ... |
In BigQuery, le colonne non possono fare riferimento
all'output di altre colonne
definite all'interno della stessa query. Devi duplicare la logica o spostarla in una query nidificata.
Opzione 1 SELECT (subquery) AS flag, CASE WHEN (subquery) = 1 THEN ... Opzione 2 SELECT q.*, CASE WHEN flag = 1 THEN ... FROM ( SELECT (subquery) AS flag, ... ) AS q |
Operatori di confronto
Netezza | BigQuery | Descrizione |
---|---|---|
exp = exp2 |
exp = exp2 |
Uguale |
exp <= exp2 |
exp <= exp2 |
Minore o uguale a |
exp < exp2 |
exp < exp2 |
Minore di |
exp <> exp2 exp != exp2 |
exp <> exp2 exp != exp2 |
Non uguale |
exp >= exp2
|
exp >= exp2
|
Maggiore o uguale a |
exp > exp2 |
exp > exp2 |
Maggiore di |
Funzioni SQL integrate
Netezza | BigQuery | Descrizione |
---|---|---|
CURRENT_DATE
|
CURRENT_DATE
|
Recupera la data corrente (anno, mese e giorno). |
CURRENT_TIME
|
CURRENT_TIME
|
Ottieni l'ora corrente con la frazione. |
CURRENT_TIMESTAMP
|
CURRENT_TIMESTAMP
|
Recupera la data e l'ora corrente del sistema, fino al secondo intero più vicino. |
NOW
|
CURRENT_TIMESTAMP
|
Recupera la data e l'ora corrente del sistema, fino al secondo intero più vicino. |
COALESCE(exp, 0)
|
COALESCE(exp, 0)
|
Sostituisci NULL con
zero. |
NVL(exp, 0)
|
IFNULL(exp, 0)
|
Sostituisci NULL con
zero. |
EXTRACT(DOY FROM
timestamp_expression)
|
EXTRACT(DAYOFYEAR FROM
timestamp_expression)
|
Restituisce il numero di giorni dall'inizio dell'anno. |
ADD_MONTHS(date_expr,
num_expr) |
DATE_ADD(date,
INTERVAL k MONTH) |
Aggiungere mesi a una data. |
DURATION_ADD(date,
k) |
DATE_ADD(date,
INTERVAL k DAY) |
Esegui l'addizione su le date. |
DURATION_SUBTRACT(date,
k) |
DATE_SUB(date,
INTERVAL k DAY) |
Esegui la sottrazione su le date. |
str1 || str2 |
CONCAT(str1,
str2) |
Concatena stringhe. |
Funzioni
Questa sezione mette a confronto le funzioni Netezza e BigQuery.
Funzioni di aggregazione
Funzioni di analisi
Funzioni di data e ora
Funzioni di stringa
Funzioni matematiche
Netezza | BigQuery |
---|---|
ABS |
ABS |
ACOS |
ACOS |
ACOSH |
|
ASIN |
ASIN |
ASINH |
|
ATAN |
ATAN |
ATAN2 |
ATAN2 |
ATANH |
|
CEIL DCEIL |
CEIL
|
CEILING |
|
COS |
COS |
COSH |
|
COT |
COT |
DEGREES |
|
DIV |
|
EXP |
EXP |
FLOOR DFLOOR |
FLOOR
|
GREATEST |
GREATEST |
IEEE_DIVIDE |
|
IS_INF |
|
IS_NAN |
|
LEAST |
LEAST |
LN |
LN |
LOG |
LOG |
LOG10 |
|
MOD |
MOD |
NULLIF (expr, 0) |
|
PI |
ACOS (-1) |
POW FPOW |
POWER POW |
RADIANS |
|
RANDOM |
RAND |
ROUND |
ROUND |
SAFE_DIVIDE |
|
SETSEED |
|
SIGN |
SIGN |
SIN |
SIN |
SINH |
|
SQRT NUMERIC_SQRT |
SQRT
|
TAN |
TAN |
TANH |
|
TRUNC |
TRUNC |
IFNULL (expr, 0) |
Sintassi DML
Questa sezione mette a confronto la sintassi DML di Netezza e BigQuery.
INSERT
dichiarazione
Netezza | BigQuery |
---|---|
INSERT INTO table VALUES (...); |
INSERT INTO table (...) VALUES (...); Netezza offre una parola chiave DEFAULT e altri vincoli per le colonne. In BigQuery, l'omissione dei nomi delle colonne nell'istruzione INSERT è valida solo se sono specificate tutte le colonne. |
INSERT INTO table (...) VALUES (...); INSERT INTO table (...) VALUES (...); |
INSERT INTO table VALUES (), (); BigQuery impone quote DML, che limitano il numero di istruzioni DML che puoi eseguire ogni giorno. Per sfruttare al meglio la quota, valuta i seguenti approcci:
|
Gli script DML in BigQuery hanno una semantica di coerenza leggermente diversa rispetto alle istruzioni equivalenti in Netezza. Tieni inoltre presente che
BigQuery non offre vincoli diversi da NOT
NULL
.
Per una panoramica dell'isolamento degli snapshot e della gestione delle sessioni e delle transazioni, consulta Garanzia di coerenza e isolamento delle transazioni.
UPDATE
dichiarazione
In Netezza, la clausola WHERE
è facoltativa, ma in BigQuery è obbligatoria.
Netezza | BigQuery |
---|---|
UPDATE tbl SET tbl.col1=val1; |
Non supportato senza la clausola WHERE .
Utilizza una clausola WHERE true per aggiornare tutte le righe. |
UPDATE A SET y = B.y, z = B.z + 1 FROM B WHERE A.x = B.x AND A.y IS NULL; |
UPDATE A SET y = B.y, z = B.z + 1 FROM B WHERE A.x = B.x AND A.y IS NULL; |
UPDATE A alias SET x = x + 1 WHERE f(x) IN (0, 1) |
UPDATE A SET x = x + 1 WHERE f(x) IN (0, 1); |
UPDATE A SET z = B.z FROM B WHERE A.x = B.x AND A.y = B.y |
UPDATE A SET z = B.z FROM B WHERE A.x = B.x AND A.y = B.y; |
Per alcuni esempi, consulta
Esempi di UPDATE
.
A causa delle quote DML,
consigliamo di utilizzare istruzioni MERGE
più grandi anziché più istruzioni singolari
UPDATE
e INSERT
. Gli script DML in BigQuery hanno una semantica di coerenza leggermente diversa rispetto alle istruzioni equivalenti in Netezza.
Per una panoramica dell'isolamento degli snapshot e della gestione delle sessioni e delle transazioni, consulta
Garanzia di coerenza e isolamento delle transazioni.
DELETE
e TRUNCATE
estratti conto
Le istruzioni DELETE
e TRUNCATE
sono entrambi modi per rimuovere righe da una tabella
senza influire sullo schema o sugli indici della tabella. L'istruzione TRUNCATE
ha lo stesso effetto dell'istruzione DELETE
, ma è molto più veloce dell'istruzione DELETE
per le tabelle di grandi dimensioni. L'istruzione TRUNCATE
è supportata in Netezza, ma
non in BigQuery. Tuttavia, puoi utilizzare le istruzioni DELETE
sia in Netezza che in BigQuery.
In BigQuery, l'istruzione DELETE
deve avere una clausola WHERE
.
In Netezza, la clausola WHERE
è facoltativa. Se la clausola WHERE
non è
specificata, tutte le righe della tabella Netezza vengono eliminate.
Netezza | BigQuery | Descrizione |
---|---|---|
BEGIN; LOCK TABLE A IN EXCLUSIVE MODE; DELETE FROM A; INSERT INTO A SELECT * FROM B; COMMIT; |
La sostituzione dei contenuti di una tabella con l'output della query è
l'equivalente di una transazione. Puoi farlo con un'operazione query o copia (cp ). bq query \ bq cp \ |
Sostituisci i contenuti di una tabella con i risultati di una query. |
DELETE FROM database.table |
DELETE FROM table WHERE TRUE; |
In Netezza, quando viene eseguita un'istruzione DELETE, le righe
non vengono eliminate fisicamente, ma solo contrassegnate per l'eliminazione. L'esecuzione dei comandi
GROOM TABLE o nzreclaim in un secondo momento rimuove
le righe contrassegnate per l'eliminazione e recupera lo spazio su disco corrispondente.
|
GROOM
TABLE |
Netezza utilizza il comando GROOM TABLE per recuperare spazio su disco rimuovendo le righe contrassegnate per l'eliminazione. |
MERGE
dichiarazione
Un'istruzione MERGE
deve corrispondere a un massimo di una riga di origine per ogni riga di destinazione. Gli script DML in BigQuery hanno una semantica di coerenza leggermente diversa rispetto alle istruzioni equivalenti in Netezza. Per una panoramica dell'isolamento degli snapshot
e della gestione delle sessioni e delle transazioni, consulta
Garanzia di coerenza e isolamento delle transazioni.
Per esempi, consulta
Esempi di MERGE
BigQuery
e
Esempi di MERGE
Netezza.
Sintassi DDL
Questa sezione mette a confronto la sintassi DDL di Netezza e BigQuery.
CREATE TABLE
dichiarazione
Netezza | BigQuery | Descrizione |
---|---|---|
TEMP TEMPORARY
|
Con il supporto DDL di BigQuery, puoi creare una tabella dai risultati di una query e specificarne la scadenza al momento della creazione. Ad esempio, per tre giorni:CREATE TABLE
'fh-bigquery.public_dump.vtemp' OPTIONS (expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 3 DAY)) |
Crea tabelle temporanee per una sessione. |
ZONE MAPS
|
Non supportati. | Ricerca rapida della condizione WHERE . |
DISTRIBUTE ON
|
PARTITION BY
|
Partizionamento.
Questa non è una traduzione diretta. DISTRIBUTE ON condivide i dati tra i nodi, in genere con una chiave univoca per una distribuzione uniforme, mentre PARTITION BY elimina i dati in segmenti. |
ORGANIZE ON
|
CLUSTER BY
|
Sia Netezza che BigQuery supportano fino a quattro chiavi per il clustering. Le tabelle di base con raggruppamento (CBT) di Netezza forniscono la stessa precedenza a ciascuna delle colonne di raggruppamento. BigQuery dà la precedenza alla prima colonna su cui è raggruppata la tabella, seguita dalla seconda colonna e così via. |
ROW SECURITY |
Authorized View |
Sicurezza a livello di riga. |
CONSTRAINT |
Non supportata | Controlla i vincoli. |
DROP
dichiarazione
Netezza | BigQuery | Descrizione |
---|---|---|
DROP TABLE |
DROP TABLE |
|
DROP DATABASE |
DROP DATABASE |
|
DROP VIEW |
DROP VIEW |
Opzioni e attributi delle colonne
Netezza | BigQuery | Descrizione |
---|---|---|
NULL NOT NULL
|
NULLABLE REQUIRED
|
Specifica se la colonna è consentita per contenere valori NULL . |
REFERENCES
|
Non supportata | Specifica la limitazione della colonna. |
UNIQUE
|
Non supportata | Ogni valore nella colonna deve essere univoco. |
DEFAULT
|
Non supportata | Valore predefinito per tutti i valori nella colonna. |
Tabelle temporanee
Netezza supporta le
tabelle TEMPORARY
esistenti durante la durata di una sessione.
Per creare una tabella temporanea in BigQuery, segui questi passaggi:
- Crea un set di dati con una durata breve (ad esempio 12 ore).
Crea la tabella temporanea nel set di dati, con un prefisso del nome della tabella di
temp
. Ad esempio, per creare una tabella che scade tra un'ora:CREATE TABLE temp.name (col1, col2, ...) OPTIONS(expiration_timestamp = TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR));
Inizia a leggere e scrivere dalla tabella temporanea.
Puoi anche rimuovere i duplicati in modo indipendente per trovare errori nei sistemi a valle.
Tieni presente che BigQuery non supporta le colonne DEFAULT
e IDENTITY
(sequenze).
Istruzioni SQL procedurali
Netezza utilizza il linguaggio di scripting NZPLSQL per lavorare con le stored procedure. NZPLSQL si basa sul linguaggio PL/pgSQL di Postgres. Questa sezione descrive come convertire le istruzioni SQL procedurali utilizzate in stored procedure, funzioni e trigger da Netezza a BigQuery.
CREATE PROCEDURE
dichiarazione
Sia Netezza che BigQuery supportano la creazione di stored procedure
utilizzando l'istruzione
CREATE PROCEDURE
. Per ulteriori informazioni, consulta
Utilizzare le stored procedure SQL.
Dichiarazione e assegnazione di variabili
Netezza | BigQuery | Descrizione |
---|---|---|
DECLARE var
datatype(len) [DEFAULT
value]; |
DECLARE
|
Dichiara la variabile. |
SET var = value; |
SET |
Assegna un valore alla variabile. |
Gestori delle eccezioni
Netezza supporta gestori delle eccezioni che possono essere attivati per determinate condizioni di errore. BigQuery non supporta i gestori delle condizioni.
Netezza | BigQuery | Descrizione |
---|---|---|
EXCEPTION
|
Non supportata | Dichiara il gestore delle eccezioni SQL per gli errori generali. |
Istruzioni SQL dinamiche
Netezza supporta le query SQL dinamiche all'interno delle stored procedure. BigQuery non supporta le istruzioni SQL dinamiche.
Netezza | BigQuery | Descrizione |
---|---|---|
EXECUTE IMMEDIATE sql_str; |
EXECUTE IMMEDIATE sql_str; |
Esegui SQL dinamico. |
Istruzioni di controllo del flusso
Netezza | BigQuery | Descrizione |
---|---|---|
IF THEN ELSE STATEMENT IF conditionTHEN ... ELSE ... END IF; |
IF conditionTHEN ... ELSE ... END IF;
|
Esegui condizione. |
Controllo iterativoFOR var AS SELECT ... DO stmts END FOR; FOR var AS cur CURSOR FOR SELECT ... DO stmts END FOR; |
Non supportata | Esegui l'iterazione su una raccolta di righe. |
Controllo iterativoLOOP stmts END LOOP; |
LOOP sql_statement_list END LOOP; |
Blocco di istruzioni del ciclo. |
EXIT WHEN |
BREAK |
Uscire da una procedura. |
WHILE *condition* LOOP
|
WHILE conditionDO ... END WHILE |
Esegui un loop di istruzioni finché una condizione while non ha esito negativo. |
Altre istruzioni ed elementi di linguaggio procedurale
Netezza | BigQuery | Descrizione |
---|---|---|
CALL proc(param,...) |
Non supportata | Esegui una procedura. |
EXEC proc(param,...) |
Non supportata | Esegui una procedura. |
EXECUTE proc(param,...) |
Non supportata | Esegui una procedura. |
Istruzioni SQL con più istruzioni e su più righe
Sia Netezza che BigQuery supportano le transazioni (sessioni) e quindi supportano le istruzioni separate da punti e virgola che vengono eseguite insieme in modo coerente. Per ulteriori informazioni, consulta la sezione Transazioni con più istruzioni.
Altre istruzioni SQL
Netezza | BigQuery | Descrizione |
---|---|---|
GENERATE
STATISTICS
|
Genera statistiche per tutte le tabelle del database corrente. | |
GENERATE
STATISTICS ON
table_name |
Genera statistiche per una tabella specifica. | |
GENERATE
STATISTICS ON
table_name(col1,col4)
|
Utilizza
funzioni statistiche
come MIN, MAX, AVG,
e così via, utilizza l'interfaccia utente o
l'API Cloud Data Loss Prevention. |
Genera statistiche per colonne specifiche in una tabella. |
GENERATE
STATISTICS ON
table_name |
APPROX_COUNT_DISTINCT(col) |
Mostra il numero di valori univoci per le colonne. |
INSERT INTO
table_name |
INSERT INTO
table_name |
Inserisci una riga. |
LOCK TABLE
table_name FOR
EXCLUSIVE; |
Non supportata | Blocca riga. |
SET SESSION
CHARACTERISTICS AS
TRANSACTION ISOLATION
LEVEL ...
|
BigQuery utilizza sempre la funzionalità Isolamento snapshot. Per maggiori dettagli, consulta la sezione Garanzia della coerenza e isolamento delle transazioni. | Definisci il livello di isolamento delle transazioni. |
BEGIN TRANSACTION END TRANSACTION COMMIT |
BigQuery utilizza sempre la funzionalità Isolamento snapshot. Per maggiori dettagli, consulta la sezione Garanzia della coerenza e isolamento delle transazioni. | Definisci il confine della transazione per le richieste con più istruzioni. |
EXPLAIN ...
|
Non supportati. Funzionalità simili nel piano di query e nella sequenza temporale | Mostra il piano di query per un'istruzione
SELECT .
|
Metadati delle viste utente Metadati delle viste di sistema |
SELECT * EXCEPT(is_typed) FROM mydataset.INFORMATION_SCHEMA.TABLES; BigQuery Information Schema |
Esegui query sugli oggetti nel database |
Garanzie di coerenza e isolamento delle transazioni
Sia Netezza che BigQuery sono atomici, ovvero conformi allo standard ACID a livello di mutazione in molte righe. Ad esempio, un'operazione MERGE
è completamente atomica, anche con più valori inseriti.
Transazioni
Netezza accetta sintatticamente tutte e quattro le modalità di isolamento delle transazioni ANSI SQL.
Tuttavia, indipendentemente dalla modalità specificata, viene utilizzata solo la modalità SERIALIZABLE
, che offre il massimo livello di coerenza possibile. Questa modalità evita inoltre letture sporche, non ripetibili e fantasma tra transazioni concorrenti.
Netezza non utilizza il blocco convenzionale per applicare la coerenza. Utilizza invece il controllo delle dipendenze di serializzazione, una forma di controllo della contemporaneità ottimistica per eseguire automaticamente il rollback dell'ultima transazione quando due transazioni tentano di modificare gli stessi dati.
BigQuery supporta inoltre le transazioni. BigQuery contribuisce a garantire controllo della contemporaneità ottimistico (ha la priorità chi esegue il primo commit) con l'isolamento degli snapshot, in cui una query legge gli ultimi dati committati prima dell'inizio della query. Questo approccio garantisce lo stesso livello di coerenza su base per riga, per mutazione e tra righe all'interno della stessa istruzione DML, evitando al contempo i deadlock. In caso di più aggiornamenti DML eseguiti sulla stessa tabella, BigQuery passa al controllo della concorrenza pessimistico. I job di caricamento possono essere eseguiti in modo completamente indipendente e aggiunti alle tabelle.
Esegui il rollback
Netezza supporta l'istruzione ROLLBACK
per interrompere la transazione corrente e eseguire il rollback di tutte le modifiche apportate nella transazione.
In BigQuery, puoi utilizzare l'istruzione ROLLBACK TRANSACTION
.
Limiti per i database
Limite | Netezza | BigQuery |
---|---|---|
Tabelle per database | 32.000 | Senza restrizioni |
Colonne per tabella | 1600 | 10000 |
Dimensioni massime delle righe | 64 KB | 100 MB |
Lunghezza del nome di colonne e tabelle | 128 byte | 16.384 caratteri Unicode |
Righe per tabella | Illimitato | Illimitato |
Lunghezza massima della richiesta SQL | 1 MB (dimensione massima delle query SQL standard non risolte). 12 MB (lunghezza massima delle query SQL legacy e standard risolta). Streaming: 10 MB (limite di dimensione della richiesta HTTP) 10.000 (righe massime per richiesta) |
|
Dimensioni massime di richiesta e risposta | 10 MB (richiesta) e 10 GB (risposta) o praticamente illimitato se utilizzi la paginazione o l'API Cloud Storage. | |
Numero massimo di sessioni simultanee | 63 transazioni di lettura/scrittura contemporaneamente. 2000 collegamenti contemporaneamente al server. | 100 query in parallelo (il numero può essere aumentato con la prenotazione di slot), 300 richieste API in parallelo per utente. |
Passaggi successivi
- Consulta le istruzioni dettagliate per eseguire la migrazione da IBM Netezza a BigQuery.