Útmutató: Beágyazott adatok lekérdezése a Microsoft Fabric tükrözött adatbázisaiban az Azure Cosmos DB-ből (előzetes verzió)
A Microsoft Fabric tükrözött adatbázisával lekérdezheti az Azure Cosmos DB for NoSQL-hez készült beágyazott JSON-adatokat.
Fontos
Az Azure Cosmos DB tükrözése jelenleg előzetes verzióban érhető el. Az éles számítási feladatok nem támogatottak az előzetes verzióban. Jelenleg csak a NoSQL-fiókokhoz készült Azure Cosmos DB támogatott.
Előfeltételek
- Egy meglévő Azure Cosmos DB for NoSQL-fiók.
- Ha nem rendelkezik Azure-előfizetéssel, ingyenesen kipróbálhatja az Azure Cosmos DB for NoSQL-t.
- Ha már rendelkezik Azure-előfizetéssel, hozzon létre egy új Azure Cosmos DB for NoSQL-fiókot.
- Meglévő hálókapacitás. Ha nem rendelkezik meglévő kapacitással, indítsa el a Fabric próbaverzióját.
- Engedélyezze a tükrözést a Háló-bérlőben vagy -munkaterületen. Ha a funkció még nincs engedélyezve, engedélyezze a tükrözést a Háló bérlőben.
- Az Azure Cosmos DB for NoSQL-fiókot konfigurálni kell a Fabric-tükrözéshez. További információ: fiókkövetelmények.
Tipp.
A nyilvános előzetes verzióban ajánlott a meglévő Azure Cosmos DB-adatok tesztelési vagy fejlesztési másolatának használata, amely biztonsági másolatból gyorsan helyreállítható.
Beágyazott adatok létrehozása a forrásadatbázisban
Hozzon létre olyan JSON-elemeket az Azure Cosmos DB for NoSQL-fiókjában, amelyek különböző szintű beágyazott JSON-adatokat tartalmaznak.
Lépjen az Azure Cosmos DB-fiókjára az Azure Portalon.
Válassza az Adatkezelőt az erőforrásmenüben.
Új tároló létrehozása az + Új tároló használatával. Ebben az útmutatóban nevezze el a tárolót
TestC
. A megfelelő adatbázisnév tetszőleges.Ezt az öt JSON-elemet többször is használhatja az + Új elem beállítással.
{ "id": "123-abc-xyz", "name": "A 13", "country": "USA", "items": [ { "purchased": "11/23/2022", "order_id": "3432-2333-2234-3434", "item_description": "item1" }, { "purchased": "01/20/2023", "order_id": "3431-3454-1231-8080", "item_description": "item2" }, { "purchased": "02/20/2023", "order_id": "2322-2435-4354-2324", "item_description": "item3" } ] }
{ "id": "343-abc-def", "name": "B 22", "country": "USA", "items": [ { "purchased": "01/20/2023", "order_id": "2431-2322-1545-2322", "item_description": "book1" }, { "purchased": "01/21/2023", "order_id": "3498-3433-2322-2320", "item_description": "book2" }, { "purchased": "01/24/2023", "order_id": "9794-8858-7578-9899", "item_description": "book3" } ] }
{ "id": "232-abc-x43", "name": "C 13", "country": "USA", "items": [ { "purchased": "04/03/2023", "order_id": "9982-2322-4545-3546", "item_description": "clothing1" }, { "purchased": "05/20/2023", "order_id": "7989-9989-8688-3446", "item_description": "clothing2" }, { "purchased": "05/27/2023", "order_id": "9898-2322-1134-2322", "item_description": "clothing3" } ] }
{ "id": "677-abc-yuu", "name": "D 78", "country": "USA" }
{ "id": "979-abc-dfd", "name": "E 45", "country": "USA" }
A tükrözés beállítása és előfeltételei
Konfigurálja a tükrözést az Azure Cosmos DB for NoSQL-adatbázishoz. Ha nem tudja, hogyan konfigurálhatja a tükrözést, tekintse meg a tükrözött adatbázis konfigurálását ismertető oktatóanyagot.
Lépjen a Háló portálra.
Hozzon létre egy új kapcsolatot és tükrözött adatbázist az Azure Cosmos DB-fiók hitelesítő adataival.
Várja meg, amíg a replikáció befejezi az adatok kezdeti pillanatképét.
Egyszerű beágyazott adatok lekérdezése
Most az SQL Analytics-végpont használatával hozzon létre egy lekérdezést, amely képes kezelni az egyszerű beágyazott JSON-adatokat.
Lépjen a tükrözött adatbázisra a Háló portálon.
Váltás tükrözött Azure Cosmos DB-ről SQL Analytics-végpontra.
Nyissa meg a teszttábla helyi menüjét, és válassza az Új SQL-lekérdezés lehetőséget.
A lekérdezés futtatásával bontsa ki a tömböt a
items
következővelOPENJSON
: . Ez a lekérdezés olyan további elemeket tartalmazOUTER APPLY
, amelyek nem rendelkeznek elemtömbbel.SELECT t.name, t.id, t.country, P.purchased, P.order_id, P.item_description FROM OrdersDB_TestC AS t OUTER APPLY OPENJSON(t.items) WITH ( purchased datetime '$.purchased', order_id varchar(100) '$.order_id', item_description varchar(200) '$.item_description' ) as P
Tipp.
Az adattípusok
OPENJSON
kiválasztásakor a sztringtípusok használatavarchar(max)
ronthatja a lekérdezés teljesítményét. Ehelyett a whern
használatavarchar(n)
bármilyen szám lehet. Minél alacsonyabbn
, annál valószínűbb, hogy jobb lekérdezési teljesítményt fog látni.A
CROSS APPLY
következő lekérdezésben csak tömböt tartalmazóitems
elemeket jeleníthet meg.SELECT t.name, t.id, t.country, P.purchased, P.order_id, P.item_description FROM OrdersDB_TestC as t CROSS APPLY OPENJSON(t.items) WITH ( purchased datetime '$.purchased', order_id varchar(100) '$.order_id', item_description varchar(200) '$.item_description' ) as P
Mélyen beágyazott adatok létrehozása
Ha erre a beágyazott adat példára szeretne építeni, adjunk hozzá egy mélyen beágyazott adat példáját.
Lépjen az Azure Cosmos DB-fiókjára az Azure Portalon.
Válassza az Adatkezelőt az erőforrásmenüben.
Új tároló létrehozása az + Új tároló használatával. Ebben az útmutatóban nevezze el a tárolót
TestD
. A megfelelő adatbázisnév tetszőleges.A JSON-elem létrehozásához és mentéséhez használja többször az + Új elem lehetőséget.
{ "id": "eadca09b-e618-4090-a25d-b424a26c2361", "entityType": "Package", "packages": [ { "packageid": "fiwewsb-f342-jofd-a231-c2321", "storageTemperature": "69", "highValue": true, "items": [ { "id": "1", "name": "Item1", "properties": { "weight": "2", "isFragile": "no" } }, { "id": "2", "name": "Item2", "properties": { "weight": "4", "isFragile": "yes" } } ] }, { "packageid": "d24343-dfdw-retd-x414-f34345", "storageTemperature": "78", "highValue": false, "items": [ { "id": "3", "name": "Item3", "properties": { "weight": "12", "isFragile": "no" } }, { "id": "4", "name": "Item4", "properties": { "weight": "12", "isFragile": "no" } } ] } ], "consignment": { "consignmentId": "ae21ebc2-8cfc-4566-bf07-b71cdfb37fb2", "customer": "Humongous Insurance", "deliveryDueDate": "2020-11-08T23:38:50.875258Z" } }
Mélyen beágyazott adatok lekérdezése
Végül hozzon létre egy T-SQL-lekérdezést, amely mélyen beágyazott adatokat talál egy JSON-sztringben.
Nyissa meg a táblázat helyi menüjét, és válassza ismét az
TestD
Új SQL-lekérdezés lehetőséget.Futtassa ezt a lekérdezést a beágyazott adatok összes szintjének kibontásához a szállítmány használatával
OUTER APPLY
.SELECT P.id, R.packageId, R.storageTemperature, R.highValue, G.id, G.name, H.weight, H.isFragile, Q.consignmentId, Q.customer, Q.deliveryDueDate FROM OrdersDB_TestD as P CROSS APPLY OPENJSON(P.packages) WITH ( packageId varchar(100) '$.packageid', storageTemperature INT '$.storageTemperature', highValue varchar(100) '$.highValue', items nvarchar(MAX) AS JSON ) as R OUTER APPLY OPENJSON (R.items) WITH ( id varchar(100) '$.id', name varchar(100) '$.name', properties nvarchar(MAX) as JSON ) as G OUTER APPLY OPENJSON(G.properties) WITH ( weight INT '$.weight', isFragile varchar(100) '$.isFragile' ) as H OUTER APPLY OPENJSON(P.consignment) WITH ( consignmentId varchar(200) '$.consignmentId', customer varchar(100) '$.customer', deliveryDueDate Date '$.deliveryDueDate' ) as Q
Feljegyzés
A kibontáskor
packages
items
JSON-ként jelenik meg, amely opcionálisan kibontható. Aitems
tulajdonság JSOn altulajdonságokkal rendelkezik, amelyek opcionálisan kibonthatók is.Végül futtasson egy lekérdezést, amely meghatározza, hogy mikor bontsa ki a beágyazás bizonyos szintjeit.
SELECT P.id, R.packageId, R.storageTemperature, R.highValue, R.items, Q.consignmentId, Q.customer, Q.deliveryDueDate FROM OrdersDB_TestD as P CROSS APPLY OPENJSON(P.packages) WITH ( packageId varchar(100) '$.packageid', storageTemperature INT '$.storageTemperature', highValue varchar(100) '$.highValue', items nvarchar(MAX) AS JSON ) as R OUTER APPLY OPENJSON(P.consignment) WITH ( consignmentId varchar(200) '$.consignmentId', customer varchar(100) '$.customer', deliveryDueDate Date '$.deliveryDueDate' ) as Q
Feljegyzés
Ebben a T-SQL-lekérdezési felületen a beágyazott szintek tulajdonságkorlátai nem lesznek kényszerítve.
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: