Azure Synapse Analytics è uno strumento forte per l’elaborazione di grandi quantità di dati. Ha alcune sfide di ridimensionamento che possono rallentare le cose man mano che i tuoi dati crescono. Ci sono anche alcune restrizioni combine che potrebbero limitare ciò che sei in grado di fare e influire sia sulle prestazioni che sulla funzionalità generale. Quindi, mentre la sinapsi è potente, è importante essere consapevoli di questi potenziali blocchi stradali mentre pianifichi i tuoi progetti.
Distribuzione dei dati e inclinazione
L’inclinazione dei dati rimane un collo di bottiglia di prestazioni significativo in Sinapsi Analytics. La selezione della chiave di distribuzione scarsa può portare a:
- 80-90% dei dati concentrati sul 10% dei nodi
- Hotspot durante l’esecuzione delle question
- Eccessivo movimento dei dati tramite tempdb
È possibile verificare la verifica dei dati controllando come le righe sono distribuite attraverso distribution_id
(che in genere mappe 1: 1 per calcolare i nodi su scala massima).
SELECT
distribution_id,
COUNT(*) AS row_count
FROM
(table_name)
GROUP BY
distribution_id
ORDER BY
row_count DESC;
Se lo vedi alcuni (distribution_id
) s hanno un molto più alto (row_count
) di altri, questo indica inclinazione.
Per mitigarlo:
- Usa colonne advert alta cardinalità per la distribuzione uniforme
- Monitorare l’utilizzo dell’utilizzo
DBCC PDW_SHOWSPACEUSED
- Ridistribuire le tabelle con
CREATE TABLE AS SELECT (CTAS)
Gestione e ridimensionamento delle risorse
1. Pool SQL
Non hai alcun controllo sulla configurazione del pool integrato. Per un pool dedicato, le impostazioni predefinite sono:
- DWU massimo: Gen1: DW6000, GEN2: DW30000C
- Il ridimensionamento richiede un intervento manuale usando i comandi SQL
Per ridimensionare manualmente il tuo pool SQL dedicato, usi quanto segue ALTER DATABASE
comando. Ecco come lo fai:
ALTER DATABASE (your_database)
MODIFY (SERVICE_OBJECTIVE = 'DW1000c');
Quando si ridimensiona un pool di sinapsi, va in modalità “ridimensionamento” per un po ‘e una volta fatto, torna a “on-line” ed è pronto per l’uso.
Punti chiave
- Il ridimensionamento non è automatico, quindi devi eseguire il comando da solo.
- Il pool SQL deve essere on-line per scalare.
- Puoi anche scalare usando PowerShell o il portale Azure, ma il comando SQL è un modo diretto per farlo.
2. Piscine Apache Spark
- Set off di scala se l’utilizzo delle risorse supera la capacità di 1 minuto.
- Scala-down richiede 2 minuti di sottoutilizzazione.
3. Integrazione Runtimes
- Ridimensionamento manuale attraverso il portale di Azure e non dall’space di lavoro sinapsi.
4. Limiti di concorrenza
- 128 question concorrenti massime; Eventuali ulteriori domande in eccesso vengono messe in coda.
- Sessioni aperte simultanee: 1024 per DWU1000C e superiore, 512 per DWU500C e inferiore.
Interrogazione e limitazioni dei dati
1. Hole di funzionalità SQL
- Nessun supporto per i set off, le question tra database o i tipi di dati geospaziali
- Uso limitato di espressioni come
GETDATE()
OSUSER_SNAME()
- No per le clausole XML/per JSON o il supporto del cursore
2. Restrizioni delle dimensioni dei dati
- Dimensione riga della tabella di origine limitata a 7.500 byte per il collegamento di sinapsi di Azure per SQL
- Dati LOB> 1 MB non supportato nelle istantanee iniziali per alcuni tipi di dati
3. Vincoli di question
- 4.096 colonne massime per riga nei risultati selezionati
- Fino a 32 sottoquerie nidificate in un’istruzione selezionata
- Unisciti a 1.024 colonne
4. Visualizza limitazioni
- Massimo di 1023 colonne in una vista. Se hai più colonne, visualizza la ristrutturazione.
Error: CREATE TABLE failed as a result of column 'VolumeLable' in desk 'QTable' exceeds the utmost of 1024 columns.
Per aggirare questo, dovrai solo rompere la tua vista in alcune più piccole, ognuna con meno di 1.024 colonne. Per esempio:
-- First view with columns 1 to 1023
CREATE VIEW dbo.BigTable_Part1 AS
SELECT col1, col2, ..., col1023
FROM dbo.BigTable;
-- Second view with the remaining columns
CREATE VIEW dbo.BigTable_Part2 AS
SELECT col1024, col1025, ..., col1100
FROM dbo.BigTable;
-- Mix views
SELECT *
FROM dbo.BigTable_Part1 p1
JOIN dbo.BigTable_Part2 p2
ON p1.PrimaryKey = p2.PrimaryKey;
Supporto in formato di dati limitato
- Orc e Avro I formati non sono supportati che sono formati di file comuni nei dati aziendali. Si consiglia di passare al parquet o al formato Deltalake.
- Integrato con la versione molto antica di Deltalake, che non supporta caratteristiche critiche come mappatura delle colonne, rinascita della colonna, ecc.
Pool di scintilla sinapsi di Azure che mostra la versione del lago Delta
Limitazioni di accesso
Quando si tenta di impostare il collegamento Synapse Azure per SQL, è possibile eseguire un errore se il proprietario del database non è collegato a un accesso valido. Fondamentalmente, il sistema richiede che il proprietario del database sia legato a un vero account utente per funzionare correttamente. In caso contrario, Synapse Hyperlink non può connettersi e lanciare un errore.
Soluzione alternativa
Per risolvere questo problema, assicurati solo che il proprietario del database sia impostato su un vero utente che ha effettivamente un accesso. Puoi farlo con un comando rapido:
sqlALTER AUTHORIZATION ON DATABASE::(YourDatabaseName) TO (ValidLogin);
Sostituire (YourDatabaseName
) con il nome del database effettivo e (ValidLogin
) con il nome di un login o utente valido a livello di server. Questo comando modifica la proprietà del database nel login specificato, garantendo che il proprietario del database sia mappato e autenticato correttamente.
Sfide di ottimizzazione delle prestazioni
1. Problemi di indicizzazione
- Degradazione dell’indice colonnello cluster (CCI) a causa di aggiornamenti frequenti o a bassa memoria
- Statistiche out of date che portano a piani di question non ottimali
2. Pressione tempdb
- Il movimento dei dati da inclinazioni o be part of incompatibili può riempire rapidamente tempdb
- Dimensione massima tempdb: 399 GB per DW100c
3. Comportamento della colonna dell’identità
- Distribuito in 60 frammenti, portando a valori non sequenziali
Limiti di backup e recupero
- Nessun backup offline .bak o .bacpac con i dati
- Limitato a 7 giorni di conservazione o creazione di copie del database (incorrendo i costi)
Conclusione
Azure Synapse Analytics è uno strumento potente per gestire i huge information, ma non è senza le sue stranezze. Incontrerai alcuni mal di testa in ridimensionamento e limiti integrati che possono rallentare le cose o rendere difficili le attività. Per ottenere le migliori prestazioni, devi essere intelligente su come distribuisci i tuoi dati, gestisci le risorse e ottimizza le tue domande.
Tenere d’occhio le cose e sintonizzare regolarmente aiuta a evitare i colli di bottiglia e fa funzionare tutto senza intoppi. Fondamentalmente, è fantastico, ma dovrai aggirare alcuni dossi lungo la strada per farlo brillare davvero.