Ordna dataresurser i frågetjänsten
Det här dokumentet innehåller riktlinjer för de effektivaste strategierna för att organisera datatillgångar, inklusive datauppsättningar, vyer och tillfälliga tabeller för användning med Adobe Experience Platform Query Service. Det handlar om hur du strukturerar dina data samt om hur du får tillgång till, uppdaterar och tar bort informationen.
Det är viktigt att organisera dina dataresurser logiskt i plattformen Data Lake när de växer. Med frågetjänsten utökas SQL-konstruktioner som gör att du logiskt kan gruppera dataresurser i en sandlåda. Med den här organisationsmetoden kan du dela datatillgångar mellan scheman utan att behöva flytta dem fysiskt.
Komma igång
Innan du fortsätter med det här dokumentet bör du ha god förståelse för funktionerna i frågetjänsten och ha läst användargränssnittshandboken.
Ordna data i frågetjänsten
I följande exempel visas vilka konstruktioner som är tillgängliga via Adobe Experience Platform Query Service för att logiskt organisera dina data med hjälp av standardsyntaxen för SQL. Du bör börja med att skapa en databas som fungerar som en behållare för dina datapunkter. En databas kan innehålla ett eller flera scheman, och varje schema kan sedan ha en eller flera referenser till en dataresurs (datauppsättningar, vyer, tillfälliga tabeller osv.). Referenserna innehåller alla relationer eller associationer mellan datauppsättningarna.
I användarhandboken för Frågeredigeraren finns detaljerad information om hur du använder användargränssnittet för frågetjänsten för att skapa SQL-frågor.
Följande SQL-konstruktioner för att logiskt organisera datauppsättningar i en sandlåda stöds.
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;
Exemplet (något trunkerat för att vara koncist) visar den här metoden där databaseA
innehåller schemat schema1
.
Koppla dataresurser till ett schema
När ett schema har skapats för att fungera som en behållare för dataresurserna kan varje datauppsättning kopplas till ett eller flera scheman i databasen med hjälp av standardsyntaxen för SQL ALTER TABLE.
I följande exempel läggs dataset1
, dataset2
, dataset3
och v1
till i behållaren databaseA.schema1
som skapades i föregående exempel.
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;
Åtkomst till dataresurser från databehållaren
Genom att kvalificera databasnamnet korrekt kan alla PostgreSQL-klienter ansluta till alla datastrukturer som du har skapat med nyckelordet SHOW. Mer information om nyckelordet SHOW finns i avsnittet SHOW i SQL-syntaxdokumentationen.
"all" är standarddatabasnamnet som innehåller alla databaser och schemabehållare i en sandlåda. När du skapar en PostgreSQL-anslutning med dbname="all"
kan du komma åt alla-databaser och -scheman som du har skapat för att organisera dina data logiskt.
En lista över alla databaser under dbname="all"
visar tre tillgängliga databaser.
SHOW DATABASES;
name
---------
databaseA
databaseB
databaseC
Om du visar alla scheman under dbname="all"
visas de tre scheman som är relaterade till varje databas i sandlådan.
SHOW SCHEMAS;
database | schema
----------------------
databaseA | schema1
databaseA | schema2
databaseB | schema3
När du skapar en PostgreSQL-anslutning med dbname="databaseA"
kan du komma åt alla scheman som är kopplade till den specifika databasen, vilket visas i exemplet nedan.
SHOW DATABASES;
name
---------
databaseA
SHOW SCHEMAS;
database | schema
----------------------
databaseA | schema1
databaseA | schema2
Med punktnotation kan du komma åt alla tabeller som är kopplade till ett specifikt schema som är anslutet till den valda databasen. Genom att ansluta till DBNAME = databaseA.schema1;
visas alla tabeller som är associerade med det specifika schemat (schema1
). Detta ger information om vilken datauppsättning som innehåller vilket register.
SHOW DATABASES;
name
---------
databaseA
SHOW SCHEMAS;
database | schema
----------------------
databaseA | schema1
SHOW tables;
name | type
----------------------
dataset1| table
dataset2| table
dataset3| table
Uppdatera eller ta bort dataresurser från en databehållare
När mängden dataresurser i organisationen (eller sandlådan) växer blir det nödvändigt att uppdatera eller ta bort dataresurser från en databehållare. Du kan ta bort enskilda resurser från organisationsbehållaren genom att referera till rätt databas- och schemanamn med punktnotation. Tabellen och vyn (t1
respektive v1
) som lagts till i databaseA.schema1
i det första exemplet tas bort med syntaxen i följande exempel.
ALTER TABLE databaseA.schema2.t1 REMOVE SCHEMA databaseA.schema2;
ALTER VIEW databaseA.schema2.v1 REMOVE SCHEMA databaseA.schema2;
Ta bort dataresurser
Funktionen DROP TABLE tar bara bort en dataresurs fysiskt från Data Lake när en enda referens till tabellen finns i alla databaser i organisationen.
DROP TABLE databaseA.schema2.t1;
Ta bort en dataresursbehållare
Både databasen och schemat kan också tas bort med standardfunktioner i SQL.
Ta bort en databas
Om det finns andra referenser till dataresurser som är associerade med databasen, kommer funktionen att få ett felmeddelande när den försöker ta bort databasen.
DROP DATABASE databaseA;
Ta bort ett schema
Det finns tre viktiga saker att tänka på när du tar bort ett schema:
- När du tar bort ett schema tas inga dataresurser som tabeller, vyer eller tillfälliga tabeller bort fysiskt.
- Om det finns några dataresurser som refereras i målschemat och läget är RESTRICT, genereras ett undantag.
- Om det finns några dataresurser som refereras till i målschemat och läget är CASCADE, tar systemet bort alla dataresurser som refereras av schemabehållaren och tar sedan bort schemabehållaren.
DROP SCHEMA databaseA.schema2;
Nästa steg
Genom att läsa det här dokumentet får du nu en bättre förståelse för de bästa metoderna för att organisera och strukturera dina dataresurser så att de kan användas med Adobe Experience Platform Query Service. Vi rekommenderar att du fortsätter att lära dig mer om hur frågetjänsten fungerar genom att läsa om dokumentationen för datadeduplicering.