Cosmos DB Connector
Documentation
Version: 2
Documentation

Cosmos DB Connector Examples


The ZappySys API Driver is a user-friendly interface designed to facilitate the seamless integration of various applications with the Cosmos DB API. With its intuitive design and robust functionality, the ZappySys API Driver simplifies the process of configuring specific API endpoints to efficiently read or write data from Cosmos DB.

On this page you will find some SQL examples which can be used for API ODBC Driver or Data Gateway API Connector.

Query using Cosmos DB (Using Default Table)    [Read more...]

Lists all containers from the default database specified (Specified for the connection settings). Check this URL for more information on query syntax: https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/query/select

#DirectSQL SELECT * FROM root where root.id !=null order by root._ts desc

Read all documents for a collection in Cosmos DB    [Read more...]

Read all documents for a collection in Cosmos DB.

SELECT * FROM TestContainer

Read a document by Id from a collection in Cosmos DB    [Read more...]

Read a single document by Id from a collection in Cosmos DB.

SELECT * FROM TestContainer Where Id='user2'

Query Documents from Cosmos DB Table (Container) using SQL    [Read more...]

Lists all users Cosmos DB Database

SELECT *
FROM query_documents
WITH(
  --  Database='TestDB', --if you dont supply connection level Default Database name is used
	  Table='TestContainer',  
	  Query='select * from root Where root.id!=null order by root._ts desc',
	  Meta='id:string(50);name:string(50);city;age'
	  --Meta='id; name; city; age' -- no types at all. Default is string(2000)
	  --Meta='id; name:string(50); city; age: int'   --Mixed types. If type is missing default string(2000) used
	  --check below URL for more information on Qyery Language Syntax
	  --https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/query/select
)

Create a new document with Partition Key supplied    [Read more...]

Loads a new document into specified container with partition key. If you created container with Partition Key requirement then must supply it. Partition Key must be valid value from Document Attribute used as Partition Key.

INSERT INTO TestContainer (PartitionKey, Document)
VALUES(
'["user2"]', --partition key value must match its attribute from document else it will throw error. In this example container PartitionKey is /id so we used its value. For multiple key use JSON array ["val1","val2"]
'{
  "id": "user2",
  "name": "John Doe",
  "email": "jdoe@contoso.com",
  "phone": ["12345"],
  "level": "platinum"
}'
)
WITH(Upsert='true')

Create a new document from a file path (Upload from local disk file)    [Read more...]

Loads a new document into specified container from local file path. File path must start with @ symbol

INSERT INTO TestContainer (PartitionKey, Document)
VALUES(
'["user2"]', --partition key value must match its attribute from document else it will throw error. In this example container PartitionKey is /id so we used its value. For multiple key use JSON array ["val1","val2"]
'@c:\data\order.json'   --path must start with @ symbol
)
WITH(Upsert='true', IsMultiPart=1)

Upsert a document (Insert or Update if exists)    [Read more...]

Upsert a document (Update if id exists else create new one).

INSERT INTO TestContainer (PartitionKey, Document)
VALUES(
'["user2"]', --partition key value must match its attribute from document else it will throw error. In this example container PartitionKey is /id so we used its value. For multiple key use JSON array ["val1","val2"]
'{
  "id": "user2",
  "name": "John Doe",
  "email": "jdoe@contoso.com",
  "phone": ["12345"],
  "level": "platinum"
}')
 WITH(Upsert='true')

Upsert a document (Insert or Update if exists) - Use UPSERT Keyword rather than WITH option    [Read more...]

Upsert a document (Update if id exists else create new one). This one uses UPSERT KEY word slight simpler syntax becuase you dont need WITH clause like INSERT... WITH(UPSERT='true') example.

UPSERT INTO TestContainer (PartitionKey, Document)
VALUES(
'["user2"]', --partition key value must match its attribute from document else it will throw error. In this example container PartitionKey is /id so we used its value. For multiple key use JSON array ["val1","val2"]
'{
  "id": "user2",
  "name": "John Doe",
  "email": "jdoe@contoso.com",
  "phone": ["12345"],
  "level": "platinum"
}')

Update (replace) a document (By default Full replace)    [Read more...]

Update a document for a specified Document Id.

UPDATE TestContainer 
SET  
 PartitionKey='["user2"]'
,Document=
'{
  "id" : "user2",
  "name": "John Doe at <<FUN_NOW>>",
  "email": "jdoe@contoso.com",
  "phone": ["<<FUN_TODAY>>"],
  "level": "platinum"
}'
Where Id='user2'

Partial Update a document (Patch)    [Read more...]

Update one or more attributes in a document using PATCH method for a specified Document Id.

UPDATE TestContainer 
SET  
 PartitionKey='["user2"]'
,Document=
'{
  "operations": [
     { "op": "set", "path": "/name", "value": "updated name" }
	,{ "op": "set", "path": "/email", "value": "updated@email.com" }
  ]
}'
Where Id='user2'
WITH(
		RequestMethod='PATCH' --Partial Replace (change name and email only)
    )
	
