Skip to main content

Alteryx Engine e AMP: differenze principali

Nell'articolo Alteryx AMP Engine abbiamo illustrato Alteryx Engine e il nuovo Alteryx Multi-threaded Processing (AMP). Ora analizziamo in modo più dettagliato le differenze principali fra i due.

Differenze nel trattamento dei dati

L'architettura dell'Engine originale consente principalmente l'elaborazione a thread singolo che elabora i dati in sequenza, record dopo record. D'altra parte, il nuovo concetto AMP consente un'elaborazione massicciamente multi-thread. I record vengono elaborati in pacchetti da 4 MB, così da accelerare i tempi di esecuzione, e in parallelo, il che può influire sull'ordine dei record restituiti.

With multiple cores, the AMP architecture allows for multi-threaded processing.
The original engine architecture allows for a single-threaded process, where your data is processed record-by-record.

Differenze di input

Il file CSV contenente un campo con le nuove righe tra virgolette restituisce un errore se non abiliti l'opzione aggiuntiva Solo AMP: i campi con le virgolette possono avere nuove righe al loro interno.

Limite record

L'impostazione di runtime nella configurazione del flusso di lavoro Limite di record per tutti gli input è abilitata con AMP per i seguenti strumenti:

  • Dati di input

  • Input di testo

  • Genera righe

  • Input di Macro

In AMP, il supporto del limite di record per lo strumento Input dinamico è stato aggiunto a partire dalla patch 2 della release 2021.1.

Differenze di output

