esemény
Tanúsítványt szerezhet a Microsoft Fabricben – ingyenesen!
nov. 19. 23 - dec. 10. 23
A Microsoft Fabric közösségi csapata korlátozott ideig ingyenes DP-600 vizsgautalványokat kínál.
Előkészítés mostEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
A kiszolgáló nélküli SQL-készlet lehetővé teszi az Azure Cosmos DB-tárolókban lévő olyan adatok elemzését, amelyek közel valós időben engedélyezve vannak az Azure Synapse Link használatával anélkül, hogy befolyásolnák a tranzakciós számítási feladatok teljesítményét. Ismerős T-SQL-szintaxist kínál az elemzési tárból származó adatok lekérdezéséhez, valamint az üzleti intelligencia (BI) és az alkalmi lekérdezési eszközök széles köréhez való integrált kapcsolódáshoz a T-SQL-felületen keresztül.
Az Azure Cosmos DB lekérdezéséhez a teljes SELECT felület az OPENROWSET függvényen keresztül támogatott, amely tartalmazza az SQL-függvények és -operátorok többségét. Az Azure Cosmos DB-ből adatokat beolvasó lekérdezés eredményeit az Azure Blob Storage-ban vagy az Azure Data Lake Storage-ban tárolt adatokkal együtt is tárolhatja, ha külső táblát hoz létre kiválasztva (CETAS). Jelenleg nem tárolhat kiszolgáló nélküli SQL-készlet lekérdezési eredményeit az Azure Cosmos DB-ben a CETAS használatával.
Ebben a cikkben megtudhatja, hogyan írhat lekérdezést kiszolgáló nélküli SQL-készlettel, amely adatokat kérdez le az Azure Synapse Linkkel engedélyezett Azure Cosmos DB-tárolókból. Ebből az oktatóanyagból többet is megtudhat arról, hogyan hozhat létre kiszolgáló nélküli SQL-készletnézeteket az Azure Cosmos DB-tárolókon, és hogyan csatlakoztathatja őket Power BI-modellekhez. Ez az oktatóanyag egy jól definiált Azure Cosmos DB-sémával rendelkező tárolót használ. A Learn modulból megtudhatja, hogyan kérdezheti le az Azure Cosmos DB-t az Azure Synapse Analyticshez készült SQL Serverless használatával.
Megjegyzés
Felügyelt identitással nem férhet hozzá egy Azure Cosmos DB-tárolóhoz kiszolgáló nélküli SQL-készletből.
OPENROWSET
függvényt a lehető legkisebb típusú explicit WITH
záradékkal használja (például ne használja a VARCHAR(1000) függvényt, ha tudja, hogy a tulajdonság legfeljebb 5 karakterből áll.A kiszolgáló nélküli SQL-készlet lehetővé teszi az Azure Cosmos DB elemzési tárolójának lekérdezését függvény használatával OPENROWSET
.
OPENROWSET
beágyazott kulccsal. Ez a szintaxis az Azure Cosmos DB-gyűjtemények lekérdezésére használható hitelesítő adatok előkészítése nélkül.OPENROWSET
amely az Azure Cosmos DB-fiókkulcsot tartalmazó hitelesítő adatokra hivatkozott. Ez a szintaxis az Azure Cosmos DB-gyűjtemények nézeteinek létrehozására használható.Használhat OPENROWSET
olyan szintaxist, amely hitelesítő adatokra hivatkozik:
OPENROWSET(
PROVIDER = 'CosmosDB',
CONNECTION = '<SQL connection string for Azure Cosmos DB without account key>',
OBJECT = '<Container name>',
[ CREDENTIAL | SERVER_CREDENTIAL ] = '<credential name>'
) [ < with clause > ] AS alias
Az Azure Cosmos DB SQL-kapcsolati sztring ebben az esetben nem tartalmaz kulcsot. A kapcsolati sztring formátuma a következő:
'account=<database account name>;database=<database name>;region=<region name>'
Az adatbázisfiók főkulcsa kiszolgálószintű hitelesítő adatokban vagy adatbázis-hatókörű hitelesítő adatokban van elhelyezve.
Fontos
Győződjön meg arról, hogy valamilyen UTF-8 adatbázis-rendezést használ, például azért, Latin1_General_100_CI_AS_SC_UTF8
mert az Azure Cosmos DB elemzési tárában lévő sztringértékek UTF-8 szövegként vannak kódolva.
A fájl szövegkódolása és a rendezés közötti eltérés váratlan szövegkonvertálási hibákat okozhat.
A T-SQL utasítással alter database current collate Latin1_General_100_CI_AI_SC_UTF8
egyszerűen módosíthatja az aktuális adatbázis alapértelmezett rendezést.
Megjegyzés
A kiszolgáló nélküli SQL-készlet nem támogatja az Azure Cosmos DB tranzakciós tárolójának lekérdezését.
A cikkben szereplő példák az Európai Betegségmegelőzési és Járványvédelmi Központ (ECDC) COVID-19-esetek és COVID-19 nyílt kutatási adatkészlet (CORD-19), doi:10.5281/zenodo.3715505 adatain alapulnak.
Ezen az oldalon láthatja az adatok licencét és szerkezetét. Az ECDC és a CORD-19 adatkészletek mintaadatait is letöltheti.
Ha követni szeretné ezt a cikket, amely bemutatja, hogyan kérdezheti le az Azure Cosmos DB-adatokat egy kiszolgáló nélküli SQL-készlettel, győződjön meg arról, hogy a következő erőforrásokat hozza létre:
covid
.Ecdc
és Cord19
betöltése az előző mintaadatkészletekkel.A teszteléshez a következő kapcsolati sztring használhatja: Account=synapselink-cosmosdb-sqlsample;Database=covid;Key=s5zarR2pT0JWH9k8roipnWxUYBegOuFGjJpSjGlR36y86cW0GQ6RaaG8kGjsRAQoWMw1QKTkkX8HQtFpJjC8Hg==
. Vegye figyelembe, hogy ez a kapcsolat nem garantálja a teljesítményt, mert ez a fiók távoli régióban található a Synapse SQL-végponthoz képest.
Az Azure Cosmos DB-ben az adatok megismerésének legegyszerűbb módja az automatikus sémakövető képesség használata. Ha kihagyja a WITH
záradékot az OPENROWSET
utasításból, utasíthatja a kiszolgáló nélküli SQL-készletet, hogy automatikusan észlelje (következtesse) az Azure Cosmos DB-tároló elemzési tárolójának sémáját.
/* Setup - create server-level or database scoped credential with Azure Cosmos DB account key:
CREATE CREDENTIAL MyCosmosDbAccountCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 's5zarR2pT0JWH9k8roipnWxUYBegOuFGjJpSjGlR36y86cW0GQ6RaaG8kGjsRAQoWMw1QKTkkX8HQtFpJjC8Hg==';
*/
SELECT TOP 10 *
FROM OPENROWSET(
PROVIDER = 'CosmosDB',
CONNECTION = 'Account=synapselink-cosmosdb-sqlsample;Database=covid',
OBJECT = 'Ecdc',
SERVER_CREDENTIAL = 'MyCosmosDbAccountCredential'
) with ( date_rep varchar(20), cases bigint, geo_id varchar(6) ) as rows
Az előző példában arra utasítottuk a kiszolgáló nélküli SQL-készletet, hogy csatlakozzon az covid
Azure Cosmos DB-fiók MyCosmosDbAccount
adatbázisához az Azure Cosmos DB-kulcs (az előző példában szereplő próbabábu) használatával hitelesítve. Ezután elértük a Ecdc
tároló elemzési tárolóját a West US 2
régióban. Mivel nincs konkrét tulajdonságok kivetítése, a függvény az OPENROWSET
Azure Cosmos DB-elemek összes tulajdonságát visszaadja.
Feltételezve, hogy az Azure Cosmos DB-tároló elemei rendelkeznek date_rep
, cases
és geo_id
tulajdonságok, a lekérdezés eredményei az alábbi táblázatban jelennek meg:
date_rep | elemzése | geo_id |
---|---|---|
2020-08-13 | 254 | RS |
2020-08-12 | 235 | RS |
2020-08-11 | 163 | RS |
Ha ugyanabban az Azure Cosmos DB-adatbázisban lévő másik tárolóból származó adatokat kell megvizsgálnia, ugyanazt a kapcsolati sztring használhatja, és hivatkozhat a szükséges tárolóra, mint a harmadik paraméter:
SELECT TOP 10 *
FROM OPENROWSET(
'CosmosDB',
'Account=synapselink-cosmosdb-sqlsample;Database=covid;Key=s5zarR2pT0JWH9k8roipnWxUYBegOuFGjJpSjGlR36y86cW0GQ6RaaG8kGjsRAQoWMw1QKTkkX8HQtFpJjC8Hg==',
Cord19) as cord19
Bár az automatikus sémakövető képesség OPENROWSET
egyszerű, könnyen használható lekérdezést biztosít, az üzleti forgatókönyvek megkövetelik, hogy explicit módon adja meg a sémát az Azure Cosmos DB-adatokból csak olvasható tulajdonságokhoz.
A OPENROWSET
függvény segítségével explicit módon megadhatja, hogy milyen tulajdonságokat szeretne olvasni a tárolóban lévő adatokból, és megadhatja azok adattípusait.
Tegyük fel, hogy importáltunk néhány adatot az ECDC COVID-adatkészletből az alábbi struktúrával az Azure Cosmos DB-be:
{"date_rep":"2020-08-13","cases":254,"countries_and_territories":"Serbia","geo_id":"RS"}
{"date_rep":"2020-08-12","cases":235,"countries_and_territories":"Serbia","geo_id":"RS"}
{"date_rep":"2020-08-11","cases":163,"countries_and_territories":"Serbia","geo_id":"RS"}
Az Azure Cosmos DB-ben ezek a lapos JSON-dokumentumok sorok és oszlopok halmazaként jelenhetnek meg a Synapse SQL-ben. A OPENROWSET
függvény lehetővé teszi az elolvasni kívánt tulajdonságok részhalmazának és a záradék pontos WITH
oszloptípusainak megadását:
/* Setup - create server-level or database scoped credential with Azure Cosmos DB account key:
CREATE CREDENTIAL MyCosmosDbAccountCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 's5zarR2pT0JWH9k8roipnWxUYBegOuFGjJpSjGlR36y86cW0GQ6RaaG8kGjsRAQoWMw1QKTkkX8HQtFpJjC8Hg==';
*/
SELECT TOP 10 *
FROM OPENROWSET(
PROVIDER = 'CosmosDB',
CONNECTION = 'Account=synapselink-cosmosdb-sqlsample;Database=covid',
OBJECT = 'Ecdc',
SERVER_CREDENTIAL = 'MyCosmosDbAccountCredential'
) with ( date_rep varchar(20), cases bigint, geo_id varchar(6) ) as rows
A lekérdezés eredménye a következő táblázathoz hasonlóan nézhet ki:
date_rep | elemzése | geo_id |
---|---|---|
2020-08-13 | 254 | RS |
2020-08-12 | 235 | RS |
2020-08-11 | 163 | RS |
Az Azure Cosmos DB-értékekhez használandó SQL-típusokkal kapcsolatos további információkért tekintse meg az SQL-típusleképezések szabályait a cikk végén.
A nézetek létrehozása az alapértelmezett vagy az master
alapértelmezett adatbázisokban nem ajánlott és nem támogatott. Ezért létre kell hoznia egy felhasználói adatbázist a nézetekhez.
Miután azonosította a sémát, előkészíthet egy nézetet az Azure Cosmos DB-adatokra. Az Azure Cosmos DB-fiókkulcsot külön hitelesítő adatokba kell helyeznie, és hivatkoznia kell erre a hitelesítő adatra a függvénytől OPENROWSET
. Ne tartsa meg a fiókkulcsot a nézetdefinícióban.
CREATE CREDENTIAL MyCosmosDbAccountCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 's5zarR2pT0JWH9k8roipnWxUYBegOuFGjJpSjGlR36y86cW0GQ6RaaG8kGjsRAQoWMw1QKTkkX8HQtFpJjC8Hg==';
GO
CREATE OR ALTER VIEW Ecdc
AS SELECT *
FROM OPENROWSET(
PROVIDER = 'CosmosDB',
CONNECTION = 'Account=synapselink-cosmosdb-sqlsample;Database=covid',
OBJECT = 'Ecdc',
SERVER_CREDENTIAL = 'MyCosmosDbAccountCredential'
) with ( date_rep varchar(20), cases bigint, geo_id varchar(6) ) as rows
Ne használjon OPENROWSET
explicit módon definiált séma nélkül, mert az hatással lehet a teljesítményére. Győződjön meg arról, hogy a lehető legkisebb méreteket használja az oszlopokhoz (például VARCHAR(100) az alapértelmezett VARCHAR(8000) helyett). Az UTF-8-as rendezést érdemes alapértelmezett adatbázis-rendezésként használni, vagy explicit oszlopbe rendezésként beállítani az UTF-8 konverziós probléma elkerülése érdekében. A rendezés Latin1_General_100_BIN2_UTF8
akkor nyújt a legjobb teljesítményt, ha bizonyos sztringoszlopok használatával szűr adatokat.
A nézet lekérdezése során hibák vagy váratlan eredmények léphetnek fel. Ez valószínűleg azt jelenti, hogy a nézet a módosított vagy már nem létező oszlopokra vagy objektumokra hivatkozik. Manuálisan kell módosítania a nézetdefiníciót, hogy igazodjon az alapul szolgáló sémamódosításokhoz. Ne feledje, hogy ez akkor is megtörténhet, ha automatikus sémakövető következtetést használ a nézetben, és ha explicit módon adja meg a sémát.
Az Azure Cosmos DB-vel összetettebb adatmodelleket jeleníthet meg beágyazott objektumokként vagy tömbökként való megírásával. Az Azure Cosmos DB-hez készült Azure Synapse Link autoszinkron képessége a dobozon kívül kezeli az elemzési tár sémamegjelenítését, amely magában foglalja a beágyazott adattípusok kezelését, amelyek lehetővé teszik a kiszolgáló nélküli SQL-készletből történő részletes lekérdezést.
A CORD-19-adatkészlet például az alábbi struktúrát követő JSON-dokumentumokkal rendelkezik:
{
"paper_id": <str>, # 40-character sha1 of the PDF
"metadata": {
"title": <str>,
"authors": <array of objects> # list of author dicts, in order
...
}
...
}
Az Azure Cosmos DB beágyazott objektumai és tömbjei JSON-sztringekként jelennek meg a lekérdezés eredményében, amikor a OPENROWSET
függvény felolvassa őket. A záradék használatakor megadhatja a beágyazott értékek elérési útját az WITH
objektumokban:
SELECT TOP 10 *
FROM OPENROWSET(
'CosmosDB',
'Account=synapselink-cosmosdb-sqlsample;Database=covid;Key=s5zarR2pT0JWH9k8roipnWxUYBegOuFGjJpSjGlR36y86cW0GQ6RaaG8kGjsRAQoWMw1QKTkkX8HQtFpJjC8Hg==',
Cord19)
WITH ( paper_id varchar(8000),
title varchar(1000) '$.metadata.title',
metadata varchar(max),
authors varchar(max) '$.metadata.authors'
) AS docs;
A lekérdezés eredménye a következő táblázathoz hasonlóan nézhet ki:
paper_id | cím | metaadatok | Szerzők |
---|---|---|---|
bb11206963e831f... | Kiegészítő információk Egy öko-epidemi... | {"title":"Supplementary Informati… |
[{"first":"Julien","last":"Mélade","suffix":"","af… |
bb1206963e831f1... | A Convalescent Sera használata Immun-E... | {"title":"The Use of Convalescent… |
[{"first":"Antonio","last":"Lavazza","suffix":"", … |
bb378eca9aac649... | Tylosema esculentum (Marama) Gumó és B... | {"title":"Tylosema esculentum (Ma… |
[{"first":"Walter","last":"Chingwaru","suffix":"",… |
További információ az olyan összetett adattípusok elemzéséről , mint a Parquet-fájlok és -tárolók az Azure Cosmos DB-hez készült Azure Synapse Linkben vagy beágyazott struktúrák egy kiszolgáló nélküli SQL-készletben.
Fontos
Ha nem várt karaktereket lát a szövegben, mint ahelyett Mélade
Mélade
, akkor az adatbázis rendezése nem UTF-8 rendezésre van beállítva.
Módosítsa az adatbázis rendezést UTF-8 rendezésre egy SQL-utasítás, például ALTER DATABASE MyLdw COLLATE LATIN1_GENERAL_100_CI_AS_SC_UTF8
a .
Az Azure Cosmos DB-adatok beágyazott alarrái lehetnek, például a szerző tömbje egy CORD-19-adatkészletből :
{
"paper_id": <str>, # 40-character sha1 of the PDF
"metadata": {
"title": <str>,
"authors": [ # list of author dicts, in order
{
"first": <str>,
"middle": <list of str>,
"last": <str>,
"suffix": <str>,
"affiliation": <dict>,
"email": <str>
},
...
],
...
}
Bizonyos esetekben előfordulhat, hogy a legfelső elem (metaadatok) tulajdonságainak "összekapcsolása" szükséges a tömb (szerzők) összes elemével. A kiszolgáló nélküli SQL-készlet lehetővé teszi a beágyazott struktúrák simítását a OPENJSON
beágyazott tömb függvényének alkalmazásával:
SELECT
*
FROM
OPENROWSET(
'CosmosDB',
'Account=synapselink-cosmosdb-sqlsample;Database=covid;Key=s5zarR2pT0JWH9k8roipnWxUYBegOuFGjJpSjGlR36y86cW0GQ6RaaG8kGjsRAQoWMw1QKTkkX8HQtFpJjC8Hg==',
Cord19
) WITH ( title varchar(1000) '$.metadata.title',
authors varchar(max) '$.metadata.authors' ) AS docs
CROSS APPLY OPENJSON ( authors )
WITH (
first varchar(50),
last varchar(50),
affiliation nvarchar(max) as json
) AS a
A lekérdezés eredménye a következő táblázathoz hasonlóan nézhet ki:
cím | Szerzők | első | utolsó | Hovatartozás |
---|---|---|---|---|
Kiegészítő információk Egy öko-epidemi... | [{"first":"Julien","last":"Mélade","suffix":"","affiliation":{"laboratory":"Centre de Recher… |
Julien | Mélade | {"laboratory":"Centre de Recher… |
Kiegészítő információk Egy öko-epidemi... | [{"first":"Nicolas","last":"4#","suffix":"","affiliation":{"laboratory":"","institution":"U… |
Nicolas | #4 | {"laboratory":"","institution":"U… |
Kiegészítő információk Egy öko-epidemi... | [{"first":"Beza","last":"Ramazindrazana","suffix":"","affiliation":{"laboratory":"Centre de Recher… |
Beza | Ramazindrazana | {"laboratory":"Centre de Recher… |
Kiegészítő információk Egy öko-epidemi... | [{"first":"Olivier","last":"Flores","suffix":"","affiliation":{"laboratory":"UMR C53 CIRAD, … |
Olivier | Flores | {"laboratory":"UMR C53 CIRAD, … |
Fontos
Ha nem várt karaktereket lát a szövegben, mint ahelyett Mélade
Mélade
, akkor az adatbázis rendezése nem UTF-8 rendezésre van beállítva. Módosítsa az adatbázis rendezést UTF-8 rendezésre egy SQL-utasítás, például ALTER DATABASE MyLdw COLLATE LATIN1_GENERAL_100_CI_AS_SC_UTF8
a .
Bár az Azure Cosmos DB tranzakciós tárolója sémafüggetlen, az elemzési tár séma szerint van kialakítva az elemzési lekérdezési teljesítmény optimalizálása érdekében. Az Azure Synapse Link automatikus szinkronizálási funkciójával az Azure Cosmos DB a dobozon kívül kezeli az elemzési tár sémamegjelenítését, amely magában foglalja a beágyazott adattípusok kezelését is. Mivel egy kiszolgáló nélküli SQL-készlet lekérdezi az elemzési tárat, fontos megérteni, hogyan képezheti le az Azure Cosmos DB bemeneti adattípusait SQL-adattípusokra.
Az SQL (Core) API Azure Cosmos DB-fiókjai támogatják a szám, sztring, logikai, null, beágyazott objektum vagy tömb JSON-tulajdonságtípusait. A JSON-típusoknak megfelelő SQL-típusokat kell választania, ha a záradékot használja a WITH
következőben OPENROWSET
: . Az alábbi táblázat azOkat az SQL-oszloptípusokat mutatja be, amelyeket az Azure Cosmos DB különböző tulajdonságtípusaihoz kell használni.
Az Azure Cosmos DB tulajdonságtípusa | SQL-oszlop típusa |
---|---|
Logikai | bit |
Egész | bigint |
Decimális | float |
Sztring | varchar (UTF-8 adatbázis-rendezés) |
Dátum idő (ISO formátumú sztring) | varchar(30) |
Dátum idő (UNIX időbélyeg) | bigint |
Null | any SQL type |
Beágyazott objektum vagy tömb | varchar(max) (UTF-8 adatbázis-rendezés), szerializálva JSON-szövegként |
Az Azure Cosmos DB teljes hűségséma mind az értékeket, mind a legjobb egyezéstípusokat rögzíti egy tároló minden tulajdonságához. A OPENROWSET
teljes megbízhatósági sémával rendelkező tároló függvénye az egyes cellák típusát és tényleges értékét is biztosítja. Tegyük fel, hogy a következő lekérdezés beolvassa az elemeket egy teljes hűségsémával rendelkező tárolóból:
SELECT *
FROM OPENROWSET(
'CosmosDB',
'account=MyCosmosDbAccount;database=covid;region=westus2;key=C0Sm0sDbKey==',
Ecdc
) as rows
A lekérdezés eredménye JSON-szövegként formázott típusokat és értékeket ad vissza:
date_rep | elemzése | geo_id |
---|---|---|
{"date":"2020-08-13"} | {"int32":"254"} | {"string":"RS"} |
{"date":"2020-08-12"} | {"int32":"235"} | {"string":"RS"} |
{"date":"2020-08-11"} | {"int32":"316"} | {"string":"RS"} |
{"date":"2020-08-10"} | {"int32":"281"} | {"string":"RS"} |
{"date":"2020-08-09"} | {"int32":"295"} | {"string":"RS"} |
{"string":"2020/08/08"} | {"int32":"312"} | {"string":"RS"} |
{"date":"2020-08-07"} | {"float64":"339.0"} | {"string":"RS"} |
Minden értéknél láthatja az Azure Cosmos DB-tárolóelemben azonosított típust. A tulajdonság legtöbb értéke date_rep
tartalmaz date
értékeket, de néhányat helytelenül tárol sztringekként az Azure Cosmos DB-ben. A teljes hűségséma helyesen beírt date
és helytelenül formázott string
értékeket is visszaad.
Az esetek száma értékként int32
tárolt információ, de van egy érték, amely tizedes törtként van beírva. Ez az érték a típussal rendelkezik float64
. Ha vannak olyan értékek, amelyek túllépik a legnagyobb int32
számot, a rendszer típusként tárolja őket int64
. A példában szereplő összes geo_id
érték típusként string
van tárolva.
Fontos
A OPENROWSET
záradék nélküli WITH
függvény a várt és a helytelenül megadott típusok értékeit is elérhetővé teszi. Ez a függvény adatfeltárásra és nem jelentéskészítésre lett tervezve. Ne elemezd az ebből a függvényből visszaadott JSON-értékeket a jelentések létrehozásához. A jelentések létrehozásához használjon explicit WITH záradékot . Az Azure Cosmos DB-tárolóban helytelen típusokkal rendelkező értékeket törölnie kell, hogy javításokat alkalmazzon a teljes megbízhatósági elemzési tárolóban.
A MongoDB-fiókokhoz készült Azure Cosmos DB-fiókok lekérdezéséhez többet is megtudhat az elemzési tár teljes hűségséma-ábrázolásáról, valamint az Azure Cosmos DB Elemzési tárban használandó kiterjesztett tulajdonságnevekről.
A teljes hűségséma lekérdezése során explicit módon meg kell adnia az SQL-típust és a várható Azure Cosmos DB-tulajdonságtípust a WITH
záradékban.
Az alábbi példában feltételezzük, hogy string
ez a tulajdonság megfelelő típusa geo_id
, és int32
a tulajdonság megfelelő típusa cases
:
SELECT geo_id, cases = SUM(cases)
FROM OPENROWSET(
'CosmosDB'
'account=MyCosmosDbAccount;database=covid;region=westus2;key=C0Sm0sDbKey==',
Ecdc
) WITH ( geo_id VARCHAR(50) '$.geo_id.string',
cases INT '$.cases.int32'
) as rows
GROUP BY geo_id
geo_id
Az egyéb típusú értékek cases
értékként NULL
lesznek visszaadva. Ez a lekérdezés csak a cases
megadott típusra hivatkozik a kifejezésben (cases.int32
).
Ha más típusú (cases.int64
, ) értékekkel rendelkezik, cases.float64
amelyeket nem lehet megtisztítani egy Azure Cosmos DB-tárolóban, explicit módon hivatkoznia kell rájuk egy WITH
záradékban, és össze kell egyesítenie az eredményeket. A következő lekérdezés összesíti mind az oszlopban, int64
float64
mind int32
pedig az oszlopban tárolt adatokatcases
:
SELECT geo_id, cases = SUM(cases_int) + SUM(cases_bigint) + SUM(cases_float)
FROM OPENROWSET(
'CosmosDB',
'account=MyCosmosDbAccount;database=covid;region=westus2;key=C0Sm0sDbKey==',
Ecdc
) WITH ( geo_id VARCHAR(50) '$.geo_id.string',
cases_int INT '$.cases.int32',
cases_bigint BIGINT '$.cases.int64',
cases_float FLOAT '$.cases.float64'
) as rows
GROUP BY geo_id
Ebben a példában az esetek száma , vagy float64
értékként int32
int64
lesz tárolva. Az országonként/régiónkénti esetek számának kiszámításához minden értéket ki kell nyerni.
Tekintse át az önsegítő lapot , és keresse meg azokat az ismert problémákat vagy hibaelhárítási lépéseket, amelyek segíthetnek az Azure Cosmos DB-lekérdezésekkel kapcsolatos lehetséges problémák megoldásában.
További információért tekintse át az alábbi cikkeket:
esemény
Tanúsítványt szerezhet a Microsoft Fabricben – ingyenesen!
nov. 19. 23 - dec. 10. 23
A Microsoft Fabric közösségi csapata korlátozott ideig ingyenes DP-600 vizsgautalványokat kínál.
Előkészítés most