{"id":7338,"date":"2020-04-15T11:18:37","date_gmt":"2020-04-15T11:18:37","guid":{"rendered":"https:\/\/www.version1.com\/en-us\/?p=7338"},"modified":"2020-04-15T11:18:37","modified_gmt":"2020-04-15T11:18:37","slug":"kdb-and-microsoft-azure","status":"publish","type":"post","link":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/","title":{"rendered":"kdb+ and Microsoft Azure"},"content":{"rendered":"<p>At Version 1, we believe in using the right technology for the job to deliver the best solution to our clients. Recently, we were tasked with storing and analysing multiple types of data within a single, logical application. Rather than attempt to force all data types into a single database technology, we looked at which technology was the most suitable for each type of data.<\/p>\n<p>Amongst its vast range of solutions, <a href=\"https:\/\/www.version1.com\/our-tech-partnerships\/microsoft\/\">Microsoft Azure offers<\/a> lots of cloud-based platforms and hybrid storage options for objects, files, disks, queues, and tables. By using MS Azure Files, Blobs, and Cosmos DB alongside <a href=\"https:\/\/www.version1.com\/sectors\/our-financial-services-expertise\/kdb-services-and-support-teams\/\">kdb+<\/a> we were able to produce a quick prototype that applied the right storage choice for each type of data. We used embedPy to interface kdb+ with these three separate Azure storage options and merged the results on retrieval to perform our analysis on the large, aggregated dataset.<\/p>\n<p>We thought it might be useful to include the prototype code in the \u201cThe Techie Bit\u201d for anyone else who is looking at interfacing kdb+ with MS Azure storage options.<\/p>\n<ul>\n<li><strong>Azure Files<\/strong> is a simple file share that is fully managed on the cloud<br \/>\n&#8211; Our client had a large history of JSON files which were uploaded for persistence<br \/>\n&#8211; Additional JSON files were produced and uploaded in batches during the day<br \/>\n&#8211; These were ingested into kdb+ to create a streaming data repository<\/li>\n<li><strong>Azure Blobs<\/strong> is Microsoft\u2019s answer to cloud object storage<br \/>\n&#8211; Our client had unstructured datasets stored as individual objects (or \u201cblobs\u201d)<br \/>\n&#8211; The data was extracted and manipulated in kdb+ so that key information points were easily joined onto the tables generated from the JSON files<\/li>\n<li><strong>Azure Cosmos DB<\/strong> is a schema-agnostic, NoSQL database<br \/>\n&#8211; Our client had a process that that was continuously updating this dataset throughout the day with new incoming data<\/li>\n<\/ul>\n<p>At this stage, most firms understand the benefits of moving some (or all) of their operations to the cloud so that they can take advantage of the cost savings, scalability, and flexibility that cloud computing offers. As part of any cloud migration strategy, firms should also take this opportunity to confirm that they are using the right technology \u2013 the availability of other choices and ease of implementation in the cloud settings offers a unique opportunity to rebalance solutions\u2019 architectures if appropriate.<\/p>\n<p>In this blog we present<a href=\"https:\/\/www.version1.com\/services\/\"> kdb+<\/a> and Microsoft Azure. We hope this will not only show how easy it is to deploy kdb+ into an Azure cloud platform but also how simple it is to interface with other technologies and services.<\/p>\n<h2>\u201cThe Techie Bit\u201d<\/h2>\n<p><strong>Accessing your Azure VM<\/strong><\/p>\n<p><strong>Get your VM\u2019s IP address<\/strong><\/p>\n<p>From your virtual machine\u2019s (VM) home page, go to the \u2018Overview\u2019 tab and find the Public IP Address is listed under the \u2018Essentials\u2019 section (see below).<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.version1.com\/wp-content\/uploads\/2026\/06\/azure_ip1.png\" alt=\"\" loading=\"lazy\"><br \/>\n<strong>ssh to VM<\/strong><br \/>\nUse ssh and your identity file to get onto your VM:<\/p>\n<p><code>ssh -i \/path\/to\/mykey.pem username@vm_ip_address<\/code><\/p>\n<h2>Installing kdb+ onto your Azure VM<\/h2>\n<p>I had anaconda3 installed onto my VM which included Python 3.8.3. Next, I installed the Python packages for each MS Azure storage option:<\/p>\n<p><code>$ pip install azure-storage-file-share<br \/>\n$ pip install azure-storage-blob<br \/>\n$ pip install azure-cosmos<\/code><\/p>\n<p><strong>Get kdb+ and embedPy<\/strong><\/p>\n<p>Download the free 32-bit kdb+ version here and download the embedPy package from here.<\/p>\n<p>Copy both zipped folders to your VM using scp and your identity file:<\/p>\n<p><code>scp -i \/path\/to\/mykey.pem folder.zip username@vm_ip_address:\/some\/directory<\/code><\/p>\n<p>Unzip the folders on your VM and follow the README instructions to finish their installations. You will\u00a0<strong>need to chmod 777 the {w|l}32\/q after the copy<\/strong>\u00a0to run the executable.<\/p>\n<p><strong>Get rlwrap<\/strong><br \/>\nRlwrap (readline wrapper) gives you readline functionality and is very useful when using the q console \u2013 get it by running:<\/p>\n<p><code>$ sudo apt-get update -y<br \/>\n$ sudo apt-get install -y rlwrap<\/code><\/p>\n<p><strong>Useful aliases<\/strong><br \/>\nThese are some aliases that I set in my .bashrc when using kdb+ with rlwrap and\/or embedPy (feel free to change the directories to your own):<\/p>\n<p><code>export QHOME='\/home\/kdbadmin\/q_linux'<br \/>\nalias q='rlwrap \/home\/kdbadmin\/q_linux\/l64\/q'<br \/>\nalias qpy='rlwrap \/home\/kdbadmin\/q_linux\/l64\/q \/home\/kdbadmin\/q_linux\/p.q'<\/code><\/p>\n<p><strong>Useful environment variables<\/strong><br \/>\nFirst, to interact with our Files\/Blobs storage account, we need to get the connection string. From your storage account, go to Settings Access keys, and your connection string(s) will be listed beneath each key (only one string is needed).<\/p>\n<p>Get your Cosmos DB connection details as well from Settings Keys (only need URI and Primary Key):<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.version1.com\/wp-content\/uploads\/2026\/06\/azure_cosmos3-1.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Copy these keys and and set them as environment variables:<\/p>\n<p><code>export AZURE_STORAGE_CONNECTION_STRING=\"your_storage_connection_string\"<br \/>\nexport AZURE_COSMOS_URI=\"your_cosmos_db_uri\"<br \/>\nexport AZURE_COSMOS_KEY=\"your_cosmos_db_key\"<\/code><\/p>\n<p>If you\u2019re just playing around with this today, you could always just paste these strings directly into your q\/Python code instead of creating environment variables \u2013 but this is a much cleaner way to do it (plus they\u2019ll always be there in future to use again).<\/p>\n<h2>Accessing Azure Storage Data from kdb+<\/h2>\n<p>Microsoft have written several client libraries for Python that allow users to manage their blobs\/files in their storage account as well as query Azure Cosmos DB. For the scope of this blog, we will focus on downloading and reading data from each of these containers and converting their data into kdb+ tables.<\/p>\n<p>To allow q to communicate with Python, we need to load embedPy into our q session. This can be done either by using the qpy alias from earlier or loading embedPy manually:<\/p>\n<p><code>q)l \/home\/kdbadmin\/q_linux\/p.q<\/code><\/p>\n<p>Next, load the Python libraries to interact with Azure Storage:<\/p>\n<p><code>q)p)import os<br \/>\nq)p)import json<br \/>\nq)p)from azure.cosmos import CosmosClient # for Azure Cosmos DB<br \/>\nq)p)from azure.storage.blob import BlobServiceClient # for Azure Blobs<br \/>\nq)p)from azure.storage.fileshare import (ShareClient, ShareFileClient) # for Azure Files<\/code><\/p>\n<p>Set your account variables (enter your own share name):<\/p>\n<p><code>q)p)connection_string = os.getenv('AZURE_STORAGE_CONNECTION_STRING')<br \/>\nq)p)share_name = '{your_file_share_name}'<br \/>\nq)p)share_client = ShareClient.from_connection_string(connection_string, share_name)<\/code><\/p>\n<p>q)p)connection_string = os.getenv(&#8216;AZURE_STORAGE_CONNECTION_STRING&#8217;)<br \/>\nq)p)uri = os.environ[&#8216;AZURE_COSMOS_URI&#8217;]<br \/>\nq)p)key = os.environ[&#8216;AZURE_COSMOS_KEY&#8217;]<\/p>\n<p>Now, we will break down how to pull the data from these MS Azure containers into Python (using embedPy), and then we will show how to easily convert them into kdb+ tables.<\/p>\n<p><strong>Files<\/strong><\/p>\n<p>Using the Python library for Azure Files, get a list of files from your storage account and pull their data:<\/p>\n<p><code>\/\/ Python: Get list of files<br \/>\nq)p)files_and_dirs = list(share_client.list_directories_and_files())<br \/>\nq)p)files = []<br \/>\nq)p)for x in files_and_dirs: files.append(x['name'])<\/code><\/p>\n<p><code>\/\/ Python: Get data from files<br \/>\nq)p)file_data = []<br \/>\n\/ NOTE: collapse this into one line if running from q) prompt<br \/>\nq)p)for x in files:<br \/>\nfile_client = ShareFileClient.from_connection_string(connection_string, share_name, x);<br \/>\ndata = file_client.download_file();<br \/>\ncleaned_data = (data.readall().decode('utf-8-sig')).strip();<br \/>\nfile_data.append(cleaned_data)<\/code><\/p>\n<p><strong>Blobs<\/strong><br \/>\nUsing the Python library for Azure Blobs, get a list of blobs from your storage account (enter your own container name) and pull their data:<\/p>\n<p><code>\/\/ Python: Connect to Azure Blobs account<br \/>\nq)p)blob_service_client = BlobServiceClient.from_connection_string(connection_string)<\/code><\/p>\n<p><code>\/\/ Python: Get list of blobs in container<br \/>\nq)p)container_name = 'validdata'<br \/>\nq)p)blobs = []<br \/>\nq)p)container_client = blob_service_client.get_container_client(container_name)<br \/>\nq)p)blobs_list = container_client.list_blobs()<br \/>\nq)p)for blob in blobs_list: blobs.append(blob.name)<\/code><\/p>\n<p><code>\/\/ Python: Get data from blobs<br \/>\nq)p)blob_data=[]<br \/>\n\/ NOTE: collapse this into one line if running from q) prompt<br \/>\nq)p)for blob in blobs:<br \/>\ndata = blob_service_client.get_blob_client(container=container_name, blob=blob).download_blob();<br \/>\ncleaned_data = (data.readall().decode('utf-8-sig')).strip();<br \/>\nblob_data.append(cleaned_data)<\/code><\/p>\n<p><strong>Cosmos DB<\/strong><\/p>\n<p>Using the Python library for Azure Cosmos DB, use query_items to query your database (enter your own database and container names):<\/p>\n<p><code>\/\/ Python: Connect to Azure account<br \/>\nq)p)client = CosmosClient(uri, credential=key)<br \/>\nq)p)database_name = 'kdbcosmos'<br \/>\nq)p)database = client.get_database_client(database_name)<br \/>\nq)p)container_name = 'iotdata'<br \/>\nq)p)container = database.get_container_client(container_name)<\/code><\/p>\n<p><code>\/\/ Python: Get data from container items<br \/>\nq)p)item_data = []<br \/>\n\/ NOTE: collapse this into one line if running from q) prompt<br \/>\nq)p)for item in container.query_items<br \/>\nquery='SELECT * FROM iotdata',<br \/>\nenable_cross_partition_query=True):<br \/>\nitem_data.append(json.dumps(item))<\/code><\/p>\n<p><strong>Converting Python data into kdb+<\/strong><br \/>\nNow that we have pulled data from three different Azure sources, we need to move the data from Python memory into q memory. We do that using .p.get and, since all the data was of JSON format, we can convert it into kdb+ tables using .j.k:<\/p>\n<p><code>q)rawFileData:.p.get[`file_data]`<br \/>\nq)fileRes:.j.k each rawFileData<\/code><\/p>\n<p>q)rawBlobData:.p.get[`blob_data]`<br \/>\nq)blobRes:.j.k each rawBlobData<\/p>\n<p>q)rawCosmosData:.p.get[`item_data]`<br \/>\nq)cosmosRes:.j.k each rawCosmosData<\/p>\n<p>That\u2019s it! The data is now loaded into three kdb+ tables, where we can process them further to make them more readable and useable, enforcing sensible schemas and joining the datasets to enrich them for our users.<\/p>\n<p>Find out more information on Version 1&#8217;s partnership with Microsoft and MS Azure <a href=\"https:\/\/www.version1.com\/microsoft-azure-partner\/\">here.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Version 1, we believe in using the right technology for the job to deliver the best solution to our clients. Recently, we were tasked with storing and analysing multiple types of data within a single, logical application. Rather than attempt to force all data types into a single database technology, we looked at which [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":7339,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[101],"tags":[],"industry":[],"class_list":["post-7338","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"translations":[{"blog_id":1,"post_id":7338,"name":"Europe","code":"EN-GB","hreflang":"en-gb","url":"https:\/\/www.version1.com\/blog\/kdb-and-microsoft-azure\/","is_current":false},{"blog_id":13,"post_id":7338,"name":"Americas","code":"EN-US","hreflang":"en-us","url":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/","is_current":true}],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>kdb+ and Microsoft Azure | Version 1 (US)<\/title>\n<meta name=\"description\" content=\"In this blog we demonstrate how easy it is to deploy kdb+ and Microsoft Azure into a cloud platform and to interface it with other technologies Learn more now.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"kdb+ and Microsoft Azure | Version 1 (US)\" \/>\n<meta property=\"og:description\" content=\"In this blog we demonstrate how easy it is to deploy kdb+ and Microsoft Azure into a cloud platform and to interface it with other technologies Learn more now.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/\" \/>\n<meta property=\"og:site_name\" content=\"Version 1 (US)\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-15T11:18:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.version1.com\/en-us\/wp-content\/uploads\/2020\/04\/Oracle-Cloud-Financials.jpg.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"626\" \/>\n\t<meta property=\"og:image:height\" content=\"417\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"kdb+ and Microsoft Azure\",\"datePublished\":\"2020-04-15T11:18:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/\"},\"wordCount\":1113,\"publisher\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Oracle-Cloud-Financials.jpg.webp\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/\",\"url\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/\",\"name\":\"kdb+ and Microsoft Azure | Version 1 (US)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Oracle-Cloud-Financials.jpg.webp\",\"datePublished\":\"2020-04-15T11:18:37+00:00\",\"description\":\"In this blog we demonstrate how easy it is to deploy kdb+ and Microsoft Azure into a cloud platform and to interface it with other technologies Learn more now.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Oracle-Cloud-Financials.jpg.webp\",\"contentUrl\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Oracle-Cloud-Financials.jpg.webp\",\"width\":626,\"height\":417,\"caption\":\"Woman at desk with laptop and printouts\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/blog\\\/kdb-and-microsoft-azure\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"kdb+ and Microsoft Azure\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/#website\",\"url\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/\",\"name\":\"Version 1\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/#organization\",\"name\":\"Version 1\",\"url\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.version1.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-cropped-Favicon-2.png\",\"contentUrl\":\"https:\\\/\\\/www.version1.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/cropped-cropped-Favicon-2.png\",\"width\":512,\"height\":512,\"caption\":\"Version 1\"},\"image\":{\"@id\":\"https:\\\/\\\/www.version1.com\\\/en-us\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"kdb+ and Microsoft Azure | Version 1 (US)","description":"In this blog we demonstrate how easy it is to deploy kdb+ and Microsoft Azure into a cloud platform and to interface it with other technologies Learn more now.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/","og_locale":"en_US","og_type":"article","og_title":"kdb+ and Microsoft Azure | Version 1 (US)","og_description":"In this blog we demonstrate how easy it is to deploy kdb+ and Microsoft Azure into a cloud platform and to interface it with other technologies Learn more now.","og_url":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/","og_site_name":"Version 1 (US)","article_published_time":"2020-04-15T11:18:37+00:00","og_image":[{"width":626,"height":417,"url":"https:\/\/www.version1.com\/en-us\/wp-content\/uploads\/2020\/04\/Oracle-Cloud-Financials.jpg.webp","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/#article","isPartOf":{"@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/"},"author":{"name":"","@id":""},"headline":"kdb+ and Microsoft Azure","datePublished":"2020-04-15T11:18:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/"},"wordCount":1113,"publisher":{"@id":"https:\/\/www.version1.com\/en-us\/#organization"},"image":{"@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/#primaryimage"},"thumbnailUrl":"https:\/\/www.version1.com\/en-us\/wp-content\/uploads\/2020\/04\/Oracle-Cloud-Financials.jpg.webp","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/","url":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/","name":"kdb+ and Microsoft Azure | Version 1 (US)","isPartOf":{"@id":"https:\/\/www.version1.com\/en-us\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/#primaryimage"},"image":{"@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/#primaryimage"},"thumbnailUrl":"https:\/\/www.version1.com\/en-us\/wp-content\/uploads\/2020\/04\/Oracle-Cloud-Financials.jpg.webp","datePublished":"2020-04-15T11:18:37+00:00","description":"In this blog we demonstrate how easy it is to deploy kdb+ and Microsoft Azure into a cloud platform and to interface it with other technologies Learn more now.","breadcrumb":{"@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/#primaryimage","url":"https:\/\/www.version1.com\/en-us\/wp-content\/uploads\/2020\/04\/Oracle-Cloud-Financials.jpg.webp","contentUrl":"https:\/\/www.version1.com\/en-us\/wp-content\/uploads\/2020\/04\/Oracle-Cloud-Financials.jpg.webp","width":626,"height":417,"caption":"Woman at desk with laptop and printouts"},{"@type":"BreadcrumbList","@id":"https:\/\/www.version1.com\/en-us\/blog\/kdb-and-microsoft-azure\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.version1.com\/en-us\/"},{"@type":"ListItem","position":2,"name":"kdb+ and Microsoft Azure"}]},{"@type":"WebSite","@id":"https:\/\/www.version1.com\/en-us\/#website","url":"https:\/\/www.version1.com\/en-us\/","name":"Version 1","description":"","publisher":{"@id":"https:\/\/www.version1.com\/en-us\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.version1.com\/en-us\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.version1.com\/en-us\/#organization","name":"Version 1","url":"https:\/\/www.version1.com\/en-us\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.version1.com\/en-us\/#\/schema\/logo\/image\/","url":"https:\/\/www.version1.com\/wp-content\/uploads\/2026\/05\/cropped-cropped-Favicon-2.png","contentUrl":"https:\/\/www.version1.com\/wp-content\/uploads\/2026\/05\/cropped-cropped-Favicon-2.png","width":512,"height":512,"caption":"Version 1"},"image":{"@id":"https:\/\/www.version1.com\/en-us\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/posts\/7338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/comments?post=7338"}],"version-history":[{"count":0,"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/posts\/7338\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/media\/7339"}],"wp:attachment":[{"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/media?parent=7338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/categories?post=7338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/tags?post=7338"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.version1.com\/en-us\/wp-json\/wp\/v2\/industry?post=7338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}