/*
Example Document Operations
https://learn.microsoft.com/en-us/azure/cosmos-db/partial-document-update
https://learn.microsoft.com/en-us/rest/api/cosmos-db/patch-a-document

[
  { "op": "add", "path": "/color", "value": "silver" },
  { "op": "remove", "path": "/used" },
  { "op": "set", "path": "/price", "value": 355.45 }
  { "op": "incr", "path": "/inventory/quantity", "value": 10 },
  { "op": "add", "path": "/tags/-", "value": "featured-bikes" },
  { "op": "move", "from": "/color", "path": "/inventory/color" }
]

*/

Partial Update a document (Patch) from a file path (Upload from local disk file)    [Read more...]

Update one or more attributes in a document using PATCH method for a specified Document Id read operations from local disk file.

UPDATE TestContainer 
SET  
 PartitionKey='["user2"]'
,Document='@c:\temp\b.txt'  --path must start with @ symbol
Where Id='user2'
WITH(
		 RequestMethod='PATCH' --Partial Replace (change name and email only)
	    ,IsMultiPart=1 --this enables file upload	
    )
	
/*
Example Document Operations
https://learn.microsoft.com/en-us/azure/cosmos-db/partial-document-update
https://learn.microsoft.com/en-us/rest/api/cosmos-db/patch-a-document

[
  { "op": "add", "path": "/color", "value": "silver" },
  { "op": "remove", "path": "/used" },
  { "op": "set", "path": "/price", "value": 355.45 }
  { "op": "incr", "path": "/inventory/quantity", "value": 10 },
  { "op": "add", "path": "/tags/-", "value": "featured-bikes" },
  { "op": "move", "from": "/color", "path": "/inventory/color" }
]

*/

List Databases    [Read more...]

Lists all databases for specified Cosmos DB Account

SELECT * FROM SysDatabases

List Tables (i.e. Containers)    [Read more...]

Lists all containers from the default database specified (Specified for the connection settings)

SELECT * FROM SysTables

List Tables (i.e. Containers) for a specific database    [Read more...]

Lists all containers from the specified Database

SELECT * FROM SysTables WITH (Database='MyCosmos DB')

List Users for the Database    [Read more...]

Lists all users Cosmos DB Database

SELECT * FROM SysUsers

Getting Started with Examples

ZappySys API Driver is a powerful software solution designed to facilitate the extraction and integration of data from a wide range of sources through APIs. Its intuitive design and extensive feature set make it an essential asset for any organization dealing with complex data integration tasks.

To get started with examples using ZappySys API Driver, please click on the following applications:

SQL Server Connect Cosmos DB in SQL Server
Power BI Connect Cosmos DB in Power BI
SSRS Connect Cosmos DB in SSRS
Informatica Connect Cosmos DB in Informatica
MS Access Connect Cosmos DB in MS Access
MS Excel Connect Cosmos DB in MS Excel
SSAS Connect Cosmos DB in SSAS
C# Connect Cosmos DB in C#
Python Connect Cosmos DB in Python
JAVA Connect Cosmos DB in JAVA
Tableau Connect Cosmos DB in Tableau
SAP Crystal Reports Connect Cosmos DB in SAP Crystal Reports
Azure Data Factory (ADF) Connect Cosmos DB in Azure Data Factory (ADF)
ODBC Connect Cosmos DB in ODBC

Key features of the ZappySys API Driver include:

The API ODBC driver facilitates the reading and writing of data from numerous popular online services (refer to the complete list here) using familiar SQL language without learning complexity of REST API calls. The driver allows querying nested structure and output as a flat table. You can also create your own ODBC / Data Gateway API connector file and use it with this driver.

  1. Intuitive Configuration: The interface is designed to be user-friendly, enabling users to easily set up the specific API endpoints within Cosmos DB without requiring extensive technical expertise or programming knowledge.

  2. Customizable Endpoint Setup: Users can conveniently configure the API endpoint settings, including the HTTP request method, endpoint URL, and any necessary parameters, to precisely target the desired data within Cosmos DB.

  3. Data Manipulation Capabilities: The ZappySys API Driver allows for seamless data retrieval and writing, enabling users to fetch data from Cosmos DB and perform various data manipulation operations as needed, all through an intuitive and straightforward interface.

  4. Secure Authentication Integration: The driver provides secure authentication integration, allowing users to securely connect to the Cosmos DB API by inputting the necessary authentication credentials, such as API tokens or other authentication keys.

  5. Error Handling Support: The interface is equipped with comprehensive error handling support, ensuring that any errors or exceptions encountered during the data retrieval or writing process are efficiently managed and appropriately communicated to users for prompt resolution.

  6. Data Visualization and Reporting: The ZappySys API Driver facilitates the seamless processing and presentation of the retrieved data from Cosmos DB, enabling users to generate comprehensive reports and visualizations for further analysis and decision-making purposes.

Overall, the ZappySys API Driver serves as a powerful tool for streamlining the integration of applications with Cosmos DB, providing users with a convenient and efficient way to access and manage data, all through a user-friendly and intuitive interface.