Guida alla traduzione SQL di IBM Netezza
IBM Netezza Data Warehousing è progettato per funzionare con la sintassi SQL specifica di Netezza. Netezza SQL si basa su Postgres 7.2. Gli script SQL scritti per Netezza non possono essere utilizzati in un data warehouse BigQuery senza modifiche, perché i dialetti SQL variano.
Questo documento descrive le analogie e le differenze nella sintassi SQL tra Netezza e BigQuery nei seguenti ambiti:
- 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 degli script SQL in blocco oppure 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 personalizzati
per cifre o scale
(vincoli) come
Netezza. BigQuery
ha 9 cifre fisse
dopo la virgola,
mentre Netezza consente
una configurazione personalizzata. In
Netezza, 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 è
a lunghezza variabile e
non richiede
l'impostazione manuale di una lunghezza
massima dei 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 è
a lunghezza variabile e
non richiede
l'impostazione manuale di una lunghezza
massima dei 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 in UTF-8
a lunghezza variabile. La
lunghezza massima è
di 16.000 caratteri. |
NVARCHAR
|
STRING
|
Il tipo STRING in
BigQuery viene archiviato come
Unicode con codifica UTF-8
a lunghezza variabile.
La lunghezza massima è di
16.000 caratteri. |
VARBINARY |
BYTES |
|
ST_GEOMETRY |
GEOGRAPHY |
|
BOOLEAN/BOOL
|
BOOL
|
Il tipo BOOL in
BigQuery può accettare
solo TRUE/FALSE , a differenza del tipo BOOL in Netezza, che può accettare una serie di valori come 0/1 , yes/no , true/false, e on/off . |
DATE |
DATE |
|
TIME |
TIME |
|
TIMETZ/TIME WITH TIME ZONE
|
TIME
|
Netezza memorizza il
tipo di dati TIME in formato UTC
e ti consente di passare
un offset da UTC
utilizzando la sintassi WITH TIME
ZONE . Il tipo di dati
TIME in
BigQuery rappresenta
un'ora indipendente
da qualsiasi data o fuso
orario. |
TIMESTAMP
|
DATETIME
|
Il tipo Netezza TIMESTAMP
non include un
fuso orario, come
il tipo BigQuery
DATETIME . |
ARRAY
|
Non esiste un tipo di dati array in Netezza. Il tipo di array viene invece memorizzato in un campo varchar. |
Formattazione del tipo di timestamp e data
Per saperne di più sulla formattazione del tipo di data utilizzata da Netezza SQL, consulta la documentazione sui 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 |
---|---|
CURRENT_TIMESTAMP CURRENT_TIME Le informazioni TIME
in Netezza possono avere
informazioni sul fuso orario
diverse, 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 consoleGoogle Cloud è formattato utilizzando un separatore T in conformità con RFC 3339. Tuttavia, in
Python e Java
JDBC, uno spazio viene
utilizzato come separatore.
Utilizza la funzione
esplicita FORMAT_DATETIME
per definire correttamente
il formato della data.
In caso contrario, viene eseguito un cast esplicito a una stringa, ad esempio:CAST(CURRENT_DATETIME() AS STRING) In questo modo viene restituito anche un separatore di spazi. |
CURRENT_DATE |
CURRENT_DATE |
CURRENT_DATE-3
|
BigQuery non supporta
le operazioni sui dati
aritmetiche.
Utilizza invece la funzione
DATE_ADD . |
SELECT
estratto conto
In genere, l'istruzione SELECT
di Netezza è compatibile con
BigQuery. La tabella seguente contiene un elenco di eccezioni:
Netezza | BigQuery |
---|---|
Una dichiarazione 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
|
Ottieni la data corrente (anno, mese e giorno). |
CURRENT_TIME
|
CURRENT_TIME
|
Ottieni l'ora attuale con la frazione. |
CURRENT_TIMESTAMP
|
CURRENT_TIMESTAMP
|
Ottieni la data e l'ora correnti del sistema, al secondo intero più vicino. |
NOW
|
CURRENT_TIMESTAMP
|
Ottieni la data e l'ora correnti del sistema, 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) |
Eseguire l'addizione sulle date. |
DURATION_SUBTRACT(date,
k) |
DATE_SUB(date,
INTERVAL k DAY) |
Eseguire la sottrazione su date. |
str1 || str2 |
CONCAT(str1,
str2) |
Concatenare stringhe. |
Funzioni
Questa sezione confronta le funzioni Netezza e BigQuery.
Funzioni di aggregazione
Funzioni analitiche
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 confronta la sintassi DML di Netezza e BigQuery.
INSERT
estratto conto
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 vengono 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 utilizzare al meglio la tua quota, valuta i seguenti approcci:
|
Gli script DML in BigQuery hanno una semantica di coerenza leggermente diversa rispetto alle istruzioni equivalenti in Netezza. Tieni presente inoltre che
BigQuery non offre vincoli diversi da NOT
NULL
.
Per una panoramica dell'isolamento degli snapshot e della gestione di sessioni e transazioni, consulta Garanzie di coerenza e isolamento delle transazioni.
UPDATE
estratto conto
In Netezza, la clausola WHERE
è facoltativa, ma in BigQuery è
necessaria.
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 la sezione
Esempi di UPDATE
.
A causa delle quote DML,
ti consigliamo di utilizzare istruzioni MERGE
più grandi anziché più istruzioni UPDATE
e INSERT
singole. 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 di sessioni e transazioni, consulta
Garanzie di coerenza e isolamento delle transazioni.
Istruzioni DELETE
e TRUNCATE
Le istruzioni DELETE
e TRUNCATE
sono due 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, vengono eliminate tutte le righe della tabella Netezza.
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 equivale a una transazione. Puoi farlo con un'operazione di query
o di 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 di eliminazione, 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
estratto conto
Un'istruzione MERGE
deve corrispondere al massimo a 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 di sessioni e transazioni, consulta
Garanzie di coerenza e isolamento delle transazioni.
Per esempi, vedi
Esempi di MERGE
BigQuery
e
Esempi di MERGE
Netezza.
Sintassi DDL
Questa sezione confronta la sintassi DDL di Netezza e BigQuery.
CREATE TABLE
estratto conto
Netezza | BigQuery | Descrizione |
---|---|---|
TEMP TEMPORARY
|
Grazie al 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
'my-project.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, di solito con una chiave univoca per una distribuzione uniforme, mentre PARTITION BY suddivide i dati in segmenti. |
ORGANIZE ON
|
CLUSTER BY
|
Sia Netezza che BigQuery supportano fino a quattro chiavi per il clustering. Le tabelle di base in cluster Netezza (CBT) forniscono la stessa precedenza a ciascuna delle colonne di clustering. 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
estratto conto
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
può contenere
valori NULL . |
REFERENCES
|
Non supportata | Specifica il vincolo 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
che esistono per la durata di una sessione.
Per creare una tabella temporanea in BigQuery:
- Crea un set di dati con una durata breve (ad esempio 12 ore).
Crea la tabella temporanea nel set di dati con il prefisso del nome della tabella
temp
. Ad esempio, per creare una tabella che scade dopo un'ora, procedi nel seguente modo: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 downstream.
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
estratto conto
Netezza e BigQuery supportano entrambi la creazione di stored procedure
utilizzando l'istruzione
CREATE PROCEDURE
. Per saperne di più, 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 i gestori di eccezioni che possono essere attivati per determinate condizioni di errore. BigQuery non supporta i gestori di 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 flusso di controllo
Netezza | BigQuery | Descrizione |
---|---|---|
IF THEN ELSE STATEMENT IF conditionTHEN ... ELSE ... END IF; |
IF conditionTHEN ... ELSE ... END IF;
|
Esegui in modo condizionale. |
Iterative ControlFOR var AS SELECT ... DO stmts END FOR; FOR var AS cur CURSOR FOR SELECT ... DO stmts END FOR; |
Non supportata | Itera su una raccolta di righe. |
Controllo iterativoLOOP stmts END LOOP; |
LOOP sql_statement_list END LOOP; |
Blocco del ciclo di istruzioni. |
EXIT WHEN |
BREAK |
Esci da una procedura. |
WHILE *condition* LOOP
|
WHILE conditionDO ... END WHILE |
Esegui un ciclo di istruzioni finché una condizione while non viene soddisfatta. |
Altre dichiarazioni ed elementi del linguaggio procedurale
Netezza | BigQuery | Descrizione |
---|---|---|
CALL proc(param,...) |
Non supportata | Eseguire una procedura. |
EXEC proc(param,...) |
Non supportata | Eseguire una procedura. |
EXECUTE proc(param,...) |
Non supportata | Eseguire una procedura. |
Istruzioni SQL su più righe e con più istruzioni
Sia Netezza che BigQuery supportano le transazioni (sessioni) e quindi supportano le istruzioni separate da punti e virgola che vengono eseguite in modo coerente insieme. Per maggiori informazioni, consulta la sezione Transazioni con più estratti conto.
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 le funzioni statistiche come MIN, MAX, AVG, e così via, utilizza la UI o l'API Cloud Data Loss Prevention. |
Genera statistiche per colonne specifiche di 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 l'isolamento dello snapshot. Per maggiori dettagli, vedi Garanzie di coerenza e isolamento delle transazioni. | Definisci il livello di isolamento della transazione. |
BEGIN TRANSACTION END TRANSACTION COMMIT |
BigQuery utilizza sempre l'isolamento dello snapshot. Per maggiori dettagli, vedi Garanzie di coerenza e isolamento delle transazioni. | Definisci il confine della transazione per le richieste multi-istruzione. |
EXPLAIN ...
|
Non supportati. Funzionalità simili nel piano e nella sequenza temporale della query | Mostra il piano di query per un'istruzione
SELECT .
|
Viste utente
metadati 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 ad 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 anche letture sporche, non ripetibili e fantasma tra transazioni simultanee.
Netezza non utilizza il
blocco
convenzionale per garantire la coerenza. Al contrario, utilizza il
controllo delle dipendenze di serializzazione,
una forma di controllo della contemporaneità ottimistico per eseguire automaticamente il rollback dell'ultima
transazione quando due transazioni tentano di modificare gli stessi dati.
BigQuery supporta anche le transazioni. BigQuery contribuisce a garantire controllo della contemporaneità ottimistico (la priorità è data al primo commit) con l'isolamento degli snapshot, in cui una query legge gli ultimi dati di cui è stato eseguito il commit prima dell'inizio della query. Questo approccio garantisce lo stesso livello di coerenza per riga, per mutazione e tra le righe all'interno della stessa istruzione DML, evitando al contempo i deadlock. In caso di più aggiornamenti DML 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 rollback tutte le modifiche apportate alla
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 |
Dimensione massima della riga | 64 kB | 100 MB |
Lunghezza del nome di colonna e tabella | 128 byte | 16.384 caratteri Unicode |
Righe per tabella | Illimitato | Illimitato |
Lunghezza massima della richiesta SQL | 1 MB (dimensione massima
della query SQL
standard non risolta). 12 MB (dimensione massima della 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 virtualmente illimitato se utilizzi la paginazione o l'API Cloud Storage. | |
Numero massimo di sessioni simultanee | 63 transazioni di lettura/scrittura simultanee. 2000 connessioni simultanee al server. | 100 query simultanee (possono essere aumentate con la riserva di slot), 300 richieste API simultanee per utente. |
Passaggi successivi
- Ricevi istruzioni passo passo per eseguire la migrazione da IBM Netezza a BigQuery.