Quando si esegue un flusso di lavoro con AMP Engine, molti strumenti possono restituire i record in un ordine diverso da come avviene nell'Engine originale. Alcuni di questi strumenti sono:

  • Campi incrociati

  • Pulizia dei dati (durante la rimozione di righe nulle)

  • Collega

  • Combinazione multipla

  • Formula con più righe

  • Costruzione Poly

  • Somma cumulativa

  • Ordina (quando l'ordinamento del dizionario è utilizzato con caratteri speciali)

  • Riepiloga (quando utilizzi Raggruppa per)

  • Riquadro

  • Unione

  • Unico

Se il flusso di lavoro richiede che i record degli strumenti sopra indicati siano in un ordine specifico per le operazioni a valle, è possibile utilizzare l'impostazione Modalità di compatibilità dell'engine per mantenere lo stesso ordine dell'engine originale. Questa impostazione deve essere utilizzata dopo un'attenta valutazione del flusso di lavoro specifico, soprattutto nel caso dei flussi di lavoro creati con l'Engine originale che vengono migrati per l'esecuzione con AMP Engine.

Per la funzionalità o la configurazione specifica che non è stata convertita ad AMP, viene ripristinata la modalità di funzionamento dello strumento Engine originale. Pertanto, i flussi di lavoro che contengono sia strumenti convertiti da AMP che strumenti non convertiti vengono eseguiti senza problemi con AMP.

Se hai domande su quali strumenti sono stati convertiti in AMP, consulta la sezione Utilizzo degli strumenti con AMP.

Con l'engine originale, gli strumenti sono più connessi e smettono di funzionare in assenza di elementi a valle. Nel caso dell'esecuzione parallela di AMP, invece, in mancanza di elementi a valle gli strumenti potrebbero non arrestarsi. Il presupposto è che se non sono presenti elementi a valle, il flusso di dati non viene preso in considerazione. I dati nel messaggio di log vengono forniti unicamente a titolo informativo. Se il numero di record nel flusso è un fattore importante per te, puoi inserire uno strumento Test e impostarlo in modo che restituisca un messaggio di errore se non ottiene il numero giusto di record.

Prestazioni di lettura

Un file YXDB scritto con AMP Engine viene letto più velocemente di un file YXDB scritto con l'engine originale. Quando AMP è abilitato, un file YXDB scritto con l'Engine originale viene letto più lentamente. Tuttavia, i formati sono comunque compatibili.

Con AMP è possibile utilizzare i formati di file XLSX, CSV, YXDB e SQLite, che supportano dati di lettura multithread.

La conversione dei record e dei pacchetti tra l'engine originale e AMP durante la lettura dei file Zip influisce sulle prestazioni. La lettura dei file Zip di grandi dimensioni con AMP potrebbe essere molto più lenta.

Suggerimento

Quando viene aperto in un editor di testo, un file YXDB scritto con AMP ha "Alteryx e2 Database file" all'inizio del contenuto del file. Un file scritto con l'engine originale mostra "Alteryx Database File" nella stessa posizione.

Prestazioni di scrittura

Per migliorare le prestazioni dell'Engine originale, permettendo ad AMP di scrivere un file YXDB creato con l'Engine originale, vai al menu Dati di output - Configurazione, dove puoi creare una versione del file YXDB compatibile con Designer 18.1 e versioni precedenti.

Lo strumento Output si comporta in modo diverso con i record che contengono dati SpatialObj a seconda che il file CSV venga salvato con l'engine originale o con AMP Engine. Contrariamente all'Engine originale, AMP scrive i dati SpatialObj nel file quando lo salva in formato CSV. Questa differenza produce file con dimensioni diverse e potrebbe comportare un calo di prestazioni.

Una possibile soluzione consiste nel rimuovere i dati spaziali dai record tramite lo strumento Seleziona. In questo modo, entrambi gli Engine potranno completare l'attività in tempi simili.

Profilatura delle prestazioni

La profilazione delle prestazioni a livello di strumento con AMP è disponibile con Designer 2021.3 e versioni successive.

Prestazioni dello strumento R

AMP passa i dati da e verso R nel formato dell'engine originale. Questa doppia conversione richiede tempo. L'esecuzione di un singolo strumento R può essere più lenta con AMP rispetto all'engine originale, ma avviene più velocemente se si eseguono più rami contemporaneamente.

Strumento Input di testo e AutoField

AMP affronta un problema storico in cui le dimensioni del campo potrebbero non essere sufficientemente grandi quando elaborate da uno strumento a valle. Non è necessario aggiungere gli strumenti Seleziona per modificare i tipi di dati quando i dati risultanti superano la lunghezza del tipo di dati originale. AMP crea il campo delle dimensioni massime per stringhe e numeri interi in modo che le operazioni successive dispongano dello spazio necessario per contenere valori a valle più grandi.

Strumento Limita

Anche se lo strumento Limita non è stato completamente convertito in AMP, è possibile utilizzarlo insieme allo strumento Download (prima strumento Limita).

Corrispondenza sfocata

Lo strumento Corrispondenza sfocata può avere risultati diversi tra l'engine originale e AMP. I record AMP vengono associati utilizzando un metodo alternativo. L'ordine di corrispondenza potrebbe essere diverso e l'output potrebbe essere ordinato in senso inverso. Esiste un problema di prestazioni noto a causa del quale Corrispondenza sfocata risulta avere prestazioni inferiori con AMP rispetto all'engine originale.

Strumento RegEx

AMP utilizza gli standard di codifica Unicode e Perl, per cui i caratteri $, +, <, =, >, ^, | e ~ non vengono considerati segni di punteggiatura. Quando utilizzi la funzione formula REGEX_Replace o lo strumento RegEx per filtrare la punteggiatura con il set Regex [[:punct:]], per AMP è necessario modificare l'espressione.

Esempio

REGEX_REPLACE([_CurrentField_],'[[:punct:]]|[\$\+<=>\^`\|~]','')

Strumenti di raggruppamento e strumenti di blocco

L'algoritmo Collega dell'engine originale si basa sul metodo ordina e unisci, con i record sempre ordinati in una determinata sequenza. Il nuovo algoritmo Collega di AMP si basa su un metodo di hash, il che non prevede l'ordinamento dei record. Ad esempio...

The Join algorithm with AMP is based on hash join, so the record order is different.

Input sinistro:

The Join algorithm - left input.

Ingresso destro:

The Join algorithm - right input.

Se colleghiamo in base a CustomerID con l'engine originale, l'ordine dei record avviene in base al campo CustomerID:

Join by CustomerID with the original Engine.

Con AMP i record sono gli stessi ma in un ordine diverso:

Join by CustomerID with AMP.

Se per l'output di Collega fosse necessario un ordinamento specifico, aggiungi lo strumento Ordina dopo Collega o attiva l'impostazione Modalità di compatibilità dell'Engine in Configurazione del flusso di lavoro > Runtime, sotto l'impostazione Usa AMP Engine.

Use AMP Engine checkbox

Macro iterative

La differenza tra Engine originale e AMP può emergere quando uno strumento all'interno della macro segnala un errore. Poiché l'Engine originale è a thread singolo, quando si verifica un errore nella macro, si arresta. AMP continua a funzionare fino a quando l'output iterativo non risulta vuoto o non si raggiunge il numero massimo di iterazioni. L'aumento del numero di iterazioni può determinare le situazioni seguenti:

  • Il numero di errori (se presenti) può essere maggiore con AMP.

  • Il numero di record potrebbe essere maggiore con AMP.

  • Lo schema di output potrebbe essere diverso con AMP.

Strumento Formula

Poiché le funzioni ConvertFromCodePage e ConvertToCodePage dello strumento Formula accettano una stringa come parametro e restituiscono una stringa come risultato, non è possibile capire come viene codificata la stringa. Con queste funzioni, quando si utilizza lo strumento Formula con l'Engine originale, viene generato un output diverso rispetto ad AMP.

Poiché AMP utilizza internamente stringhe con codifica UTF-8, i dati di input hanno una rappresentazione binaria diversa. Quando si importano dati con una codifica diversa, non è possibile ripristinare i dati originali. L'Engine originale memorizza le stringhe con codifica Latin-1, o UTF-16, che venivano utilizzate come buffer, e consente di convertire correttamente i dati.

Ulteriori componenti di Formula

Gli ulteriori componenti di Formula non sono ancora supportati con AMP. Se è necessario eseguire un flusso di lavoro contenente la funzionalità del componente aggiuntivo Formula, eseguilo utilizzando l'engine originale.

Importante

I componenti aggiuntivi Formula sono supportati tramite AMP a partire dalla versione 2023.2.

App analitica

Le app che usano lo strumento Mappa per selezionare da un livello di riferimento spaziale in un'App analitica dovrebbero continuare a usare l'Engine originale.

Aspettativa di flussi uguali

Con l'engine originale, "Aspettarsi flussi uguali" rimane una macro CReW. Con AMP, viene eseguito come strumento nativo.

Esecuzione di rami parallela e ordine di esecuzione dello strumento

Alcuni flussi di lavoro leggono i dati da un file e poi riscrivono nello stesso file. Ciò richiede il sequenziamento per garantire che la lettura sia completa prima dell'inizio della scrittura. Analogamente, un flusso di lavoro che desidera scrivere più fogli in un file con estensione XLSX deve scrivere i fogli uno alla volta. Alteryx Designer fornisce uno strumento Blocca fino alla conclusione (BUD, Block Until Done) che consente di suddividere il lavoro in varie fasi, che non interferiscono fra loro.

La stessa soluzione alternativa è applicabile anche allo strumento E-mail, quando i file di output dei rami precedenti vengono utilizzati come allegati. Per aggiungere i file come allegati allo strumento E-mail, devi attendere la fine dell'elaborazione dei dati.

Quando lavori su un flusso di lavoro con più rami (in gran parte flussi separati dagli input agli output), posiziona lo strumento BUD nel ramo del flusso di lavoro con l'ID dello strumento di input corrispondente al numero più basso. In questo modo, ogni ramo successivo attende di essere eseguito fino a quando non viene eseguito il ramo precedente, e lo strumento funziona come previsto.

Funzionalità disponibili

Per ulteriori informazioni sulla funzionalità specifica degli strumenti, vedi Utilizzo degli strumenti con AMP.