Domande frequenti su Query Service e Data Distiller
Questo documento risponde alle domande frequenti su Query Service e Data Distiller. Include inoltre i codici di errore più comuni durante l’utilizzo del prodotto "Query" per la convalida dei dati o la scrittura di dati trasformati nel data lake. Per domande e risoluzione dei problemi relativi ad altri servizi Adobe Experience Platform, consulta la guida alla risoluzione dei problemi di Experience Platform.
Per chiarire come Query Service e Data Distiller collaborano in Adobe Experience Platform, ecco due domande fondamentali.
Qual è la relazione tra Query Service e Data Distiller?
Query Service e Data Distiller sono componenti distinti e complementari che forniscono funzionalità specifiche di query dei dati. Query Service è progettato per query ad hoc per esplorare, convalidare e sperimentare i dati acquisiti senza alterarne il data lake. Al contrario, Data Distiller si concentra su query batch che trasformano e arricchiscono i dati, con risultati memorizzati nuovamente nel data lake per utilizzi futuri. È possibile pianificare, monitorare e gestire query in batch in Data Distiller, supportando un’elaborazione e una manipolazione dei dati più approfondite che Query Service da solo non facilita.
Insieme, Query Service facilita l’acquisizione di informazioni rapide, mentre Data Distiller consente trasformazioni approfondite e costanti dei dati.
Qual è la differenza tra Query Service e Data Distiller?
Query Service: utilizzato per query SQL incentrate sull'esplorazione, la convalida e la sperimentazione dei dati. Gli output non vengono memorizzati nel data lake e il tempo di esecuzione è limitato a 10 minuti. Le query ad hoc sono adatte per controlli e analisi dei dati interattivi e leggeri.
Data Distiller: abilita query batch che elaborano, puliscono e arricchiscono dati, con risultati archiviati nuovamente nel data lake. Queste query supportano un’esecuzione più lunga (fino a 24 ore) e funzionalità aggiuntive come pianificazione, monitoraggio e reporting accelerato. Data Distiller è ideale per la manipolazione approfondita dei dati e per le attività di elaborazione pianificate dei dati.
Per informazioni più dettagliate, consulta il documento sulla creazione pacchetti di Query Service.
Categorie di domande categories
Il seguente elenco di risposte alle domande frequenti è suddiviso nelle seguenti categorie:
Domande generali su Query Service general
Questa sezione include informazioni su prestazioni, limiti e processi.
È possibile disattivare la funzione di completamento automatico nell’editor di Query Service?
Perché l'editor di query a volte diventa lento quando si digita una query?
Posso usare Postman per l'API Query Service?
Esiste un limite al numero massimo di righe restituite da una query tramite l’interfaccia utente?
È possibile utilizzare le query per aggiornare le righe?
Esiste un limite di dimensione dei dati per l’output risultante da una query?
Come si aggira il limite del numero di righe di output da una query SELECT?
Per ignorare il limite di righe di output, applica "LIMIT 0" nella query. Ad esempio:
code language-sql |
---|
|
Come posso evitare che le query scadano in 10 minuti?
In caso di timeout delle query, si consiglia una o più delle seguenti soluzioni.
- Convertire la query in una query CTAS e pianificare l'esecuzione. È possibile pianificare un'esecuzione tramite l'interfaccia utente o l'API.
- Eseguire la query su un blocco di dati più piccolo applicando ulteriori condizioni filtro.
- Eseguire il comando EXPLAIN per raccogliere ulteriori dettagli.
- Esamina le statistiche dei dati all’interno del set di dati.
- Converti la query in una forma semplificata ed esegui nuovamente utilizzando istruzioni preparate.
Se vengono eseguite più query contemporaneamente, si verificano problemi o un impatto sulle prestazioni di Query Service?
È possibile utilizzare parole chiave riservate come nome di colonna?
ORDER
, GROUP BY
, WHERE
, DISTINCT
. Se desideri utilizzare queste parole chiave, devi eseguire l’escape di queste colonne.Come si trova un nome di colonna da un set di dati gerarchico?
I passaggi seguenti descrivono come visualizzare una vista a tabella di un set di dati tramite l’interfaccia utente, inclusi tutti i campi e le colonne nidificati in un modulo appiattito.
- Dopo aver effettuato l'accesso a Experience Platform, seleziona Set di dati nell'area di navigazione a sinistra dell'interfaccia utente per passare a Set di dati dashboard.
- Si apre la scheda Sfoglia dei set di dati. Puoi utilizzare la barra di ricerca per perfezionare le opzioni disponibili. Seleziona un set di dati dall’elenco visualizzato.
- Viene visualizzata la schermata Attività set di dati. Seleziona Anteprima set di dati per aprire una finestra di dialogo dello schema XDM e una visualizzazione a tabella dei dati appiattiti dal set di dati selezionato. Ulteriori dettagli sono disponibili nella anteprima della documentazione di un set di dati
- Seleziona un campo dello schema per visualizzarne il contenuto in una colonna appiattita. Il nome della colonna viene visualizzato sopra il suo contenuto sul lato destro della pagina. È necessario copiare questo nome da utilizzare per eseguire query su questo set di dati.
Consulta la documentazione per informazioni complete su come utilizzare strutture di dati nidificate utilizzando Query Editor o un client di terze parti.
Come velocizzare una query su un set di dati contenente array?
Perché la query CTAS viene ancora elaborata dopo molte ore solo per un numero limitato di righe?
Se la query ha richiesto molto tempo su un set di dati molto piccolo, contatta l’assistenza clienti.
Un’interrogazione può essere bloccata durante l’elaborazione per diversi motivi. Per determinare la causa esatta è necessaria un’analisi approfondita caso per caso. Contatta l'Assistenza clienti di Adobe per completare questa procedura.
Come posso contattare l’assistenza clienti Adobe? customer-support
Nella pagina della guida di Adobe è disponibile un elenco completo dei numeri di telefono del servizio clienti di Adobe. In alternativa, è possibile trovare la guida online completando i passaggi seguenti:
- Passa a https://www.adobe.com/ nel browser Web.
- Sul lato destro della barra di navigazione superiore, seleziona Accedi.
- Utilizza l’Adobe ID e la password registrati con la tua licenza Adobe.
- Seleziona Guida e supporto dalla barra di navigazione superiore.
Verrà visualizzato un banner a discesa contenente una sezione Guida e supporto tecnico. Seleziona Contattaci per aprire l'Assistente virtuale dell'Assistenza clienti di Adobe, oppure seleziona Supporto Enterprise per assistenza dedicata alle organizzazioni di grandi dimensioni.
Come si implementa una serie sequenziale di job senza eseguire i job successivi se il job precedente non viene completato correttamente?
La funzione di blocco anonimo consente di concatenare una o più istruzioni SQL eseguite in sequenza. Consentono inoltre di gestire le eccezioni.
Per ulteriori dettagli, consulta la documentazione sui blocchi anonimi.
Come si implementa l’attribuzione personalizzata in Query Service?
Esistono due modi per implementare l’attribuzione personalizzata:
- Utilizza una combinazione di funzioni definite da Adobe esistenti per identificare se le esigenze del caso d'uso sono soddisfatte.
- Se il suggerimento precedente non soddisfa il tuo caso d'uso, devi utilizzare una combinazione di funzioni finestra. Le funzioni di finestra esaminano tutti gli eventi in una sequenza. Consentono inoltre di rivedere i dati storici e possono essere utilizzati in qualsiasi combinazione.
Posso modellare le mie query in modo da poterle riutilizzare facilmente?
Come si recuperano i registri di errore per una query? error-logs
Per recuperare i registri degli errori per una query specifica, devi prima utilizzare l’API Query Service per recuperare i dettagli del registro delle query. La risposta HTTP contiene gli ID query necessari per individuare un errore di query.
Utilizzare il comando GET per recuperare più query. Le informazioni su come effettuare una chiamata all'API sono disponibili nella documentazione di esempio sulle chiamate API.
Dalla risposta, identifica la query da esaminare e invia un'altra richiesta GET utilizzando il relativo valore id
. Le istruzioni complete sono disponibili nella documentazione relativa al recupero di una query in base all'ID.
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 e contiene l’array errors
. La risposta è stata ridotta per brevità.
code language-json |
---|
|
La documentazione di riferimento API di Query Service fornisce ulteriori informazioni su tutti gli endpoint disponibili.
Cosa significa "Errore durante la convalida dello schema"?
Il messaggio "Errore durante la convalida dello schema" indica che il sistema non è in grado di individuare un campo all’interno dello schema. È necessario leggere il documento sulle best practice per organizzare le risorse dati in Query Service seguito dalla documentazione Crea tabella come selezione.
L'esempio seguente illustra l'utilizzo di una sintassi CTAS e di un tipo di dati struct:
code language-sql |
---|
|
Come posso elaborare rapidamente i nuovi dati che entrano nel sistema ogni giorno?
SNAPSHOT
può essere utilizzata per leggere in modo incrementale i dati su una tabella basata su un ID snapshot. Ideale per l'utilizzo con il modello di progettazione carico incrementale che elabora solo le informazioni nel set di dati creato o modificato dopo l'ultima esecuzione del caricamento. Di conseguenza, aumenta l’efficienza di elaborazione e può essere utilizzato sia con l’elaborazione dei dati in streaming che in batch.Perché esiste una differenza tra i numeri visualizzati nell’interfaccia utente del profilo e i numeri calcolati dal set di dati di esportazione del profilo?
I numeri visualizzati nel quadro comandi del profilo sono accurati all'ultima istantanea. I numeri generati nella tabella di esportazione del profilo dipendono interamente dalla query di esportazione. Di conseguenza, l’esecuzione di query sul numero di profili idonei per un determinato pubblico è una causa comune di questa discrepanza.
note note |
---|
NOTE |
La query include dati storici, mentre l’interfaccia utente visualizza solo i dati di profilo correnti. |
Perché la query ha restituito un sottoinsieme vuoto e cosa devo fare?
La causa più probabile è che la query ha un ambito troppo limitato. Rimuovere sistematicamente una sezione della clausola WHERE
finché non si iniziano a visualizzare alcuni dati.
Puoi anche verificare che il set di dati contenga dati utilizzando una piccola query come:
code language-sql |
---|
|
Posso campionare i miei dati?
Quali funzioni di assistenza sono supportate da Query Service?
Tutte le funzioni native di Spark SQL sono supportate o gli utenti sono limitati solo alle funzioni wrapper Spark SQL fornite da Adobe?
Gli utenti possono definire le proprie funzioni definite dall'utente (FDU) che possono essere utilizzate in altre query?
Cosa devo fare se la query pianificata non riesce?
Per prima cosa, controlla i registri per scoprire i dettagli dell’errore. La sezione Domande frequenti su individuazione di errori nei registri fornisce ulteriori informazioni su come eseguire questa operazione.
Consultare la documentazione per informazioni su come eseguire query pianificate nell'interfaccia utente e tramite l'API.
Quando si utilizza Query Editor è possibile aggiungere solo una pianificazione a una query già creata e salvata. Questo non si applica all'API Query Service.
Cosa significa l’errore "Limite di sessione raggiunto"?
In che modo il registro delle query gestisce le query relative a un set di dati eliminato?
Come posso ottenere solo i metadati per una query?
Puoi eseguire una query che restituisce zero righe per ottenere solo i metadati in risposta. Questa query di esempio restituisce solo i metadati per la tabella specificata.
code language-sql |
---|
|
Come è possibile eseguire rapidamente l'iterazione su una query CTAS (Create Table As Select) senza materializzarla?
È possibile creare tabelle temporanee per eseguire rapidamente l'iterazione e la sperimentazione di una query prima di materializzarla per l'utilizzo. È inoltre possibile utilizzare tabelle temporanee per verificare se una query funziona.
Ad esempio, puoi creare una tabella temporanea:
code language-sql |
---|
|
È quindi possibile utilizzare la tabella temporanea nel modo seguente:
code language-sql |
---|
|
Come si modifica il fuso orario in e da un timestamp UTC?
Adobe Experience Platform mantiene i dati in formato timestamp UTC (Coordinated Universal Time). Un esempio del formato UTC è 2021-12-22T19:52:05Z
Query Service supporta funzioni SQL incorporate per convertire un determinato timestamp in e dal formato UTC. Entrambi i metodi to_utc_timestamp()
e from_utc_timestamp()
richiedono due parametri: timestamp e timezone.
table 0-row-2 1-row-2 2-row-2 | |
---|---|
Parametro | Descrizione |
Timestamp | Il timestamp può essere scritto in formato UTC o in formato {year-month-day} semplice. Se non viene specificata un'ora, il valore predefinito è la mezzanotte del mattino del giorno specificato. |
Fuso orario | Il fuso orario è scritto in un formato {continent/city}) . Deve corrispondere a uno dei codici di fuso orario riconosciuti presenti nel database TZ di dominio pubblico. |
Converti in timestamp UTC
Il metodo to_utc_timestamp()
interpreta i parametri specificati e li converte nel timestamp del fuso orario locale in formato UTC. Ad esempio, il fuso orario a Seul, Corea del Sud, è UTC/GMT +9 ore. Specificando un timestamp di sola data, il metodo utilizza il valore predefinito mezzanotte del mattino. La marca temporale e il fuso orario vengono convertiti in formato UTC dall’ora dell’area geografica a una marca temporale UTC dell’area locale.
code language-sql |
---|
|
La query restituisce un timestamp nell’ora locale dell’utente. In questo caso sono le 15 del giorno prima, mentre Seoul è avanti di nove ore.
code language-none |
---|
|
Come altro esempio, se la marca temporale specificata era 2021-07-14 12:40:00.0
per il fuso orario Asia/Seoul
, la marca temporale UTC restituita sarebbe 2021-07-14 03:40:00.0
L’output della console fornito nell’interfaccia utente di Query Service è un formato più leggibile:
code language-none |
---|
|
Converti dal timestamp UTC
Il metodo from_utc_timestamp()
interpreta i parametri specificati dalla marca temporale del fuso orario locale e fornisce la marca temporale equivalente dell'area desiderata in formato UTC. Nell’esempio seguente, l’ora è le 14:40 nel fuso orario locale dell’utente. Il fuso orario di Seoul superato come variabile è di nove ore davanti al fuso orario locale.
code language-sql |
---|
|
La query restituisce una marca temporale in formato UTC per il fuso orario passato come parametro. Il risultato è nove ore prima del fuso orario in cui è stata eseguita la query.
code language-none |
---|
|
Come posso filtrare i dati delle serie temporali?
accordion | |||||
---|---|---|---|---|---|
Risposta | |||||
Quando esegui una query con dati di serie temporali, utilizza il filtro timestamp quando possibile per un’analisi più accurata.
Di seguito è riportato un esempio di utilizzo del filtro timestamp:
|
Come posso utilizzare correttamente l'operatore CAST
per convertire i miei timestamp nelle query SQL?
Quando si utilizza l'operatore CAST
per convertire una marca temporale, è necessario includere sia la data che l'ora.
Ad esempio, la mancanza del componente tempo, come mostrato di seguito, genera un errore:
code language-sql |
---|
|
L'utilizzo corretto dell'operatore CAST
è mostrato di seguito:
code language-sql |
---|
|
È necessario utilizzare caratteri jolly, ad esempio *, per ottenere tutte le righe dai set di dati?
Devo utilizzare NOT IN
nella query SQL?
L'operatore NOT IN
viene spesso utilizzato per recuperare le righe non trovate in un'altra tabella o istruzione SQL. Questo operatore può rallentare le prestazioni e restituire risultati imprevisti se le colonne confrontate accettano NOT NULL
o se si dispone di un numero elevato di record.
Anziché utilizzare NOT IN
, è possibile utilizzare NOT EXISTS
o LEFT OUTER JOIN
.
Ad esempio, se sono state create le seguenti tabelle:
code language-sql |
---|
|
Se si utilizza l'operatore NOT EXISTS
, è possibile eseguire la replica utilizzando l'operatore NOT IN
utilizzando la query seguente:
code language-sql |
---|
|
In alternativa, se si utilizza l'operatore LEFT OUTER JOIN
, è possibile eseguire la replica utilizzando l'operatore NOT IN
utilizzando la query seguente:
code language-sql |
---|
|
È possibile creare un set di dati utilizzando una query CTAS con un doppio nome di sottolineatura come quelli visualizzati nell’interfaccia utente? Esempio: test_table_001
.
Quante query simultanee è possibile eseguire alla volta?
Esiste un dashboard attività in cui è possibile visualizzare le attività e lo stato delle query?
Esiste un modo per eseguire il rollback degli aggiornamenti? Ad esempio, in caso di errore o se alcuni calcoli devono essere riconfigurati durante la scrittura di dati in Platform, come deve essere gestito lo scenario?
Come si ottimizzano le query in Adobe Experience Platform?
Il sistema non dispone di indici in quanto non è un database ma dispone di altre ottimizzazioni associate all’archivio dati. Per ottimizzare le query sono disponibili le seguenti opzioni:
- Un filtro basato sul tempo per i dati della serie temporale.
- Push-down ottimizzato per il tipo di dati struct.
- Ottimizzazione del push-down dei costi e della memoria per array e tipi di dati delle mappe.
- Elaborazione incrementale mediante snapshot.
- Un formato di dati persistente.
Gli accessi possono essere limitati ad alcuni aspetti di Query Service o si tratta di una soluzione "tutto o niente"?
È possibile limitare i dati utilizzabili da Query Service o accedere semplicemente all’intero data lake di Adobe Experience Platform?
Quali altre opzioni sono disponibili per limitare i dati a cui può accedere Query Service?
Esistono tre approcci per limitare l’accesso. Essi sono i seguenti:
- Utilizza le istruzioni SELECT only e concedi ai set di dati l’accesso in sola lettura. Inoltre, assegna l’autorizzazione per gestire le query.
- Utilizza le istruzioni SELECT/INSERT/CREATE e concedi l’accesso in scrittura ai set di dati. Inoltre, assegna l’autorizzazione di gestione della query.
- Utilizza un account di integrazione con i suggerimenti precedenti e assegna l’autorizzazione per l’integrazione della query.
Una volta che i dati sono stati restituiti da Query Service, vengono eseguiti alcuni controlli da parte di Platform per verificare che non siano stati restituiti dati protetti?
- Query Service supporta il controllo degli accessi basato su attributi. Puoi limitare l’accesso ai dati a livello di colonna/foglia e/o di struttura. Per ulteriori informazioni sul controllo degli accessi basato su attributi, consulta la documentazione.
È possibile specificare una modalità SSL per la connessione a un client di terze parti? È possibile, ad esempio, utilizzare "verify-full" con Power BI?
Usiamo TLS 1.2 per tutte le connessioni dai client Power BI al servizio di query?
Una connessione effettuata sulla porta 80 utilizza ancora https?
Posso controllare l’accesso a set di dati e colonne specifici per una particolare connessione? Come si configura?
Query Service supporta il comando "INSERT OVERWRITE INTO"?
Con quale frequenza vengono aggiornati i dati di utilizzo nel dashboard utilizzo licenze per Data Distiller Compute Hours?
È possibile utilizzare il comando CREATE VIEW senza accedere a Data Distiller?
CREATE VIEW
senza accedere a Data Distiller. Questo comando fornisce una vista logica dei dati ma non li riscrive nel data lake.È possibile utilizzare blocchi anonimi in DbVisualizer?
Data Distiller data-distiller
Come viene monitorato l’utilizzo delle licenze di Data Distiller e dove posso visualizzare queste informazioni?
Che cos'è un'ora di calcolo?
Come vengono misurate le ore di calcolo?
Perché talvolta si nota una variazione nel consumo di ore di calcolo anche quando si esegue la stessa query consecutivamente?
È normale notare una riduzione delle ore di calcolo quando eseguo la stessa query utilizzando gli stessi dati per un periodo di tempo prolungato? Perché potrebbe succedere?
Interfaccia query
Quando si tenta di connettersi a Query Service, la "Crea query" si blocca su "Inizializzazione della connessione in corso…". Come posso risolvere il problema?
Esempi di set di dati
Posso creare campioni su un set di dati di sistema?
Esportazione dei dati exporting-data
Questa sezione fornisce informazioni sull’esportazione di dati e sui limiti.
Esiste un modo per estrarre i dati da Query Service dopo l’elaborazione delle query e salvare i risultati in un file CSV? export-csv
Sì. I dati possono essere estratti da Query Service ed è inoltre possibile memorizzare i risultati in formato CSV tramite un comando SQL.
Esistono due modi per salvare i risultati di una query quando si utilizza un client PSQL. È possibile utilizzare il comando COPY TO
o creare un'istruzione utilizzando il seguente formato:
code language-sql |
---|
|
Per istruzioni sull'utilizzo del comando COPY TO
, vedere la documentazione di riferimento della sintassi SQL.
Posso estrarre il contenuto del set di dati finale che è stato acquisito tramite query CTAS (supponendo che si tratti di quantità di dati più grandi, come Terabyte)?
Perché il connettore dati di Analytics non restituisce dati?
Una causa comune di questo problema è l’esecuzione di query su dati di serie temporali senza un filtro temporale. Ad esempio:
code language-sql |
---|
|
Deve essere scritto come:
code language-sql |
---|
|
Sintassi SQL
MERGE INTO è supportato da Data Distiller o Query Service?
Query ITAS
Cosa sono le query ITAS?
Strumenti di terze parti third-party-tools
Questa sezione include informazioni sull’utilizzo di strumenti di terze parti come PSQL e Power BI.
È possibile collegare Query Service a uno strumento di terze parti?
Esiste un modo per connettere Query Service una volta per un utilizzo continuo con uno strumento di terze parti?
Perché le mie credenziali senza scadenza non funzionano?
technicalAccountID
e credential
ricavati dal file JSON di configurazione. Il valore della password assume la forma: {{technicalAccountId}:{credential}}
.Per ulteriori informazioni su come connettersi ai client esterni con le credenziali, vedere la documentazione.
Che tipo di editor SQL di terze parti è possibile connettere a Query Service Editor?
È possibile collegare lo strumento Power BI a Query Service?
Perché il caricamento delle dashboard richiede molto tempo quando si è connessi a Query Service?
Quando il sistema è connesso a Query Service, è connesso a un motore di elaborazione interattivo o batch. Questo può comportare tempi di caricamento più lunghi per riflettere i dati elaborati.
Se desideri migliorare i tempi di risposta per i dashboard, devi implementare un server di Business Intelligence (BI) come livello di caching tra gli strumenti Query Service e BI. In genere, la maggior parte degli strumenti di business intelligence dispone di un'offerta aggiuntiva per un server.
Lo scopo dell’aggiunta del livello del server di cache è quello di memorizzare in cache i dati da Query Service e utilizzarli ugualmente per i dashboard per velocizzare la risposta. Ciò è possibile in quanto i risultati per le query eseguite verrebbero memorizzati nella cache del server di business intelligence ogni giorno. Il server di caching fornisce quindi questi risultati a tutti gli utenti con la stessa query per ridurre la latenza. Per ulteriori informazioni su questa configurazione, consulta la documentazione dell’utility o dello strumento di terze parti in uso.
È possibile accedere a Query Service utilizzando lo strumento di connessione pgAdmin?
Errori API PostgreSQL postgresql-api-errors
Nella tabella seguente sono riportati i codici di errore PSQL e le possibili cause.
AuthenticationCleartextPassword
.CREATE TABLE
dbName
: controllare dbName
Perché è stato ricevuto un codice di errore 58000 quando si utilizza il metodo history_meta() nella tabella?
Il metodo history_meta()
viene utilizzato per accedere a uno snapshot da un set di dati. In precedenza, se si eseguiva una query su un set di dati vuoto in Azure Data Lake Storage (ADLS), veniva visualizzato un codice di errore 58000 che indicava che il set di dati non esiste. Di seguito è riportato un esempio del precedente errore di sistema.
code language-shell |
---|
|
Questo errore si è verificato perché non è stato restituito alcun valore per la query. Questo comportamento è stato corretto per restituire il seguente messaggio:
code language-text |
---|
|
Errori REST API rest-api-errors
Nella tabella seguente sono riportati i codici di errore HTTP e le possibili cause.