cosmosdb_sql_request plugin
A cosmosdb_sql_request
beépülő modul SQL-lekérdezést küld egy Azure Cosmos DB SQL-hálózati végpontnak, és visszaadja a lekérdezés eredményeit. Ez a beépülő modul elsősorban kis adathalmazok lekérdezésére szolgál, például az Azure Cosmos DB-ben tárolt referenciaadatokkal való bővítésre. A beépülő modul meghívása az evaluate
operátorral történik.
Syntax
evaluate
cosmosdb_sql_request
(
ConnectionString,
SqlQuery [,
SqlParameters [,
Options]] )
[:
OutputSchema]
További információ a szintaxis konvenciókról.
Paraméterek
Név | Típus | Kötelező | Leírás |
---|---|---|---|
ConnectionString | string |
✔️ | A lekérdezendő Azure Cosmos DB-gyűjteményre mutató kapcsolati karakterlánc. Tartalmaznia kell az AccountEndpointot, az Adatbázist és a Gyűjteményt. Az AccountKey is lehet, ha a hitelesítéshez főkulcsot használnak. További információ: Hitelesítés és engedélyezés. Példa: 'AccountEndpoint=https://cosmosdbacc.documents.azure.com/ ;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;' |
SqlQuery | string |
✔️ | A végrehajtandó lekérdezés. |
SqlParameters | dynamic |
A paraméterként átadni kívánt tulajdonságcsomag-objektum a lekérdezéssel együtt. A paraméterneveknek a kezdetével kell kezdődniük @ . |
|
OutputSchema | A beépülő modul kimenetének várt oszlopainak cosmosdb_sql_request nevei és típusai. Használja a következő szintaxist: ( ColumnName: ColumnType [, ...] ) . A paraméter megadása több lekérdezésoptimalizálást is lehetővé tesz. |
||
Beállítások | dynamic |
Speciális beállítások tulajdonságcsomag-objektuma. AccountKey Ha egy nincs megadva a ConnectionStringben, akkor ennek a paraméternek a armResourceId mezőjére van szükség. További információ: Támogatott beállítások. |
Támogatott beállítások
Az alábbi táblázat a Beállítások paraméter támogatott mezőit ismerteti.
Név | Típus | Description |
---|---|---|
armResourceId |
string |
Az Azure Resource Manager Cosmos DB-adatbázis erőforrás-azonosítója. Ha a kapcsolati karakterlánc argumentumban nincs megadva fiókkulcs, akkor erre a mezőre van szükség. Ilyen esetben a armResourceId a használatával hitelesíthető a Cosmos DB-ben.Példa: /subscriptions/a0cd6542-7eaf-43d2-bbdd-b678a869aad1/resourceGroups/ cosmoddbresourcegrouput/providers/Microsoft.DocumentDb/databaseAccounts/cosmosdbacc |
token |
string |
A Cosmos DB-adatbázishoz hozzáféréssel rendelkező rendszerbiztonsági tag Microsoft Entra hozzáférési jogkivonata. Ezt a jogkivonatot a rendszer a-val armResourceId együtt használja az Azure Resource Manager való hitelesítéshez. Ha nincs meghatározva, a rendszer a lekérdezést végrehajtott rendszerbiztonsági tag jogkivonatát használja. |
preferredLocations |
string |
Az a régió, amelyből le szeretné kérdezni az adatokat. Példa: ['East US'] |
Hitelesítés és engedélyezés
Az Azure Cosmos DB SQL-hálózati végpontra való engedélyezéshez meg kell adnia az engedélyezési adatokat. Az alábbi táblázat a támogatott hitelesítési módszereket és a metódus használatának leírását tartalmazza.
Hitelesítési módszer | Description |
---|---|
Azure Resource Manager erőforrás-azonosítója (ajánlott) | A biztonságos hitelesítés érdekében javasoljuk, hogy adja meg a armResourceId és a token értéket a beállítások között. A armResourceId azonosítja a Cosmos DB-adatbázisfiókot, és a-nak token érvényes Microsoft Entra tulajdonosi jogkivonatnak kell lennie a Cosmos DB-adatbázishoz hozzáférési engedélyekkel rendelkező rendszerbiztonsági tag számára. Ha nincs token megadva, a rendszer a kérés résztvevőjének Microsoft Entra jogkivonatát fogja használni a hitelesítéshez. |
Fiókkulcs | A fiókkulcsot közvetlenül is hozzáadhatja a ConnectionString argumentumhoz. Ez a megközelítés azonban kevésbé biztonságos, mivel magában foglalja a titkos kulcsot a lekérdezés szövegében, és kevésbé rugalmas a fiókkulcs jövőbeli változásaival szemben. A biztonság növelése érdekében rejtse el a titkos kódot rejtett sztringkonstansként. |
Ábrafelirat-szabályzat beállítása
A beépülő modul feliratokat készít az Azure Cosmos DB-példányhoz. Győződjön meg arról, hogy a fürt feliratszabályzata engedélyezi a cél CosmosDbUri típusú cosmosdb
hívásokat.
Az alábbi példa bemutatja, hogyan definiálhatja az Azure Cosmos DB-hez tartozó ábrafelirat-szabályzatot. Ajánlott adott végpontokra (my_endpoint1
, my_endpoint2
) korlátozni.
[
{
"CalloutType": "CosmosDB",
"CalloutUriRegex": "my_endpoint1\\.documents\\.azure\\.com",
"CanCall": true
},
{
"CalloutType": "CosmosDB",
"CalloutUriRegex": "my_endpoint2\\.documents\\.azure\\.com",
"CanCall": true
}
]
Az alábbi példa egy ábrafeliratszabályzat-parancsot mutat be a CalloutType-hozcosmosdb
.alter cluster policy callout @'[{"CalloutType": "cosmosdb", "CalloutUriRegex": "\\.documents\\.azure\\.com", "CanCall": true}]'
Példák
Az Azure Cosmos DB lekérdezése lekérdezéssel definiált kimeneti sémával
Az alábbi példa a cosmosdb_sql_request beépülő modult használja sql-lekérdezések küldésére, miközben csak bizonyos oszlopokat választ ki. Ez a lekérdezés explicit sémadefiníciókat használ, amelyek lehetővé teszik a különböző optimalizálásokat a tényleges lekérdezés Cosmos DB-vel való futtatása előtt.
evaluate cosmosdb_sql_request(
'AccountEndpoint=https://cosmosdbacc.documents.azure.com/;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;',
'SELECT c.Id, c.Name from c') : (Id:long, Name:string)
Az Azure Cosmos DB lekérdezése
Az alábbi példa a cosmosdb_sql_request beépülő modult használja egy SQL-lekérdezés küldéséhez, amely adatokat kér le az Azure Cosmos DB-ből a NoSQL-hez készült Azure Cosmos DB használatával.
evaluate cosmosdb_sql_request(
'AccountEndpoint=https://cosmosdbacc.documents.azure.com/;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;',
'SELECT * from c') // OutputSchema is unknown, so it is not specified. This may harm the performance of the query.
Azure Cosmos DB lekérdezése paraméterekkel
Az alábbi példa SQL-lekérdezési paramétereket használ, és egy másik régióból kérdezi le az adatokat. További információ: preferredLocations
.
evaluate cosmosdb_sql_request(
'AccountEndpoint=https://cosmosdbacc.documents.azure.com/;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;',
"SELECT c.id, c.lastName, @param0 as Column0 FROM c WHERE c.dob >= '1970-01-01T00:00:00Z'",
dynamic({'@param0': datetime(2019-04-16 16:47:26.7423305)}),
dynamic({'preferredLocations': ['East US']})) : (Id:long, Name:string, Column0: datetime)
| where lastName == 'Smith'
Ez a képesség nem támogatott az Azure Monitorban
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: