Questo documento fornisce indicazioni sulle best practice per organizzare le risorse dati, tra cui set di dati, viste e tabelle temporanee da utilizzare con Adobe Experience Platform Query Service. Vengono inoltre fornite informazioni su come strutturare i dati e su come accedere, aggiornare ed eliminare tali informazioni.
È importante organizzare in modo logico le risorse dati all’interno di Platform Data Lake mentre crescono. Query Service estende i costrutti SQL che consentono di raggruppare in modo logico le risorse di dati all’interno di una sandbox. Questo metodo di organizzazione consente la condivisione di risorse di dati tra schemi senza la necessità di spostarli fisicamente.
Prima di continuare con questo documento, è necessario avere una buona conoscenza di Servizio query e aver letto il guida all’interfaccia utente.
Negli esempi seguenti vengono illustrati i costrutti disponibili tramite Adobe Experience Platform Query Service per organizzare in modo logico i dati utilizzando la sintassi SQL standard. È innanzitutto necessario creare un database che funga da contenitore per i punti dati. Un database può contenere uno o più schemi e ogni schema può quindi avere uno o più riferimenti a una risorsa dati (set di dati, viste, tabelle temporanee, ecc.). Tali riferimenti includono eventuali relazioni o associazioni tra i set di dati.
Consulta la Guida utente di Query Editor per istruzioni dettagliate su come utilizzare l’interfaccia utente di Query Service per creare query SQL.
Sono supportati i seguenti costrutti SQL per organizzare in modo logico i set di dati in una sandbox.
CREATE DATABASE databaseA;
CREATE SCHEMA databaseA.schema1;
CREATE table t1 ...;
CREATE view v1 ...;
ALTER TABLE t1 ADD PRIMARY KEY (c1) NOT ENFORCED;
ALTER TABLE t2 ADD FOREIGN KEY (c1) REFERENCES t1(c1) NOT ENFORCED;
L’esempio (leggermente troncato per brevità) illustra questa metodologia dove databaseA
contiene schema schema1
.
Una volta creato uno schema che funge da contenitore per le risorse di dati, ogni set di dati può essere associato a uno o più schemi nel database utilizzando la sintassi standard SQL ALTER TABLE.
L’esempio seguente aggiunge dataset1
, dataset2
, dataset3
e v1
al databaseA.schema1
contenitore creato nell’esempio precedente.
ALTER TABLE dataset1 ADD SCHEMA databaseA.schema1;
ALTER TABLE dataset2 ADD SCHEMA databaseA.schema1;
ALTER TABLE dataset3 ADD SCHEMA databaseA.schema1;
ALTER VIEW v1 ADD SCHEMA databaseA.schema1;
Qualificando in modo appropriato il nome del database, qualsiasi PostgreSQL Il client può connettersi a qualsiasi struttura di dati creata utilizzando la parola chiave SHOW. Per ulteriori informazioni sulla parola chiave SHOW, vedere MOSTRA sezione nella documentazione della sintassi SQL.
“all” è il nome predefinito del database che contiene ogni database e contenitore di schema in una sandbox. Quando si crea un PostgreSQL connessione tramite dbname="all"
, puoi accedere a qualsiasi database e schema creati per organizzare i dati in modo logico.
Elenco di tutti i database in dbname="all"
visualizza tre database disponibili.
SHOW DATABASES;
name
---------
databaseA
databaseB
databaseC
Elenco di tutti gli schemi in dbname="all"
visualizza i tre schemi correlati a ogni database nella sandbox.
SHOW SCHEMAS;
database | schema
----------------------
databaseA | schema1
databaseA | schema2
databaseB | schema3
Quando si crea un PostgreSQL connessione tramite dbname="databaseA"
, è possibile accedere a qualsiasi schema associato a quel database specifico, come illustrato nell’esempio seguente.
SHOW DATABASES;
name
---------
databaseA
SHOW SCHEMAS;
database | schema
----------------------
databaseA | schema1
databaseA | schema2
La notazione del punto consente di accedere a ogni tabella associata a uno schema specifico connesso al database scelto. Tramite connessione a DBNAME = databaseA.schema1;
, tutte le tabelle associate a tale schema specifico (schema1
). Fornisce informazioni su quale set di dati contiene quale tabella.
SHOW DATABASES;
name
---------
databaseA
SHOW SCHEMAS;
database | schema
----------------------
databaseA | schema1
SHOW tables;
name | type
----------------------
dataset1| table
dataset2| table
dataset3| table
Man mano che la quantità di risorse di dati nell’organizzazione (o nella sandbox) aumenta, diventa necessario aggiornare o rimuovere le risorse di dati da un contenitore di dati. Le singole risorse possono essere rimosse dal contenitore organizzazione facendo riferimento al nome del database e dello schema appropriato utilizzando la notazione del punto. Tabella e vista (t1
e v1
rispettivamente) aggiunto a databaseA.schema1
nel primo esempio, vengono rimossi utilizzando la sintassi dell'esempio seguente.
ALTER TABLE databaseA.schema2.t1 REMOVE SCHEMA databaseA.schema2;
ALTER VIEW databaseA.schema2.v1 REMOVE SCHEMA databaseA.schema2;
Il RILASCIA TABELLA rimuove fisicamente una risorsa di dati solo dal Data Lake quando esiste un singolo riferimento alla tabella in tutti i database dell’organizzazione.
DROP TABLE databaseA.schema2.t1;
È inoltre possibile rimuovere sia il database che lo schema utilizzando le funzioni SQL standard.
Se esistono altri riferimenti alle risorse di dati associate al database, la funzione genera un errore quando si tenta di rimuovere il database.
DROP DATABASE databaseA;
Durante la rimozione di uno schema è necessario tenere presenti tre considerazioni importanti:
DROP SCHEMA databaseA.schema2;
La lettura di questo documento consente di comprendere meglio le best practice relative all’organizzazione e alla struttura delle risorse dati da utilizzare con Adobe Experience Platform Query Service. Si consiglia di continuare ad acquisire familiarità con le best practice di Query Service leggendo informazioni su documentazione sulla deduplicazione dei dati.