{"id":5576,"date":"2023-01-26T07:00:26","date_gmt":"2023-01-26T15:00:26","guid":{"rendered":"https:\/\/localhost\/cosmosdb\/?p=5534"},"modified":"2024-07-29T05:44:21","modified_gmt":"2024-07-29T12:44:21","slug":"latest-nosql-java-ecosystem-updates-2022-q3-q4","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cosmosdb\/latest-nosql-java-ecosystem-updates-2022-q3-q4\/","title":{"rendered":"Latest NoSQL Java Ecosystem Updates 2022 Q3 &amp; Q4"},"content":{"rendered":"<p>We&#8217;re always busy adding new features, fixes, patches, and improvements to our <a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/azure-cosmos-db-java-ecosystem\/\" target=\"_blank\" rel=\"noopener\">Java-based client libraries for Azure Cosmos DB API for NoSQL<\/a>. In this regular blog series we&#8217;ll share highlights of recent updates in the last period.<\/p>\n<h3><\/h3>\n<p>&nbsp;<\/p>\n<h2>July &#8211; December 2022 updates<\/h2>\n<ol>\n<li><a href=\"#spark-3-3-support\" rel=\"noopener\">Spark 3.3 support<\/a><\/li>\n<li><a href=\"#improved-cosmos-db-live-migration-in-spark-connector\">Improved Cosmos DB Live Migration in Spark Connector<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#optimisations-for-readmany-api\">Optimisations for readMany API<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#intellij-support\">IntelliJ Support<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#jdk-17-support\">JDK 17 support<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#azure-cosmos-kafka-connector-improvements\">Azure Cosmos Kafka Connector Improvements<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#client-side-metrics-via-micrometer-io-meter-registry\">Client Side Metrics via Micrometer.io Meter Registry<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#all-changes-and-deletes-support-for-change-feed\">All Changes and Deletes support for Change Feed<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#spring-boot-version-2-7-x-support\">Spring Boot Version 2.7.x support<\/a><\/li>\n<li style=\"text-align: left;\"><a href=\"#fixes-patches-and-enhancements\" rel=\"noopener\">Fixes, patches, and enhancements<\/a><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h5>Spark 3.3 support<\/h5>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/azure-cosmos-db-java-ecosystem\/#cloud-native-hybrid-transactional-and-analytical-processing-htap\" target=\"_blank\" rel=\"noopener\">Cloud-native hybrid transactional and analytical processing (HTAP)<\/a> is supported in Azure Cosmos DB through <a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/synapse-link\" target=\"_blank\" rel=\"noopener\">Synapse link<\/a>, using OLTP and OLAP Spark connectors, which now support Spark 3.3 as of December 2022.<\/p>\n<p><img decoding=\"async\" class=\"\" src=\"https:\/\/www.bigdataschool.ru\/wp-content\/uploads\/2022\/06\/spnrjun0.png\" alt=\"Apache Spark 3.3.0: \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e? \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0441\u0432\u0435\u0436\u0435\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430\" width=\"744\" height=\"338\" \/><\/p>\n<h5>Improved Cosmos DB Live Migration in Spark Connector<\/h5>\n<p>During November 2022, we improved Cosmos DB Live Migration support using the <a href=\"https:\/\/aka.ms\/JavaCosmosSparkConnectorLatest\" target=\"_blank\" rel=\"noopener\">OLTP Spark connector<\/a> by enhancing our existing sample to allow <a href=\"https:\/\/aka.ms\/JavaCosmosSparkContainerMigration\" target=\"_blank\" rel=\"noopener\">multiple container migration simultaneously<\/a>. This improvement also contains different deployment configurations defined through metadata.<\/p>\n<h5>Optimisations for readMany API<\/h5>\n<p>The <a href=\"https:\/\/aka.ms\/CosmosJavaReadManyItems\" target=\"_blank\" rel=\"noopener\">readMany method<\/a> in the Java V4 is a popular API for navigating the trade-off between the need to run many individual reads in parallel and the cost of having a large enough number of client machines or cores standing by to serve that requirement. During November 2022 we added <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/31723\" target=\"_blank\" rel=\"noopener\">optimisations to improve performance in cases where only a single item is requested from a physical partition<\/a>, as well as adding <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/pull\/32290\" target=\"_blank\" rel=\"noopener\">diagnostic improvements<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/01\/readmanystats.png\"><img decoding=\"async\" class=\"alignnone wp-image-5589 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/01\/readmanystats.png\" alt=\"Image readmanystats\" width=\"1348\" height=\"817\" \/><\/a><\/p>\n<h5>IntelliJ Support<\/h5>\n<p>In September and November we announced <a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/more-intellij-support-for-azure-cosmos-db\/\">IntelliJ support for Azure Cosmos DB<\/a> via the\u00a0<a href=\"https:\/\/aka.ms\/azuretoolkit\/intellijidea\" target=\"_blank\" rel=\"noopener\">Azure ToolKit for IntelliJ<\/a> plugin.<\/p>\n<p><iframe title=\"YouTube video player\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/11\/importdoc.mp4\" width=\"800\" height=\"450\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"><\/iframe><\/p>\n<h5>JDK 17 support<\/h5>\n<p>Support for <a href=\"https:\/\/www.oracle.com\/java\/technologies\/javase\/17-relnote-issues.html\" target=\"_blank\" rel=\"noopener\">Java 17<\/a> came during October 2022 for the Java SDK, Spring and Spark Connector.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/neiljbrown.files.wordpress.com\/2021\/11\/java17-image.webp\" \/><\/p>\n<h5>Azure Cosmos Kafka Connector Improvements<\/h5>\n<p>We&#8217;ve listened to feedback and worked closely with our customers to add <a href=\"https:\/\/aka.ms\/CosmosJavaBulkSupport\" target=\"_blank\" rel=\"noopener\">bulk support<\/a> by default, improving ingestion throughput capability for the Sink connector. We&#8217;ve also added <a href=\"https:\/\/aka.ms\/JavaCosmosKafkaGatewayModeSample\" target=\"_blank\" rel=\"noopener\">gateway mode support<\/a> to the Kafka Connector.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2021\/08\/data-migrations.png\"><img decoding=\"async\" class=\"alignnone wp-image-3310 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2021\/08\/data-migrations.png\" alt=\"Image data migrations\" width=\"795\" height=\"216\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2021\/08\/data-migrations.png 795w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2021\/08\/data-migrations-300x82.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2021\/08\/data-migrations-768x209.png 768w\" sizes=\"(max-width: 795px) 100vw, 795px\" \/><\/a><\/p>\n<h5>Client Side Metrics via Micrometer.io Meter Registry<\/h5>\n<p>During September 2022 we have added the option to emit metrics from the Azure Cosmos DB Java SDK via a <a href=\"https:\/\/micrometer.io\/\" target=\"_blank\" rel=\"noopener\">micrometer MeterRegistry<\/a> as well as doing so from the Spark connector via configuration. Check out documentation on <a href=\"https:\/\/aka.ms\/CosmosJavaSDKClientSideMetrics\" target=\"_blank\" rel=\"noopener\">how to enable client side metrics<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/01\/micrometer.png\"><img decoding=\"async\" class=\"alignnone wp-image-5591 \" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/01\/micrometer.png\" alt=\"Image micrometer\" width=\"744\" height=\"202\" \/><\/a><\/p>\n<h5>All Changes and Deletes support for Change Feed<\/h5>\n<p>During September we also added <a href=\"https:\/\/github.com\/Azure-Samples\/azure-cosmos-java-sql-api-samples\/blob\/main\/src\/main\/java\/com\/azure\/cosmos\/examples\/changefeed\/SampleChangeFeedProcessorForAllVersionsAndDeletesMode.java\" target=\"_blank\" rel=\"noopener\">support in the Java SDK<\/a> for allowing all changes and deletes in the change feed to be visible (also known as &#8220;full fidelity&#8221; change feed).<\/p>\n<p>Note: at the time of writing this is a private preview feature in the Azure Cosmos DB backend. If you want to enable this feature, contact support.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/01\/changefeedoverview.png\"><img decoding=\"async\" class=\"alignnone wp-image-5592 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/01\/changefeedoverview.png\" alt=\"Image changefeedoverview\" width=\"1201\" height=\"712\" \/><\/a><\/p>\n<h5>Spring Boot Version 2.7.x support<\/h5>\n<p>June 2022 saw the <a href=\"https:\/\/aka.ms\/JavaCosmosSpringDevGuide\" target=\"_blank\" rel=\"noopener\">Cosmos Spring Data Client Library<\/a> get support for Spring Boot version 2.7.x. We&#8217;ll be releasing support for version 3.0.x soon!<\/p>\n<p><iframe title=\"YouTube video player\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/12\/spring.mp4\" width=\"800\" height=\"514\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"><\/iframe><\/p>\n<h5>Fixes, patches, and enhancements<\/h5>\n<p>In addition to all of the above features, we have of course made a large number of smaller bug fixes, security patches, enhancements, and improvements. You can track all the changes for each client library, along with the <strong>minimum version we recommend you use<\/strong>, by viewing the change logs:<\/p>\n<ul>\n<li><strong>Java SDK <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/blob\/main\/sdk\/cosmos\/azure-cosmos\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\">change log<\/a><\/strong><\/li>\n<li><strong>Spring Data Client Library <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/blob\/main\/sdk\/spring\/azure-spring-data-cosmos\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\">change log<\/a><\/strong><\/li>\n<li><strong>OLTP Spark Connector <a href=\"https:\/\/github.com\/Azure\/azure-sdk-for-java\/blob\/main\/sdk\/cosmos\/azure-cosmos-spark_3-3_2-12\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\">change log<\/a><\/strong><\/li>\n<li><strong>Kafka Connectors <a href=\"https:\/\/github.com\/microsoft\/kafka-connect-cosmosdb\/blob\/dev\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\">change log<\/a><\/strong><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3 id=\"get-started\">Get Started with Java in Azure Cosmos DB<i class=\"fabric-icon fabric-icon--Link\" aria-hidden=\"true\"><\/i><\/h3>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/azure\/cosmos-db\/sql\/sql-api-sdk-java-v4\" target=\"_blank\" rel=\"noopener\">Azure Cosmos DB Java SDK v4 technical documentation<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/nosql\/troubleshoot-java-sdk-v4?tabs=sync\" target=\"_blank\" rel=\"noopener\">Diagnose and troubleshoot Azure Cosmos DB Java SDK v4<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/azure\/cosmos-db\/sql\/sql-api-java-sdk-samples\" target=\"_blank\" rel=\"noopener\">Java SDK v4 getting started sample application<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Azure-Samples\/azure-spring-data-cosmos-java-sql-api-samples\" target=\"_blank\" rel=\"noopener\">Azure Cosmos DB Spring Data Sample<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/AzureCosmosDB\/CosmicWorksJava\" target=\"_blank\" rel=\"noopener\">Cosmic Works Java<\/a><\/li>\n<li class=\"\"><a href=\"https:\/\/docs.microsoft.com\/azure\/cosmos-db\/sql\/sql-api-sdk-java-v4\" target=\"_blank\" rel=\"noopener\">Release notes and additional resources<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/java-sdk-v4-async-vs-sync\/\" target=\"_blank\" rel=\"noopener\">Exploring the Async API (reactor programming)<\/a><\/li>\n<\/ul>\n<h3 id=\"about-azure-cosmos-db\">About Azure Cosmos DB<i class=\"fabric-icon fabric-icon--Link\" aria-hidden=\"true\"><\/i><\/h3>\n<p><a href=\"https:\/\/azure.microsoft.com\/services\/cosmos-db\/\" target=\"_blank\" rel=\"noopener\">Azure Cosmos DB<\/a>\u00a0is a fast and scalable distributed NoSQL database, built for modern application development. Get guaranteed single-digit millisecond response times and 99.999-percent availability,\u00a0<a href=\"https:\/\/azure.microsoft.com\/support\/legal\/sla\/cosmos-db\/\" target=\"_blank\" rel=\"noopener\" data-bi-an=\"content-overview-01\" data-bi-tn=\"undefined\">backed by SLAs<\/a>,\u00a0<a href=\"https:\/\/docs.microsoft.com\/azure\/cosmos-db\/scaling-throughput\" target=\"_blank\" rel=\"noopener\" data-bi-an=\"content-overview-01\" data-bi-tn=\"undefined\">automatic and instant scalability<\/a>, and open-source APIs for MongoDB and Cassandra. Enjoy fast writes and reads anywhere in the world with turnkey data replication and multi-region writes.<\/p>\n<p class=\"\">To easily build your first database, watch our\u00a0<a href=\"https:\/\/youtube.com\/playlist?list=PLmamF3YkHLoLLGUtSoxmUkORcWaTyHlXp\" target=\"_blank\" rel=\"noopener\">Get Started videos<\/a> on YouTube and explore ways to <a href=\"https:\/\/docs.microsoft.com\/azure\/cosmos-db\/optimize-dev-test\" target=\"_blank\" rel=\"noopener\">dev\/test free<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re always busy adding new features, fixes, patches, and improvements to our Java-based client libraries for Azure Cosmos DB API for NoSQL. In this regular blog series we&#8217;ll share highlights of recent updates in the last period. &nbsp; July &#8211; December 2022 updates Spark 3.3 support Improved Cosmos DB Live Migration in Spark Connector Optimisations [&hellip;]<\/p>\n","protected":false},"author":9387,"featured_media":5405,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"link","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,1915,643,13,1778,1849],"tags":[],"class_list":["post-5576","post","type-post","status-publish","format-link","has-post-thumbnail","hentry","category-core-sql-api","category-java-ecosystem-updates","category-java-sdk","category-news","category-spark","category-spring-data","post_format-post-format-link"],"acf":[],"blog_post_summary":"<p>We&#8217;re always busy adding new features, fixes, patches, and improvements to our Java-based client libraries for Azure Cosmos DB API for NoSQL. In this regular blog series we&#8217;ll share highlights of recent updates in the last period. &nbsp; July &#8211; December 2022 updates Spark 3.3 support Improved Cosmos DB Live Migration in Spark Connector Optimisations [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/5576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/users\/9387"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/comments?post=5576"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/5576\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media\/5405"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media?parent=5576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/categories?post=5576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/tags?post=5576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}