Does cosmosdb cassandra api uses same memtable , commit log, systable compaction write path to provide good performance for heavy write operations or is it same as the write operations in cosmos sql api.
Will cosmos cassndra api is suppose to work better then write same no. of write operations in cosmos sql api?
Related
Is there any way to manage an Azure Cosmos DB collection with partition key that uses the Mongo API directly from c#?
Currently we use Terraform to provision the Cosmos DB account and the database and we use the MongoDB.Driver to administrate collections. To get the Collection (and create it if it does not exist), we use the following syntax:
public IMongoCollection<MyDocument> MyDocumentsCollection =>
Database.GetCollection<MyDocument>("MyDocuments", mongoCollectionSetting);
I do not see any option to set the partition key for the collection and I was expecting to accomplish this with the mongoCollectionSettings. What is the best option to get this working?
I have found the Microsoft.Azure.Cosmos SDK but this is only applicable for Cosmos DB's SQL API.
Also I don't want to start with the method RunCommand but I guess this is the only option...?! Is it?
Can I use cosmos Document APIs to bulk update gremlin api vertices and edges? we are a java shop and Microsoft doesn't have a java client to do bulk imports into cosmos DB gremlin APIs. It is doable, but is it recommended?
There is a Java Bulk executor library for Azure CosmosDB Gremlin API.
Please find more details here
https://learn.microsoft.com/en-us/azure/cosmos-db/sql-api-sdk-bulk-executor-java
Samples are provided on Github
https://github.com/Azure/azure-cosmosdb-bulkexecutor-java-getting-started
An overview of Azure Cosmos DB bulk executor library is here
https://learn.microsoft.com/en-us/azure/cosmos-db/bulk-executor-overview
Is it possible to add data with the MongoDB APIs, then add edges between the documents with Gremlin, and query the same data with both APIs?
This is not possible today due to MongoDB's use of BSON which is not standard JSON. It is technically possible however to have SQL and Gremlin API within Cosmos DB.
I was wondering if MongoDB is fully supported in Azure Cosmos DB through the MongoDB API https://learn.microsoft.com/es-es/azure/cosmos-db/mongodb-introduction
I have read that the aggregation pipeline, map-reduce and the full-text indexes is not fully integrated. Does anyone have further information about it? Would you use MongoDB in Azure Cosmos DB considering its current status?
Cosmos DB implements MongoDB wire protocol and many customers already use MongoDB API in production. Aggregation pipeline is in private preview and you can enable it by emailing askcosmosmongoapi#microsoft.com. Map-reduce functionality is mostly covered by aggregation pipiline. Full-text search is partially available through Azure Search, which can index MongoDB collections and $regex operator within MongoDB API covers less complex text search. You can find some other feature requests and their status at https://feedback.azure.com/forums/263030-azure-cosmos-db/category/321994-mongodb-api
Cosmos DB's MongoDB layer implements a large subset of native MongoDB functionality. Specifics of supported features are published here.
You mentioned aggregation pipeline: As of November 2017, this is now supported.
Regarding "current status" of the Cosmos DB MongoDB API: It's a production database with SLA. You'll need to make your own decision on whether to use it, based on feature set and your app's needs.
You can activate aggregation pipeline through Azure portal by going to Preview Features menu.
I have data in DynamoDB which I want to run mapreduce jobs against. I've found a lot of tutorials which involve using Hive to run SQL against the dynamoDB data in EMR, but for the task I'm trying to perform it will be very difficult to efficiently write my task as SQL and I would rather just write a custom map-reduce jar. Is this possible, or is it only possible to write Hive SQL to query dynamoDB?
You definitely can query DynamoDB without Hive.
Amazon provides APIs that will allow you to rad and write to DynamoDB. So instead of using Hive you could write your own MapReduce job - with your Mapper querying DynamoDB using this API.