Ohjeet: Kyselyn tekeminen sisäkkäisistä tiedoista Microsoft Fabricissa peilatut tietokannat Azure Cosmos DB:stä (esikatselu)
Käytä Microsoft Fabricin peilattua tietokantaa sisäkkäisten JSON-tietojen kyselyyn, jotka ovat peräisin Azure Cosmos DB for NoSQL:stä.
Tärkeä
Azure Cosmos DB:n peilaus on tällä hetkellä esikatselussa. Tuotannon kuormituksia ei tueta esikatselun aikana. Tällä hetkellä tuetaan vain Azure Cosmos DB for NoSQL -tilejä.
Edellytykset
- Olemassa oleva Azure Cosmos DB for NoSQL -tili.
- Jos sinulla ei ole Azure-tilausta, kokeile ilmaista Azure Cosmos DB for NoSQL:ää.
- Jos sinulla on aiemmin luotu Azure-tilaus, luo uusi Azure Cosmos DB for NoSQL -tili.
- Olemassa oleva Fabric-kapasiteetti. Jos sinulla ei ole aiemmin luotua kapasiteettia, aloita Fabric-kokeiluversio.
- Azure Cosmos DB for NoSQL -tili on määritettävä Fabric-peilausta varten. Katso lisätietoja kohdasta Tilivaatimukset.
Vihje
Julkisen esikatselun aikana on suositeltavaa käyttää olemassa olevien Azure Cosmos DB -tietojen testi- tai kehityskopiota, joka voidaan palauttaa nopeasti varmuuskopiosta.
Sisäkkäisiä tietoja luodaan lähdetietokannassa
Luo Azure Cosmos DB for NoSQL -tilillesi JSON-kohteita, jotka sisältävät erilaisia sisäkkäisten JSON-tietojen tasoja.
Siirry Azure Cosmos DB -tilillesi Azure-portaali.
Valitse Resurssienhallinta resurssivalikosta.
Luo uusi säilö käyttämällä + Uusi säilö -komentoa. Anna tälle oppaalle nimi säilölle
TestC
. Vastaava tietokannan nimi on mielivaltainen.Käytä + Uusi kohde -asetusta useita kertoja näiden viiden JSON-kohteen luomiseen ja tallentamiseen.
{ "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" }
Määritä peilaus ja edellytykset
Määritä peilaus Azure Cosmos DB for NoSQL -tietokannalle. Jos et ole varma peilauksen määrittämisestä, katso opit määrittämään peilatun tietokannan opetusohjelman.
Luo uusi yhteys ja peilattu tietokanta Azure Cosmos DB -tilisi tunnistetiedoilla.
Odota, että replikointi viimeistelee tietojen ensimmäisen tilannevedoksen.
Kyselyn perussijaintitiedot
Luo nyt SQL-analytiikan päätepisteen avulla kysely, joka pystyy käsittelemään yksinkertaisia sisäkkäisiä JSON-tietoja.
Siirry peilattuun tietokantaan Fabric-portaalissa.
Vaihda Mirrored Azure Cosmos DB:stä SQL-analytiikan päätepisteeseen.
Avaa testitaulukon pikavalikko ja valitse Uusi SQL-kysely.
Laajenna matriisi suorittamalla
items
OPENJSON
tämä kysely käyttämällä . Tämän kyselyn avullaOUTER APPLY
se sisältää ylimääräisiä kohteita, joilla ei välttämättä ole kohdematriisia.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
Vihje
Kun valitset tietotyyppejä kohteessa
OPENJSON
, -menetelmän käyttäminenvarchar(max)
merkkijonotyypeille voi heikentää kyselyn suorituskykyä. Käytä sen sijaan merkkiävarchar(n)
whern
mikä tahansa luku. Mitä pienempin
on, sitä todennäköisempää on, että näet paremman kyselyn suorituskyvyn.Käytä
CROSS APPLY
kohdetta seuraavassa kyselyssä näyttämään vain kohteet, joilla onitems
matriisi.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
Syvyksien sisäkkäisiä tietoja luominen
Tämän sisäkkäisen tietoesimerkin pohjalta lisäämme syvemmin sisäkkäisen tietoesimerkin.
Siirry Azure Cosmos DB -tilillesi Azure-portaali.
Valitse Resurssienhallinta resurssivalikosta.
Luo uusi säilö käyttämällä + Uusi säilö -komentoa. Anna tälle oppaalle nimi säilölle
TestD
. Vastaava tietokannan nimi on mielivaltainen.Luo ja tallenna tämä JSON-kohde usean kerran +Uusi kohde -toiminnolla.
{ "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" } }
Kyselyn syvemmin sisäkkäisiä tietoja
Luo lopuksi T-SQL-kysely, joka löytää JSON-merkkijonoon syvällä sisäkkäin olevia tietoja.
Avaa taulukon pikavalikko
TestD
ja valitse uudelleen Uusi SQL-kysely .Suorita tämä kysely, jos haluat laajentaa sisäkkäisten tietojen kaikki tasot lähetystä käyttämällä
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
Muistiinpano
Kun laajennetaan
packages
,items
se esitetään JSON-muodossa, jota voidaan valinnaisesti laajentaa. -items
ominaisuuden aliominaisuudet ovat JSOn, ja ne voidaan myös halutessaan laajentaa.Suorita lopuksi kysely, joka valitsee milloin voit laajentaa tiettyjä sisäkkäisten tasojen tasoja.
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
Muistiinpano
Sisäkkäisten tasojen ominaisuusrajoituksia ei pakoteta tässä T-SQL-kyselykokemuksessa.