SQL-syntax i Query Service
Du kan använda ANSI SQL som standard för SELECT
-satser och andra begränsade kommandon i Adobe Experience Platform Query Service. Det här dokumentet innehåller den SQL-syntax som stöds av Query Service.
SELECT-frågor select-queries
Följande syntax definierar en SELECT
-fråga som stöds av Query Service:
[ WITH with_query [, ...] ]
SELECT [ ALL | DISTINCT [( expression [, ...] ) ] ]
[ * | expression [ [ AS ] output_name ] [, ...] ]
[ FROM from_item [, ...] ]
[ SNAPSHOT { SINCE start_snapshot_id | AS OF end_snapshot_id | BETWEEN start_snapshot_id AND end_snapshot_id } ]
[ WHERE condition ]
[ GROUP BY grouping_element [, ...] ]
[ HAVING condition [, ...] ]
[ WINDOW window_name AS ( window_definition ) [, ...] ]
[ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT { count | ALL } ]
[ OFFSET start ]
I flikavsnittet nedan finns tillgängliga alternativ för nyckelorden FROM, GROUP och WITH…
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
code language-sql |
---|
|
Följande underavsnitt innehåller information om ytterligare satser som du kan använda i dina frågor, förutsatt att de följer det format som beskrivs ovan.
SNAPSHOT-sats
Den här satsen kan användas för att stegvis läsa data i en tabell baserat på ID:n för ögonblicksbilder. Ett ID för en ögonblicksbild är en kontrollpunktsmarkör som representeras av ett Long-typnummer som används på en datarintabell varje gång data skrivs till den. Satsen SNAPSHOT
kopplar sig till registerrelationen som den används bredvid.
[ SNAPSHOT { SINCE start_snapshot_id | AS OF end_snapshot_id | BETWEEN start_snapshot_id AND end_snapshot_id } ]
Exempel
SELECT * FROM table_to_be_queried SNAPSHOT SINCE start_snapshot_id;
SELECT * FROM table_to_be_queried SNAPSHOT AS OF end_snapshot_id;
SELECT * FROM table_to_be_queried SNAPSHOT BETWEEN start_snapshot_id AND end_snapshot_id;
SELECT * FROM table_to_be_queried SNAPSHOT BETWEEN HEAD AND start_snapshot_id;
SELECT * FROM table_to_be_queried SNAPSHOT BETWEEN end_snapshot_id AND TAIL;
SELECT * FROM (SELECT id FROM table_to_be_queried BETWEEN start_snapshot_id AND end_snapshot_id) C
(SELECT * FROM table_to_be_queried SNAPSHOT SINCE start_snapshot_id) a
INNER JOIN
(SELECT * from table_to_be_joined SNAPSHOT AS OF your_chosen_snapshot_id) b
ON a.id = b.id;
Tabellen nedan förklarar innebörden av varje syntaxalternativ i SNAPSHOT-satsen.
SINCE start_snapshot_id
AS OF end_snapshot_id
BETWEEN start_snapshot_id AND end_snapshot_id
start_snapshot_id
och inkluderar end_snapshot_id
.BETWEEN HEAD AND start_snapshot_id
start_snapshot_id
.BETWEEN end_snapshot_id AND TAIL
end-snapshot_id
till slutet av datauppsättningen (exklusive ögonblicksbilds-ID). Det innebär att om end_snapshot_id
är den sista ögonblicksbilden i datauppsättningen returneras nollrader eftersom det inte finns några ögonblicksbilder utöver den senaste ögonblicksbilden.SINCE start_snapshot_id INNER JOIN table_to_be_joined AS OF your_chosen_snapshot_id ON table_to_be_queried.id = table_to_be_joined.id
table_to_be_queried
och kopplar det med data från table_to_be_joined
som det var på your_chosen_snapshot_id
. Kopplingen baseras på matchande ID:n från ID-kolumnerna i de två tabellerna som kopplas.En SNAPSHOT
-sats fungerar med en tabell eller ett tabellalias men inte ovanpå en underfråga eller vy. En SNAPSHOT
-sats fungerar var som helst där en SELECT
-fråga i en tabell kan tillämpas.
Du kan också använda HEAD
och TAIL
som speciella förskjutningsvärden för ögonblicksbildssatser. Om du använder HEAD
refereras en förskjutning före den första ögonblicksbilden, medan TAIL
refererar till en förskjutning efter den sista ögonblicksbilden.
resolve_fallback_snapshot_on_failure
) har angetts:- Om den valfria reservbeteendeflaggan är inställd väljer frågetjänsten den tidigaste tillgängliga ögonblicksbilden, anger den som startögonblicksbild och returnerar data mellan den tidigaste tillgängliga ögonblicksbilden och den angivna slutögonblicksbilden. Dessa data är inklusiv av den tidigaste tillgängliga ögonblicksbilden.
WHERE-sats
Som standard är matchningar som skapats av en WHERE
-sats i en SELECT
-fråga skiftlägeskänsliga. Om du vill att matchningar ska vara skiftlägesokänsliga kan du använda nyckelordet ILIKE
i stället för LIKE
.
[ WHERE condition { LIKE | ILIKE | NOT LIKE | NOT ILIKE } pattern ]
Logiken i LIKE- och ILIKE-klausulerna förklaras i följande tabell:
WHERE condition LIKE pattern
~~
WHERE condition NOT LIKE pattern
!~~
WHERE condition ILIKE pattern
~~*
WHERE condition NOT ILIKE pattern
!~~*
Exempel
SELECT * FROM Customers
WHERE CustomerName ILIKE 'a%';
Den här frågan returnerar kunder med namn som börjar på A eller a.
GÅ MED
En SELECT
-fråga som använder kopplingar har följande syntax:
SELECT statement
FROM statement
[JOIN | INNER JOIN | LEFT JOIN | LEFT OUTER JOIN | RIGHT JOIN | RIGHT OUTER JOIN | FULL JOIN | FULL OUTER JOIN]
ON join condition
UNION, INTERSECT, and EXCEPT
Satserna UNION
, INTERSECT
och EXCEPT
används för att kombinera eller exkludera liknande rader från två eller flera tabeller:
SELECT statement 1
[UNION | UNION ALL | UNION DISTINCT | INTERSECT | EXCEPT | MINUS]
SELECT statement 2
SKAPA TABELL SOM MARKERAD create-table-as-select
Följande syntax definierar en CREATE TABLE AS SELECT
-fråga (CTAS):
CREATE TABLE table_name [ WITH (schema='target_schema_title', rowvalidation='false', label='PROFILE') ] AS (select_query)
schema
rowvalidation
true
.label
profile
för att ge datauppsättningen en etikett som aktiverad för profilen. Det innebär att din datauppsättning automatiskt markeras för profil när den skapas. Mer information om hur du använder label
finns i det härledda attributtilläggsdokumentet.select_query
Exempel
CREATE TABLE Chairs AS (SELECT color, count(*) AS no_of_chairs FROM Inventory i WHERE i.type=="chair" GROUP BY i.color)
CREATE TABLE Chairs WITH (schema='target schema title', label='PROFILE') AS (SELECT color, count(*) AS no_of_chairs FROM Inventory i WHERE i.type=="chair" GROUP BY i.color)
CREATE TABLE Chairs AS (SELECT color FROM Inventory SNAPSHOT SINCE 123)
SELECT
måste ha ett alias för sammanställningsfunktioner som COUNT
, SUM
, MIN
och så vidare. Programsatsen SELECT
kan även tillhandahållas med eller utan parenteser (). Du kan tillhandahålla en SNAPSHOT
-sats för att läsa inkrementella deltas i måltabellen.INFOGA I
Kommandot INSERT INTO
definieras så här:
INSERT INTO table_name select_query
table_name
select_query
Exempel
INSERT INTO Customers SELECT SupplierName, City, Country FROM OnlineCustomers;
INSERT INTO Customers AS (SELECT * from OnlineCustomers SNAPSHOT AS OF 345)
SELECT
inom parentes (). Schemat för resultatet av programsatsen SELECT
måste dessutom överensstämma med schemat för tabellen som definierats i programsatsen INSERT INTO
. Du kan tillhandahålla en SNAPSHOT
-sats för att läsa inkrementella deltas i måltabellen.De flesta fält i ett riktigt XDM-schema hittas inte på rotnivå och SQL tillåter inte användning av punktnotation. För att få ett realistiskt resultat med kapslade fält måste du mappa varje fält i sökvägen INSERT INTO
.
Använd följande syntax för att INSERT INTO
kapslade sökvägar:
INSERT INTO [dataset]
SELECT struct([source field1] as [target field in schema],
[source field2] as [target field in schema],
[source field3] as [target field in schema]) [tenant name]
FROM [dataset]
Exempel
INSERT INTO Customers SELECT struct(SupplierName as Supplier, City as SupplierCity, Country as SupplierCountry) _Adobe FROM OnlineCustomers;
DROP TABLE
Kommandot DROP TABLE
släpper en befintlig tabell och tar bort katalogen som är associerad med tabellen från filsystemet om den inte är en extern tabell. Om tabellen inte finns inträffar ett undantag.
DROP TABLE [IF EXISTS] [db_name.]table_name
IF EXISTS
SKAPA DATABAS
Kommandot CREATE DATABASE
skapar en Azure Data Lake Storage-databas (ADLS).
CREATE DATABASE [IF NOT EXISTS] db_name
DROP DATABASE
Kommandot DROP DATABASE
tar bort databasen från en instans.
DROP DATABASE [IF EXISTS] db_name
IF EXISTS
DROP SCHEMA
Kommandot DROP SCHEMA
släpper ett befintligt schema.
DROP SCHEMA [IF EXISTS] db_name.schema_name [ RESTRICT | CASCADE]
IF EXISTS
RESTRICT
CASCADE
SKAPA VY create-view
En SQL-vy är en virtuell tabell som baseras på resultatet av en SQL-sats. Skapa en vy med programsatsen CREATE VIEW
och ge den ett namn. Du kan sedan använda det namnet för att referera tillbaka till resultatet av frågan. Det gör det enklare att återanvända komplexa frågor.
Följande syntax definierar en CREATE VIEW
-fråga för en datamängd. Den här datauppsättningen kan vara en ADLS- eller accelererad butiksdatauppsättning.
CREATE VIEW view_name AS select_query
view_name
select_query
Exempel
CREATE VIEW V1 AS SELECT color, type FROM Inventory
CREATE OR REPLACE VIEW V1 AS SELECT model, version FROM Inventory
Följande syntax definierar en CREATE VIEW
-fråga som skapar en vy i kontexten för en databas och ett schema.
Exempel
CREATE VIEW db_name.schema_name.view_name AS select_query
CREATE OR REPLACE VIEW db_name.schema_name.view_name AS select_query
db_name
schema_name
view_name
select_query
Exempel
CREATE VIEW <dbV1 AS SELECT color, type FROM Inventory;
CREATE OR REPLACE VIEW V1 AS SELECT model, version FROM Inventory;
VISA VYER
Följande fråga visar en lista med vyer.
SHOW VIEWS;
Db Name | Schema Name | Name | Id | Dataset Dependencies | Views Dependencies | TYPE
----------------------------------------------------------------------------------------------
qsaccel | profile_agg | view1 | view_id1 | dwh_dataset1 | | DWH
| | view2 | view_id2 | adls_dataset | adls_views | ADLS
(2 rows)
DROP VIEW
Följande syntax definierar en DROP VIEW
-fråga:
DROP VIEW [IF EXISTS] view_name
IF EXISTS
view_name
Exempel
DROP VIEW v1
DROP VIEW IF EXISTS v1
Anonymt block anonymous-block
Ett anonymt block består av två avsnitt: körbara avsnitt och avsnitt för undantagshantering. I ett anonymt block är det körbara avsnittet obligatoriskt. Avsnittet om undantagshantering är dock valfritt.
I följande exempel visas hur du skapar ett block med en eller flera programsatser som ska köras tillsammans:
$$BEGIN
statementList
[EXCEPTION exceptionHandler]
$$END
exceptionHandler:
WHEN OTHER
THEN statementList
statementList:
: (statement (';')) +
Nedan visas ett exempel med anonym blockering.
$$BEGIN
SET @v_snapshot_from = select parent_id from (select history_meta('email_tracking_experience_event_dataset') ) tab where is_current;
SET @v_snapshot_to = select snapshot_id from (select history_meta('email_tracking_experience_event_dataset') ) tab where is_current;
SET @v_log_id = select now();
CREATE TABLE tracking_email_id_incrementally
AS SELECT _id AS id FROM email_tracking_experience_event_dataset SNAPSHOT BETWEEN @v_snapshot_from AND @v_snapshot_to;
EXCEPTION
WHEN OTHER THEN
DROP TABLE IF EXISTS tracking_email_id_incrementally;
SELECT 'ERROR';
$$END;
Villkorliga satser i ett anonymt block conditional-anonymous-block-statements
Kontrollstrukturen IF-THEN-ELSE möjliggör villkorlig körning av en lista med satser när ett villkor utvärderas som TRUE. Denna kontrollstruktur är endast tillämplig inom ett anonymt block. Om den här strukturen används som ett fristående kommando resulterar det i ett syntaxfel ("Ogiltigt kommando utanför det anonyma blocket").
Kodfragmentet nedan visar rätt format för villkorssatsen IF-THEN-ELSE i ett anonymt block.
IF booleanExpression THEN
List of statements;
ELSEIF booleanExpression THEN
List of statements;
ELSEIF booleanExpression THEN
List of statements;
ELSE
List of statements;
END IF
Exempel
Exemplet nedan kör SELECT 200;
.
$$BEGIN
SET @V = SELECT 2;
SELECT @V;
IF @V = 1 THEN
SELECT 100;
ELSEIF @V = 2 THEN
SELECT 200;
ELSEIF @V = 3 THEN
SELECT 300;
ELSE
SELECT 'DEFAULT';
END IF;
END$$;
Den här strukturen kan användas med raise_error();
för att returnera ett anpassat felmeddelande. Kodblocket som visas nedan avslutar det anonyma blocket med"anpassat felmeddelande".
Exempel
$$BEGIN
SET @V = SELECT 5;
SELECT @V;
IF @V = 1 THEN
SELECT 100;
ELSEIF @V = 2 THEN
SELECT 200;
ELSEIF @V = 3 THEN
SELECT 300;
ELSE
SELECT raise_error('custom error message');
END IF;
END$$;
Kapslade IF-programsatser
Kapslade IF-satser stöds i anonyma block.
Exempel
$$BEGIN
SET @V = SELECT 1;
IF @V = 1 THEN
SELECT 100;
IF @V > 0 THEN
SELECT 1000;
END IF;
END IF;
END$$;
Undantagsblock
Undantagsblock stöds i anonyma block.
Exempel
$$BEGIN
SET @V = SELECT 2;
IF @V = 1 THEN
SELECT 100;
ELSEIF @V = 2 THEN
SELECT raise_error(concat('custom-error for v= ', '@V' ));
ELSEIF @V = 3 THEN
SELECT 300;
ELSE
SELECT 'DEFAULT';
END IF;
EXCEPTION WHEN OTHER THEN
SELECT 'THERE WAS AN ERROR';
END$$;
Auto till JSON auto-to-json
Frågetjänsten stöder en valfri inställning på sessionsnivå för att returnera komplexa fält på den översta nivån från interaktiva SELECT-frågor som JSON-strängar. Inställningen auto_to_json
tillåter att data från komplexa fält returneras som JSON och sedan tolkas till JSON-objekt med hjälp av standardbibliotek.
ANGE att funktionsflaggan auto_to_json
ska vara true innan SELECT-frågan som innehåller komplexa fält körs.
set auto_to_json=true;
Innan du anger flaggan auto_to_json
I följande tabell visas ett exempel på frågeresultat innan inställningen auto_to_json
används. Samma SELECT-fråga (se nedan) som avser en tabell med komplexa fält användes i båda scenarierna.
SELECT * FROM TABLE_WITH_COMPLEX_FIELDS LIMIT 2;
Resultatet är följande:
_id | _experience | application | commerce | dataSource | device | endUserIDs | environment | identityMap | placeContext | receivedTimestamp | timestamp | userActivityRegion | web | _adcstageforpqs
-----------------------------------+----------------------------------------------------------------------------+--------------+----------------------------------------------+------------+--------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------------------+-----------------------+-----------------------+--------------------+--------------------------------------------------------------------------------------+-----------------
31892EE15DE00000-401D52664FF48A52 | ("("("(1,1)","(1,1)")","(-209479095,4085488201,-2105158467,2189808829)")") | (background) | (NULL,"(USD,NULL)",NULL,NULL,NULL,NULL,NULL) | (475341) | (32,768,1024,205202,https://ns.adobe.com/xdm/external/deviceatlas) | ("("(31892EE080007B35-E6CE00000000000,"(AAID)",t)")") | ("(en-US,f,f,t,1.6,"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; ja-jp) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7",490,1125)",xo.net,64.3.235.13) | [AAID -> "{(31892EE080007B35-E6CE00000000000,t)}"] | ("("(34.01,-84.0)",lawrenceville,US,524,30043,ga)",600) | 2022-09-02 19:47:14.0 | 2022-09-02 19:47:14.0 | (UT1) | ("(f,Search Results,"(1.0)")","(http://www.google.com/search?ie=UTF-8&q=,internal)") |
31892EE15DE00000-401B92664FF48AE8 | ("("("(1,1)","(1,1)")","(-209479095,4085488201,-2105158467,2189808829)")") | (background) | (NULL,"(USD,NULL)",NULL,NULL,NULL,NULL,NULL) | (475341) | (32,768,1024,205202,https://ns.adobe.com/xdm/external/deviceatlas) | ("("(31892EE100007BF3-215FE00000000001,"(AAID)",t)")") | ("(en-US,f,f,t,1.5,"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; ja-jp) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7",768,556)",ntt.net,219.165.108.145) | [AAID -> "{(31892EE100007BF3-215FE00000000001,t)}"] | ("("(34.989999999999995,138.42)",shizuoka,JP,392005,420-0812,22)",-240) | 2022-09-02 19:47:14.0 | 2022-09-02 19:47:14.0 | (UT1) | ("(f,Home - JJEsquire,"(1.0)")","(NULL,typed_bookmarked)") |
(2 rows)
Efter inställning av flaggan auto_to_json
I följande tabell visas skillnaden i resultat som auto_to_json
-inställningen har på den resulterande datauppsättningen. Samma SELECT-fråga användes i båda scenarierna.
_id | receivedTimestamp | timestamp | _experience | application | commerce | dataSource | device | endUserIDs | environment | identityMap | placeContext | userActivityRegion | web | _adcstageforpqs
-----------------------------------+-----------------------+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+----------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------
31892EE15DE00000-401D52664FF48A52 | 2022-09-02 19:47:14.0 | 2022-09-02 19:47:14.0 | {"analytics":{"customDimensions":{"eVars":{"eVar1":"1","eVar2":"1"},"props":{"prop1":"1","prop2":"1"}},"environment":{"browserID":-209479095,"browserIDStr":"4085488201","operatingSystemID":-2105158467,"operatingSystemIDStr":"2189808829"}}} | {"userPerspective":"background"} | {"order":{"currencyCode":"USD"}} | {"_id":"475341"} | {"colorDepth":32,"screenHeight":768,"screenWidth":1024,"typeID":"205202","typeIDService":"https://ns.adobe.com/xdm/external/deviceatlas"} | {"_experience":{"aaid":{"id":"31892EE080007B35-E6CE00000000000","namespace":{"code":"AAID"},"primary":true}}} | {"browserDetails":{"acceptLanguage":"en-US","cookiesEnabled":false,"javaEnabled":false,"javaScriptEnabled":true,"javaScriptVersion":"1.6","userAgent":"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; ja-jp) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7","viewportHeight":490,"viewportWidth":1125},"domain":"xo.net","ipV4":"64.3.235.13"} | {"AAID":[{"id":"31892EE080007B35-E6CE00000000000","primary":true}]} | {"geo":{"_schema":{"latitude":34.01,"longitude":-84.0},"city":"lawrenceville","countryCode":"US","dmaID":524,"postalCode":"30043","stateProvince":"ga"},"localTimezoneOffset":600} | {"dataCenterLocation":"UT1"} | {"webPageDetails":{"isHomePage":false,"name":"Search Results","pageViews":{"value":1.0}},"webReferrer":{"URL":"http://www.google.com/search?ie=UTF-8&q=","type":"internal"}} |
31892EE15DE00000-401B92664FF48AE8 | 2022-09-02 19:47:14.0 | 2022-09-02 19:47:14.0 | {"analytics":{"customDimensions":{"eVars":{"eVar1":"1","eVar2":"1"},"props":{"prop1":"1","prop2":"1"}},"environment":{"browserID":-209479095,"browserIDStr":"4085488201","operatingSystemID":-2105158467,"operatingSystemIDStr":"2189808829"}}} | {"userPerspective":"background"} | {"order":{"currencyCode":"USD"}} | {"_id":"475341"} | {"colorDepth":32,"screenHeight":768,"screenWidth":1024,"typeID":"205202","typeIDService":"https://ns.adobe.com/xdm/external/deviceatlas"} | {"_experience":{"aaid":{"id":"31892EE100007BF3-215FE00000000001","namespace":{"code":"AAID"},"primary":true}}} | {"browserDetails":{"acceptLanguage":"en-US","cookiesEnabled":false,"javaEnabled":false,"javaScriptEnabled":true,"javaScriptVersion":"1.5","userAgent":"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; ja-jp) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7","viewportHeight":768,"viewportWidth":556},"domain":"ntt.net","ipV4":"219.165.108.145"} | {"AAID":[{"id":"31892EE100007BF3-215FE00000000001","primary":true}]} | {"geo":{"_schema":{"latitude":34.989999999999995,"longitude":138.42},"city":"shizuoka","countryCode":"JP","dmaID":392005,"postalCode":"420-0812","stateProvince":"22"},"localTimezoneOffset":-240} | {"dataCenterLocation":"UT1"} | {"webPageDetails":{"isHomePage":false,"name":"Home - JJEsquire","pageViews":{"value":1.0}},"webReferrer":{"type":"typed_bookmarked"}} |
(2 rows)
Lös reservögonblicksbild vid fel resolve-fallback-snapshot-on-failure
Alternativet resolve_fallback_snapshot_on_failure
används för att lösa problemet med ett ögonblicksbild-ID som har gått ut.
Ange alternativet resolve_fallback_snapshot_on_failure
till true om du vill åsidosätta en ögonblicksbild med ett tidigare ID för ögonblicksbild.
SET resolve_fallback_snapshot_on_failure=true;
Följande kodrad åsidosätter @from_snapshot_id
med den tidigaste tillgängliga snapshot_id
från metadata.
$$ BEGIN
SET resolve_fallback_snapshot_on_failure=true;
SET @from_snapshot_id = SELECT coalesce(last_snapshot_id, 'HEAD') FROM checkpoint_log a JOIN
(SELECT MAX(process_timestamp)process_timestamp FROM checkpoint_log
WHERE process_name = 'DIM_TABLE_ABC' AND process_status = 'SUCCESSFUL' )b
on a.process_timestamp=b.process_timestamp;
SET @to_snapshot_id = SELECT snapshot_id FROM (SELECT history_meta('DIM_TABLE_ABC')) WHERE is_current = true;
SET @last_updated_timestamp= SELECT CURRENT_TIMESTAMP;
INSERT INTO DIM_TABLE_ABC_Incremental
SELECT * FROM DIM_TABLE_ABC SNAPSHOT BETWEEN @from_snapshot_id AND @to_snapshot_id WHERE NOT EXISTS (SELECT _id FROM DIM_TABLE_ABC_Incremental a WHERE _id=a._id);
Insert Into
checkpoint_log
SELECT
'DIM_TABLE_ABC' process_name,
'SUCCESSFUL' process_status,
cast( @to_snapshot_id AS string) last_snapshot_id,
cast( @last_updated_timestamp AS TIMESTAMP) process_timestamp;
EXCEPTION
WHEN OTHER THEN
SELECT 'ERROR';
END
$$;
Dataresursorganisation
Det är viktigt att logiskt organisera era dataresurser inom Adobe Experience Platform dataresa 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.
Följande SQL-konstruktioner som använder standard-SQL-syntax stöds så att du kan organisera dina data logiskt.
CREATE DATABASE dg1;
CREATE SCHEMA dg1.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;
Mer information om bästa praxis för frågetjänst finns i guiden logisk organisation av datatillgångar .
Tabellen finns
SQL-kommandot table_exists
används för att bekräfta om det finns en tabell i systemet. Kommandot returnerar ett booleskt värde: true
om tabellen inte finns och false
om tabellen inte finns.
Genom att validera om en tabell finns innan programsatserna körs, förenklar funktionen table_exists
processen att skriva ett anonymt block så att det omfattar både CREATE
- och INSERT INTO
-användningsfall.
Följande syntax definierar kommandot table_exists
:
$$
BEGIN
#Set mytableexist to true if the table already exists.
SET @mytableexist = SELECT table_exists('target_table_name');
#Create the table if it does not already exist (this is a one time operation).
CREATE TABLE IF NOT EXISTS target_table_name AS
SELECT *
FROM profile_dim_date limit 10;
#Insert data only if the table already exists. Check if @mytableexist = 'true'
INSERT INTO target_table_name (
select *
from profile_dim_date
WHERE @mytableexist = 'true' limit 20
) ;
EXCEPTION
WHEN other THEN SELECT 'ERROR';
END $$;
Textbunden inline
Funktionen inline
separerar elementen i en array med strukturer och genererar värdena till en tabell. Den kan bara placeras i listan SELECT
eller LATERAL VIEW
.
inline
-funktionen kan inte placeras i en urvalslista där det finns andra generatorfunktioner.
Som standard får kolumnerna som skapas namnen "col1", "col2" och så vidare. Om uttrycket är NULL
skapas inga rader.
RENAME
.Exempel
> SELECT inline(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
Exemplet returnerar följande:
1 a Spark SQL
2 b Spark SQL
I det andra exemplet demonstreras konceptet och tillämpningen av funktionen inline
ytterligare. Datamodellen för exemplet illustreras i bilden nedan.
Exempel
select inline(productListItems) from source_dataset limit 10;
Värdena från source_dataset
används för att fylla i måltabellen.
ANGE
Kommandot SET
ställer in en egenskap och returnerar antingen värdet för en befintlig egenskap eller visar alla befintliga egenskaper. Om ett värde anges för en befintlig egenskapsnyckel åsidosätts det gamla värdet.
SET property_key = property_value
property_key
property_value
Om du vill returnera värdet för en inställning använder du SET [property key]
utan en property_value
.
PostgreSQL-kommandon
Underavsnitten nedan omfattar de PostgreSQL-kommandon som stöds av frågetjänsten.
ANALYSERA TABELL analyze-table
Kommandot ANALYZE TABLE
utför en distributionsanalys och statistiska beräkningar för den namngivna tabellen eller tabellerna. Användningen av ANALYZE TABLE
varierar beroende på om datauppsättningarna lagras på det accelererade arkivet eller datasjön. Mer information om hur de används finns i respektive avsnitt.
DATORSTATISTIK på den accelererade butiken compute-statistics-accelerated-store
Kommandot ANALYZE TABLE
beräknar statistik för en tabell på det accelererade arkivet. Statistiken beräknas på utförda CTAS- eller ITAS-frågor för en given tabell på den accelererade butiken.
Exempel
ANALYZE TABLE <original_table_name>
Nedan följer en lista över statistiska beräkningar som är tillgängliga efter att kommandot ANALYZE TABLE
har använts:-
field
data-type
count
distinct-count
missing
max
min
mean
stdev
COMPUTE STATISTICS on the data Lake compute-statistics-data-lake
Du kan nu beräkna kolumnnivåstatistik för Azure Data Lake Storage (ADLS) datauppsättningar med SQL-kommandot COMPUTE STATISTICS
. Beräkna kolumnstatistik för antingen hela datauppsättningen, en deluppsättning av en datauppsättning, alla kolumner eller en delmängd av kolumner.
COMPUTE STATISTICS
utökar kommandot ANALYZE TABLE
. Kommandona COMPUTE STATISTICS
, FILTERCONTEXT
och FOR COLUMNS
stöds dock inte i tabeller med accelererade arkiv. Dessa tillägg för kommandot ANALYZE TABLE
stöds för närvarande bara för ADLS-tabeller.
Exempel
ANALYZE TABLE tableName FILTERCONTEXT (timestamp >= to_timestamp('2023-04-01 00:00:00') and timestamp <= to_timestamp('2023-04-05 00:00:00')) COMPUTE STATISTICS FOR COLUMNS (commerce, id, timestamp);
Kommandot FILTER CONTEXT
beräknar statistik på en delmängd av datauppsättningen baserat på det angivna filtervillkoret. Kommandot FOR COLUMNS
har specifika kolumner som mål för analysen.
Statistics ID
och den genererade statistiken är bara giltiga för varje session och kan inte nås mellan olika PSQL-sessioner.Begränsningar:
- Statistisk generering stöds inte för datatyperna array eller map
- Beräknad statistik är inte beständig mellan sessioner.
skip_stats_for_complex_datatypes
SET skip_stats_for_complex_datatypes = false
Konsolutdata visas enligt nedan.
| Statistics ID |
| ---------------------- |
| adc_geometric_stats_1 |
(1 row)
Du kan sedan fråga den beräknade statistiken direkt genom att referera till Statistics ID
. Använd Statistics ID
eller aliasnamnet så som visas i exempelprogramsatsen nedan för att visa utdata i sin helhet. Mer information om den här funktionen finns i dokumentationen om aliasnamn.
-- This statement gets the statistics generated for `alias adc_geometric_stats_1`.
SELECT * FROM adc_geometric_stats_1;
Använd kommandot SHOW STATISTICS
om du vill visa metadata för all temporär statistik som genereras i sessionen. Det här kommandot kan hjälpa dig att förfina omfattningen av din statistiska analys.
SHOW STATISTICS;
Ett exempel på VISA STATISTIK visas nedan.
statsId | tableName | columnSet | filterContext | timestamp
----------------------+---------------+-----------+-----------------------------+--------------------
adc_geometric_stats_1 | adc_geometric | (age) | | 25/06/2023 09:22:26
demo_table_stats_1 | demo_table | (*) | ((age > 25)) | 25/06/2023 12:50:26
age_stats | castedtitanic | (age) | ((age > 25) AND (age < 40)) | 25/06/2023 09:22:26
Mer information finns i dokumentationen om datauppsättningsstatistik.
TABLESAMPLE tablesample
Adobe Experience Platform Query Service innehåller exempeldatauppsättningar som en del av de ungefärliga frågebearbetningsfunktionerna.
Datauppsättningsexempel används bäst när du inte behöver ett exakt svar för en sammanställningsåtgärd över en datauppsättning. Om du vill utföra mer effektiva undersökande frågor på stora datamängder genom att skicka en ungefärlig fråga för att returnera ett ungefärligt svar använder du funktionen TABLESAMPLE
.
Exempeldatauppsättningar skapas med enhetliga slumpmässiga exempel från befintliga Azure Data Lake Storage-datauppsättningar (ADLS), med endast en procentandel av posterna från originalet. Exempelfunktionen för datauppsättningar utökar kommandot ANALYZE TABLE
med SQL-kommandona TABLESAMPLE
och SAMPLERATE
.
I exemplet nedan visar rad 1 hur du beräknar ett 5 %-prov av tabellen. Rad 2 visar hur du beräknar ett 5 %-prov från en filtrerad vy av data i tabellen.
Exempel
ANALYZE TABLE tableName TABLESAMPLE SAMPLERATE 5;
ANALYZE TABLE tableName FILTERCONTEXT (timestamp >= to_timestamp('2023-01-01')) TABLESAMPLE SAMPLERATE 5:
Mer information finns i exempeldokumentationen för datauppsättningen.
BÖRJA
Kommandot BEGIN
eller alternativt kommandot BEGIN WORK
eller BEGIN TRANSACTION
initierar ett transaktionsblock. Alla programsatser som infogas efter kommandot begin körs i en enda transaktion tills ett explicit COMMIT- eller ROLLBACK-kommando anges. Det här kommandot är samma som START TRANSACTION
.
BEGIN
BEGIN WORK
BEGIN TRANSACTION
STÄNG
Kommandot CLOSE
frigör resurser som är kopplade till en öppen markör. När markören har stängts tillåts inga efterföljande åtgärder på den. En markör bör stängas när den inte längre behövs.
CLOSE name
CLOSE ALL
Om CLOSE name
används representerar name
namnet på en öppen markör som måste stängas. Om CLOSE ALL
används stängs alla öppna markörer.
DEALOCATE
Om du vill frigöra en tidigare förberedd SQL-sats använder du kommandot DEALLOCATE
. Om du inte uttryckligen har frigjort en förberedd sats, frigörs den när sessionen avslutas. Mer information om förberedda satser finns i avsnittet PREPARE command.
DEALLOCATE name
DEALLOCATE ALL
Om DEALLOCATE name
används representerar name
namnet på den förberedda satsen som måste frigöras. Om DEALLOCATE ALL
används frigörs alla förberedda satser.
DEKLARERA
Med kommandot DECLARE
kan en användare skapa en markör som kan användas för att hämta ett litet antal rader från en större fråga. När markören har skapats hämtas rader från den med FETCH
.
DECLARE name CURSOR FOR query
name
query
SELECT
- eller VALUES
-kommando som innehåller de rader som ska returneras av markören.KÖR
Kommandot EXECUTE
används för att köra en tidigare förberedd sats. Eftersom förberedda satser endast finns under en session, måste den förberedda satsen ha skapats av en PREPARE
-sats som kördes tidigare i den aktuella sessionen. Mer information om hur du använder förberedda satser finns i avsnittet PREPARE
command.
Om programsatsen PREPARE
som skapade programsatsen angav vissa parametrar, måste en kompatibel uppsättning parametrar skickas till programsatsen EXECUTE
. Om de här parametrarna inte skickas genereras ett fel.
EXECUTE name [ ( parameter ) ]
name
parameter
FÖRKLARA
Kommandot EXPLAIN
visar körningsplanen för den angivna satsen. Körningsplanen visar hur tabellerna som programsatsen refererar till skannas. Om flera tabeller refereras visas vilka kopplingsalgoritmer som används för att sammanfoga de rader som krävs från varje indatatabell.
EXPLAIN statement
Om du vill definiera svarsformatet använder du nyckelordet FORMAT
med kommandot EXPLAIN
.
EXPLAIN FORMAT { TEXT | JSON } statement
FORMAT
FORMAT
för att ange utdataformat. De tillgängliga alternativen är TEXT
eller JSON
. Utdata som inte är text innehåller samma information som textutdataformatet, men är enklare att tolka i program. Parametern är som standard TEXT
.statement
SELECT
, INSERT
, UPDATE
, DELETE
, VALUES
, EXECUTE
, DECLARE
, CREATE TABLE AS
eller CREATE MATERIALIZED VIEW AS
vars körningsplan du vill se.SELECT
-sats kan returnera ignoreras när den körs med nyckelordet EXPLAIN
. Andra biverkningar av satsen inträffar som vanligt.Exempel
I följande exempel visas planen för en enkel fråga i en tabell med en enda integer
-kolumn och 10000 rader:
EXPLAIN SELECT * FROM foo;
QUERY PLAN
---------------------------------------------------------
Seq Scan on foo (dataSetId = "6307eb92f90c501e072f8457", dataSetName = "foo") [0,1000000242,6973776840203d3d,6e616c58206c6153,6c6c6f430a3d4d20,74696d674c746365]
(1 row)
FETCH
Kommandot FETCH
hämtar rader med en markör som skapats tidigare.
FETCH num_of_rows [ IN | FROM ] cursor_name
num_of_rows
cursor_name
FÖRBEREDA prepare
Med kommandot PREPARE
kan du skapa en förberedd programsats. En förberedd programsats är ett objekt på serversidan som kan användas för att mallatisera liknande SQL-programsatser.
Förberedda programsatser kan innehålla parametrar, som är värden som ersätts med programsatsen när den körs. Parametrar refereras efter position, med $1, $2 och så vidare, när förberedda satser används.
Du kan också ange en lista med parameterdatatyper. Om en parameters datatyp inte finns med i listan kan typen härledas från kontexten.
PREPARE name [ ( data_type [, ...] ) ] AS SELECT
name
data_type
ROLLBACK
Kommandot ROLLBACK
ångrar den aktuella transaktionen och tar bort alla uppdateringar som gjorts av transaktionen.
ROLLBACK
ROLLBACK WORK
MARKERA I
Kommandot SELECT INTO
skapar en ny tabell och fyller den med data som beräknas av en fråga. Data returneras inte till klienten, vilket är fallet med ett normalt SELECT
-kommando. Den nya tabellens kolumner har de namn och datatyper som är associerade med utdatakolumnerna för kommandot SELECT
.
[ WITH [ RECURSIVE ] with_query [, ...] ]
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ [ AS ] output_name ] [, ...]
INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] new_table
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ WINDOW window_name AS ( window_definition ) [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT { count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
[ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] [...] ]
Mer information om SELECT-standardfrågeparametrarna finns i SELECT-frågeavsnittet. I det här avsnittet visas endast parametrar som är exklusiva för kommandot SELECT INTO
.
TEMPORARY
eller TEMP
UNLOGGED
new_table
Exempel
Följande fråga skapar en ny tabell films_recent
som endast består av de senaste posterna från tabellen films
:
SELECT * INTO films_recent FROM films WHERE date_prod >= '2002-01-01';
VISA
Kommandot SHOW
visar den aktuella inställningen för körningsparametrar. Dessa variabler kan ställas in med programsatsen SET
, genom att redigera konfigurationsfilen postgresql.conf
, via miljövariabeln PGOPTIONS
(när du använder libpq eller ett libpq-baserat program) eller via kommandoradsflaggor när Postgres-servern startas.
SHOW name
SHOW ALL
name
SERVER_VERSION
: Den här parametern visar serverns versionsnummer.SERVER_ENCODING
: Den här parametern visar kodningen för teckenuppsättningen på serversidan.LC_COLLATE
: Den här parametern visar databasens språkinställning för sortering (textordning).LC_CTYPE
: Den här parametern visar databasens språkområdesinställning för teckenklassificering.IS_SUPERUSER
: Den här parametern visar om den aktuella rollen har superanvändarbehörighet.ALL
Exempel
Följande fråga visar den aktuella inställningen för parametern DateStyle
.
SHOW DateStyle;
DateStyle
-----------
ISO, MDY
(1 row)
COPY
Kommandot COPY
duplicerar utdata från en SELECT
-fråga till en angiven plats. Användaren måste ha åtkomst till den här platsen för att det här kommandot ska lyckas.
COPY query
TO '%scratch_space%/folder_location'
[ WITH FORMAT 'format_name']
query
format_name
format_name
kan vara en av parquet
, csv
eller json
. Som standard är värdet parquet
.adl://<ADLS_URI>/users/<USER_ID>/acp_foundation_queryService/folder_location/<QUERY_ID>
ALTER TABLE alter-table
Med kommandot ALTER TABLE
kan du lägga till eller släppa begränsningar för primär eller extern nyckel och lägga till kolumner i tabellen.
LÄGG TILL ELLER SLÄPP BEGRÄNSNINGAR
Följande SQL-frågor visar exempel på hur du lägger till eller släpper begränsningar i en tabell. Begränsningar för primärnyckel och sekundärnyckel kan läggas till i flera kolumner med kommaseparerade värden. Du kan skapa sammansatta tangenter genom att skicka två eller flera kolumnnamnsvärden enligt exemplen nedan.
Definiera primära eller sammansatta nycklar
ALTER TABLE table_name ADD CONSTRAINT PRIMARY KEY ( column_name ) NAMESPACE namespace
ALTER TABLE table_name ADD CONSTRAINT PRIMARY KEY ( column_name1, column_name2 ) NAMESPACE namespace
Definiera en relation mellan tabeller baserat på en eller flera nycklar
ALTER TABLE table_name ADD CONSTRAINT FOREIGN KEY ( column_name ) REFERENCES referenced_table_name ( primary_column_name )
ALTER TABLE table_name ADD CONSTRAINT FOREIGN KEY ( column_name1, column_name2 ) REFERENCES referenced_table_name ( primary_column_name1, primary_column_name2 )
Definiera en identitetskolumn
ALTER TABLE table_name ADD CONSTRAINT PRIMARY IDENTITY ( column_name ) NAMESPACE namespace
ALTER TABLE table_name ADD CONSTRAINT IDENTITY ( column_name ) NAMESPACE namespace
Släpp en begränsning/relation/identitet
ALTER TABLE table_name DROP CONSTRAINT PRIMARY KEY ( column_name )
ALTER TABLE table_name DROP CONSTRAINT PRIMARY KEY ( column_name1, column_name2 )
ALTER TABLE table_name DROP CONSTRAINT FOREIGN KEY ( column_name )
ALTER TABLE table_name DROP CONSTRAINT FOREIGN KEY ( column_name1, column_name2 )
ALTER TABLE table_name DROP CONSTRAINT PRIMARY IDENTITY ( column_name )
ALTER TABLE table_name DROP CONSTRAINT IDENTITY ( column_name )
table_name
column_name
referenced_table_name
primary_column_name
Lägga till eller släppa primära och sekundära identiteter
Om du vill lägga till eller ta bort begränsningar för både primära och sekundära identitetstabellkolumner använder du kommandot ALTER TABLE
.
I följande exempel läggs en primär identitet och en sekundär identitet till genom att begränsningar läggs till.
ALTER TABLE t1 ADD CONSTRAINT PRIMARY IDENTITY (id) NAMESPACE 'IDFA';
ALTER TABLE t1 ADD CONSTRAINT IDENTITY(id) NAMESPACE 'IDFA';
Identiteter kan också tas bort genom att begränsningar släpps, vilket visas i exemplet nedan.
ALTER TABLE t1 DROP CONSTRAINT PRIMARY IDENTITY (c1) ;
ALTER TABLE t1 DROP CONSTRAINT IDENTITY (c1) ;
Mer detaljerad information finns i dokumentet om att ställa in identiteter i en ad hoc-datauppsättning.
LÄGG TILL KOLUMN
Följande SQL-frågor visar exempel på hur du lägger till kolumner i en tabell.
ALTER TABLE table_name ADD COLUMN column_name data_type
ALTER TABLE table_name ADD COLUMN column_name_1 data_type1, column_name_2 data_type2
Datatyper som stöds
I följande tabell visas godkända datatyper för att lägga till kolumner i en tabell med Postgres SQL, XDM och Accelerated Database Recovery (ADR) i Azure SQL.
bigint
int8
bigint
integer
int4
integer
smallint
int2
smallint
tinyint
int1
tinyint
varchar(len)
string
varchar(len)
varchar
används bäst när kolumndatainmatningarnas storlek varierar avsevärt.double
float8
double precision
FLOAT8
och FLOAT
är giltiga synonymer för DOUBLE PRECISION
. double precision
är en flyttalsdatatyp. Flyttalsvärden sparas i 8 byte.double precision
float8
double precision
FLOAT8
är en giltig synonym för double precision
.double precision
är en flyttalsdatatyp. Flyttalsvärden sparas i 8 byte.date
date
date
date
är 4-byte-lagrade kalenderdatumvärden utan tidsstämpelinformation. Giltiga datum är från 01-01-0001 till 12-31-9999.datetime
datetime
datetime
datetime
innehåller kvalificerare för: år, månad, dag, timme, sekund och bråk. En datetime
-deklaration kan innehålla alla deluppsättningar av dessa tidsenheter som är sammanfogade i den sekvensen, eller till och med bara en enda tidsenhet.char(len)
string
char(len)
char(len)
används för att ange att objektet är ett tecken med fast längd.LÄGG TILL SCHEMA
Följande SQL-fråga visar ett exempel på hur du lägger till en tabell i en databas/ett schema.
ALTER TABLE table_name ADD SCHEMA database_name.schema_name
TA BORT SCHEMA
Följande SQL-fråga visar ett exempel på hur du tar bort en tabell från en databas/ett schema.
ALTER TABLE table_name REMOVE SCHEMA database_name.schema_name
Parametrar
table_name
column_name
data_type
VISA PRIMÄRNYCKLAR
Kommandot SHOW PRIMARY KEYS
visar alla primärnyckelbegränsningar för den angivna databasen.
SHOW PRIMARY KEYS
tableName | columnName | datatype | namespace
------------------+----------------------+----------+-----------
table_name_1 | column_name1 | text | "ECID"
table_name_2 | column_name2 | text | "AAID"
VISA FRÄMSTA TANGENTER
Kommandot SHOW FOREIGN KEYS
listar alla begränsningar för främmande nycklar för den angivna databasen.
SHOW FOREIGN KEYS
tableName | columnName | datatype | referencedTableName | referencedColumnName | namespace
------------------+---------------------+----------+---------------------+----------------------+-----------
table_name_1 | column_name1 | text | table_name_3 | column_name3 | "ECID"
table_name_2 | column_name2 | text | table_name_4 | column_name4 | "AAID"
VISA DATAGROUPS
Kommandot SHOW DATAGROUPS
returnerar en tabell med alla associerade databaser. För varje databas innehåller tabellen schema, grupptyp, underordnad typ, underordnat namn och underordnat ID.
SHOW DATAGROUPS
Database | Schema | GroupType | ChildType | ChildName | ChildId
-------------+-------------------+-----------+----------------------+----------------------------------------------------+--------------------------------------
adls_db | adls_scheema | ADLS | Data Lake Table | adls_table1 | 6149ff6e45cfa318a76ba6d3
adls_db | adls_scheema | ADLS | Accelerated Store | _table_demo1 | 22df56cf-0790-4034-bd54-d26d55ca6b21
adls_db | adls_scheema | ADLS | View | adls_view1 | c2e7ddac-d41c-40c5-a7dd-acd41c80c5e9
adls_db | adls_scheema | ADLS | View | adls_view4 | b280c564-df7e-405f-80c5-64df7ea05fc3
VISA DATAGROUPS FÖR register
Kommandot SHOW DATAGROUPS FOR 'table_name'
returnerar en tabell med alla associerade databaser som innehåller parametern som underordnad. För varje databas innehåller tabellen schema, grupptyp, underordnad typ, underordnat namn och underordnat ID.
SHOW DATAGROUPS FOR 'table_name'
Parametrar
table_name
: Namnet på tabellen som du vill hitta associerade databaser för.
Database | Schema | GroupType | ChildType | ChildName | ChildId
-------------+-------------------+-----------+----------------------+----------------------------------------------------+--------------------------------------
dwh_db_demo | schema2 | QSACCEL | Accelerated Store | _table_demo2 | d270f704-0a65-4f0f-b3e6-cb535eb0c8ce
dwh_db_demo | schema1 | QSACCEL | Accelerated Store | _table_demo2 | d270f704-0a65-4f0f-b3e6-cb535eb0c8ce
qsaccel | profile_aggs | QSACCEL | Accelerated Store | _table_demo2 | d270f704-0a65-4f0f-b3e6-cb535eb0c8ce