{"id":52202,"date":"2025-08-08T00:00:00","date_gmt":"2025-08-08T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/"},"modified":"2025-08-08T00:00:00","modified_gmt":"2025-08-08T07:00:00","slug":"griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways","status":"publish","type":"post","link":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/","title":{"rendered":"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!)"},"content":{"rendered":"<p>If you are thinking about switching to the <a href=\"https:\/\/azuremarketplace.microsoft.com\/en-us\/marketplace\/apps\/2812187.griddb_cloud_payasyougo?tab=overview\">GridDB Cloud Azure Marketplace instance<\/a>, first, you can read about how to do that here: <a href=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-azure-marketplace\/\">GridDB Cloud on Microsoft Azure Marketplace<\/a>. Second, you may be worried about how you may transfer your existing data from your <a href=\"https:\/\/form.ict-toshiba.jp\/download_form_griddb_cloud_freeplan_e?utm_source=griddbnet&amp;utm_medium=blog-migration\">GridDB Free Plan<\/a>, from your local GridDB CE instance, or even from Postgresql.<\/p>\n<p>Here are the distinct sections:<\/p>\n<ul>\n<li><a href=\"#migrating-from-griddb-free-plan\">Migrating from GridDB Free Plan<\/a><\/li>\n<li><a href=\"#migrating-from-postgresql\">Migrating From PostgreSQL<\/a><\/li>\n<li><a href=\"#migrating-from-griddb-ce\">Migrating From GridDB CE<\/a><\/li>\n<\/ul>\n<p>In this blog, we will walkthrough the migration process of moving your data from a GridDB Free Plan, a third party database (postgresql in this case), and a local GridDB CE instance. The process is different for each one, so let&#8217;s go through them 1-by-1.<\/p>\n<h2><a name=\"migrating-from-griddb-free-plan\">Migrating from GridDB Free Plan<\/a><\/h2>\n<p>First of all, if you are unsure what the GridDB Free Plan is, you can look here: <a href=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-quick-start-guide\/\">GridDB Cloud Quick Start Guide<\/a><\/p>\n<p>This is by far the easiest method of conducting a full-scale migration. The high level overview is that the TDSL (Toshiba Digital Solution) support team will handle everything for you.<\/p>\n<h3>TDSL Support<\/h3>\n<p>When you sign up for the GridDB Pay As You Go plan, as part of the onboarding process, you will receive an email with the template you will need to use when contacting support for various functions, including data migration! So, grab your pertinent information (contract ID, GridDB ID, etc) and the template and let&#8217;s send an email.<\/p>\n<p>Compose an email to <code>tdsl-ms-support AT toshiba-sol.co.jp<\/code> with the following template<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">Contract ID: [your id]\nGridDB ID: [your id]\nName: Israel Imru\nE-mail: imru@fixstars.com\nInquiry Details: I would like to migrate from my GridDB Free Plan Instance to my GridDB pay as you go plan\nOccurrence Date:  --\nCollected Information:  --<\/code><\/pre>\n<\/div>\n<p>The team will usually respond within one business day to confirm your operation and with further instructions. For me, they sent me the following:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">Please perform the following operations in the management GUI of the source system.\nAfter completing the operations, inform us of the date and time when the operations were performed.\n\n1. Log in to the management GUI.\n\n2. From the menu on the left side of the screen, click [Query].\n\n3. Enter the following query in the [QUERY EDITOR]: SELECT 2012\n\n4. Click the [Execute] button\n\nBest regards,\n\nToshiba Managed Services Support Desk<\/code><\/pre>\n<\/div>\n<p>Once I ran the query they asked me, I clicked on query history, and copied the timestamp and sent that over to them. That was all they needed &#8212; armed with this information, they told me to wait 1-2 business days and they would seamlessly migrate my instance along with an estimated time slot when the migration would be completed.<\/p>\n<p>Once it was done, all of my data, including the IP Whitelist and my Portal Users were all copied over to my pay as you go plan. Cool!<\/p>\n<h2><a name=\"migrating-from-postgresql\">Migrating from PostgreSQL <\/a><\/h2>\n<p>There is no official way of doing conducting this sort of migration, so for now, we can try simply exporting our tables into CSV files and then importing those files individually into our Cloud instance. Luckily with the <a href=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\">GridDB Cloud CLI tool<\/a> this process is much easier than ever before.<\/p>\n<p>So let&#8217;s first export our data and go from there.<\/p>\n<h3>Exporting PostgreSQL Data<\/h3>\n<p>First, the dataset I&#8217;m working with here is simply dummy data I ingested using a python script. Here&#8217;s the script:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-python\">import psycopg2\nimport psycopg2.extras\nfrom faker import Faker\nimport random\nimport time\n\n# --- YOUR DATABASE CONNECTION DETAILS ---\n# Replace with your actual database credentials\nDB_NAME = \"template1\"\nDB_USER = \"postgres\"\nDB_PASSWORD = \"yourpassword\"\nDB_HOST = \"localhost\"  # Or your DB host\nDB_PORT = \"5432\"       # Default PostgreSQL port\n\n# --- DATA GENERATION SETTINGS ---\nNUM_RECORDS = 50000\n\n# Initialize Faker\nfake = Faker()\n\n# Generate a list of fake records\nprint(f\"Generating {NUM_RECORDS} fake records...\")\nrecords_to_insert = []\nfor _ in range(NUM_RECORDS):\n    name = fake.catch_phrase()  # Using a more specific Faker provider\n    quantity = random.randint(1, 1000)\n    price = round(random.uniform(0.50, 500.00), 2)\n    records_to_insert.append((name, quantity, price))\nprint(\"Finished generating records.\")\n\n\n# SQL statements\ncreate_table_query = \"\"\"\nCREATE TABLE IF NOT EXISTS sample_data (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(255) NOT NULL,\n    quantity INTEGER,\n    price REAL\n);\n\"\"\"\n\n# Using execute_batch is much more efficient for large inserts\ninsert_query = \"INSERT INTO sample_data (name, quantity, price) VALUES %s;\"\n\nconn = None\ntry:\n    # Establish a connection to the database\n    conn = psycopg2.connect(\n        dbname=DB_NAME,\n        user=DB_USER,\n        password=DB_PASSWORD,\n        host=DB_HOST,\n        port=DB_PORT\n    )\n\n    # Create a cursor\n    cur = conn.cursor()\n\n    # Create the table if it doesn't exist\n    print(\"Ensuring 'sample_data' table exists...\")\n    cur.execute(create_table_query)\n\n    # Optional: Clean the table before inserting new data\n    print(\"Clearing existing data from the table...\")\n    cur.execute(\"TRUNCATE TABLE sample_data RESTART IDENTITY;\")\n\n    # Start the timer\n    start_time = time.time()\n\n    print(f\"Executing bulk insert of {len(records_to_insert)} records...\")\n    psycopg2.extras.execute_values(\n        cur,\n        insert_query,\n        records_to_insert,\n        template=None,\n        page_size=1000  # The number of rows to send in each batch\n    )\n    print(\"Bulk insert complete.\")\n\n    # Commit the changes to the database\n    conn.commit()\n\n    # Stop the timer\n    end_time = time.time()\n    duration = end_time - start_time\n\n    print(f\"Successfully inserted {cur.rowcount} rows in {duration:.2f} seconds.\")\n\n    # Close the cursor\n    cur.close()\n\nexcept (Exception, psycopg2.DatabaseError) as error:\n    print(f\"Error while connecting to or working with PostgreSQL: {error}\")\n    if conn:\n        conn.rollback()  # Roll back the transaction on error\n\nfinally:\n    # Close the connection if it was established\n    if conn is not None:\n        conn.close()\n        print(\"Database connection closed.\")<\/code><\/pre>\n<\/div>\n<p>Once you run this script, you will have 50k rows in your PSQL instance. Now let&#8217;s export this to CSV:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ psql --host 127.0.0.1 --username postgres --password --dbname template1\n\npsql (14.18 (Ubuntu 14.18-0ubuntu0.22.04.1))\nSSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)\nType \"help\" for help.\n\ntemplate1=# select COUNT(*) from sample_data;\n count \n-------\n 50000\n(1 row)\n\ntemplate1=# COPY sample_data TO '\/tmp\/sample.csv' WITH (FORMAT CSV, HEADER);\nCOPY 50000\ntemplate1=# q<\/code><\/pre>\n<\/div>\n<p>And now that we have our CSV data, let&#8217;s install the CLI Tool and ingest it.<\/p>\n<h3>Ingesting CSV Data into GridDB Cloud<\/h3>\n<p>You can download the latest CLI Tool from the Github releases page: <a href=\"https:\/\/github.com\/Imisrael\/griddb-cloud-cli\/releases\">https:\/\/github.com\/Imisrael\/griddb-cloud-cli\/releases<\/a>. For me, I installed the <code>.deb<\/code> file<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ wget https:\/\/github.com\/Imisrael\/griddb-cloud-cli\/releases\/download\/v0.1.4\/griddb-cloud-cli_0.1.4_linux_amd64.deb\n$ sudo dpkg -i griddb-cloud-cli_0.1.4_linux_amd64.deb\n$ vim ~\/.griddb.yaml<\/code><\/pre>\n<\/div>\n<p>And enter your credentials:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">cloud_url: \"https:\/\/cloud97.griddb.com:443\/griddb\/v2\/gs_clustermfclo7\/dbs\/ZQ8\"\ncloud_username: \"kG-israel\"\ncloud_pass: \"password\"<\/code><\/pre>\n<\/div>\n<p>And ingest:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli ingest \/tmp\/sample.csv\n\n\u2714 Does this container already exist? \u2026 NO\nUse CSV Header names as your GridDB Container Col names? \nid,name,quantity,price\n\u2714 Y\/n \u2026 YES\n\u2714 Container Name: \u2026 migrated_data\n\u2714 Choose: \u2026 COLLECTION\n\u2714 Row Key? \u2026 true\n\u2714 (id) Column Type \u2026 INTEGER\n\u2714 Column Index Type1 \u2026 TREE\n\u2714 (name) Column Type \u2026 STRING\n\u2714 (quantity) Column Type \u2026 INTEGER\n\u2714 (price) Column Type \u2026 FLOAT\n\u2714 Make Container? \n{\n    \"container_name\": \"migrated_data\",\n    \"container_type\": \"COLLECTION\",\n    \"rowkey\": true,\n    \"columns\": [\n        {\n            \"name\": \"id\",\n            \"type\": \"INTEGER\",\n            \"index\": [\n                \"TREE\"\n            ]\n        },\n        {\n            \"name\": \"name\",\n            \"type\": \"STRING\",\n            \"index\": null\n        },\n        {\n            \"name\": \"quantity\",\n            \"type\": \"INTEGER\",\n            \"index\": null\n        },\n        {\n            \"name\": \"price\",\n            \"type\": \"FLOAT\",\n            \"index\": null\n        }\n    ]\n} \u2026 YES\n{\"container_name\":\"migrated_data\",\"container_type\":\"COLLECTION\",\"rowkey\":true,\"columns\":[{\"name\":\"id\",\"type\":\"INTEGER\",\"index\":[\"TREE\"]},{\"name\":\"name\",\"type\":\"STRING\",\"index\":null},{\"name\":\"quantity\",\"type\":\"INTEGER\",\"index\":null},{\"name\":\"price\",\"type\":\"FLOAT\",\"index\":null}]}\n201 Created\nContainer Created. Starting Ingest\n0 id id\n1 name name\n2 quantity quantity\n3 price price\n\u2714 Is the above mapping correct? \u2026 YES\nIngesting. Please wait...\nInserting 1000 rows\n200 OK\nInserting 1000 rows\n200 OK<\/code><\/pre>\n<\/div>\n<p>And after some time, your data should be ready in your GridDB Cloud instance!<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli sql query -s \"SELECT COUNT(*) from migrated_data\"\n\n[{\"stmt\": \"SELECT COUNT(*) from migrated_data\" }]\n[[{\"Name\":\"\",\"Type\":\"LONG\",\"Value\":50000}]]<\/code><\/pre>\n<\/div>\n<p>And another confirmation<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli read migrated_data -p -l 1\n[ { \"name\": \"migrated_data\", \"stmt\": \"select * limit 1\", \"columns\": null, \"hasPartialExecution\": true }]\n[\n  [\n    {\n      \"Name\": \"id\",\n      \"Type\": \"INTEGER\",\n      \"Value\": 1\n    },\n    {\n      \"Name\": \"name\",\n      \"Type\": \"STRING\",\n      \"Value\": \"Enterprise-wide multi-state installation\"\n    },\n    {\n      \"Name\": \"quantity\",\n      \"Type\": \"INTEGER\",\n      \"Value\": 479\n    },\n    {\n      \"Name\": \"price\",\n      \"Type\": \"FLOAT\",\n      \"Value\": 194.8\n    }\n  ]\n]<\/code><\/pre>\n<\/div>\n<h2><a name=\"migrating-from-griddb-ce\">Migrating from GridDB CE<\/a><\/h2>\n<p>If you want to move all of your local data from GridDB Community Edition over to your GridDB Pay As You Go cloud database, you can now use the <a href=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\">GridDB Cloud CLI Tool<\/a> for the job! You will also of course need to export your CE containers that you wish to migrate.<\/p>\n<h3>Prereqs<\/h3>\n<p>As explained above, you will need: the <a href=\"https:\/\/github.com\/Imisrael\/griddb-cloud-cli\">GridDB Cloud CLI Tool from GitHub<\/a> and the <a href=\"https:\/\/github.com\/griddb\/expimp\">GridDB CE Import\/Export Tool<\/a> installed onto your machine.<\/p>\n<h3>Step by Step Process of Migrating<\/h3>\n<p>Let&#8217;s run through an example of exporting out entier GridDB CE Database and then running the migration from the CLI tool. This is going to assume you have the Import tool already set up, you can read more about that here: <a href=\"https:\/\/griddb.net\/en\/blog\/using-the-griddb-import-export-tools-to-migrate-from-postgresql-to-griddb\/\">https:\/\/griddb.net\/en\/blog\/using-the-griddb-import-export-tools-to-migrate-from-postgresql-to-griddb\/<\/a><\/p>\n<ol>\n<li>First, you&#8217;d run the export tool like so: <\/li>\n<\/ol>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ cd expimp\/bin\n$ .\/gs_export -u admin\/admin -d all --all <\/code><\/pre>\n<\/div>\n<p>This command will export all of your containers into a directory called &#8216;all&#8217;.<\/p>\n<pre><code>$ .\/gs_export -u admin\/admin -d all --all \nExport Start.\nDirectory       : \/home\/israel\/development\/expimp\/bin\/all\nNumber of target containers : 7\n\npublic.p01 : 2\npublic.p02 : 0\npublic.p03 : 0\npublic.device3 : 1015\npublic.device2 : 1092\npublic.device1 : 1944\npublic.col02 : 10000\n\nNumber of target containers:7 ( Success:7  Failure:0 )\nExport Completed.\n<\/code><\/pre>\n<ol>\n<li>Next, ensure your GridDB Cloud CLI Tool is set up, and once it is, you can run the migrate command. Let&#8217;s look at how it works: <\/li>\n<\/ol>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli migrate -h<\/code><\/pre>\n<\/div>\n<pre><code>Use the export tool on your GridDB CE Instance to create the dir output of csv files and a properties file and then migrate those tables to GridDB Cloud\n\nUsage:\ngriddb-cloud-cli migrate [flags]\n\nExamples:\ngriddb-cloud-cli migrate &lt;directory&gt;\n\nFlags:\n-f, --force   Force create (no prompt)\n-h, --help    help for migrate\n<\/code><\/pre>\n<p>So in our case, we want to use migrate with the <code>-f<\/code> flag to not show us prompts because we have 7 containers to create and migrate!<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli migrate -f all<\/code><\/pre>\n<\/div>\n<p>And here is an example of some of the output:<\/p>\n<pre><code>{\"container_name\":\"device2\",\"container_type\":\"TIME_SERIES\",\"rowkey\":true,\"columns\":[{\"name\":\"ts\",\"type\":\"TIMESTAMP\",\"index\":null},{\"name\":\"co\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"humidity\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"light\",\"type\":\"BOOL\",\"index\":null},{\"name\":\"lpg\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"motion\",\"type\":\"BOOL\",\"index\":null},{\"name\":\"smoke\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"temp\",\"type\":\"DOUBLE\",\"index\":null}]}\n201 Created\ninserting into (device2). csv: all\/public.device2_2020-07-12_2020-07-13.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-13_2020-07-14.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-14_2020-07-15.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-15_2020-07-16.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-16_2020-07-17.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-17_2020-07-18.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-18_2020-07-19.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-19_2020-07-20.csv\n200 OK\ninserting into (device2). csv: all\/public.device2_2020-07-20_2020-07-21.csv\n200 OK\n{\"container_name\":\"device3\",\"container_type\":\"TIME_SERIES\",\"rowkey\":true,\"columns\":[{\"name\":\"ts\",\"type\":\"TIMESTAMP\",\"index\":null},{\"name\":\"co\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"humidity\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"light\",\"type\":\"BOOL\",\"index\":null},{\"name\":\"lpg\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"motion\",\"type\":\"BOOL\",\"index\":null},{\"name\":\"smoke\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"temp\",\"type\":\"DOUBLE\",\"index\":null}]}\n201 Created\ninserting into (device3). csv: all\/public.device3_2020-07-12_2020-07-13.csv\n200 OK\ninserting into (device3). csv: all\/public.device3_2020-07-13_2020-07-14.csv\n200 OK\ninserting into (device3). csv: all\/public.device3_2020-07-14_2020-07-15.csv\n200 OK\ninserting into (device3). csv: all\/public.device3_2020-07-15_2020-07-16.csv\n200 OK\ninserting into (device3). csv: all\/public.device3_2020-07-16_2020-07-17.csv\n200 OK\ninserting into (device3). csv: all\/public.device3_2020-07-17_2020-07-18.csv\n200 OK\ninserting into (device3). csv: all\/public.device3_2020-07-18_2020-07-19.csv\n200 OK\ninserting into (device3). csv: all\/public.device3_2020-07-19_2020-07-20.csv\n200 OK\n{\"container_name\":\"p01\",\"container_type\":\"COLLECTION\",\"rowkey\":true,\"columns\":[{\"name\":\"name\",\"type\":\"STRING\",\"index\":null},{\"name\":\"names\",\"type\":\"STRING_ARRAY\",\"index\":null},{\"name\":\"barr\",\"type\":\"BOOL_ARRAY\",\"index\":null},{\"name\":\"tsarr\",\"type\":\"TIMESTAMP_ARRAY\",\"index\":null}]}\n201 Created\n{\"container_name\":\"p02\",\"container_type\":\"COLLECTION\",\"rowkey\":true,\"columns\":[{\"name\":\"id\",\"type\":\"STRING\",\"index\":null},{\"name\":\"date\",\"type\":\"STRING\",\"index\":null}]}\n201 Created\n{\"container_name\":\"p03\",\"container_type\":\"COLLECTION\",\"rowkey\":true,\"columns\":[{\"name\":\"id\",\"type\":\"LONG\",\"index\":null},{\"name\":\"c1\",\"type\":\"STRING\",\"index\":null},{\"name\":\"c2\",\"type\":\"BOOL\",\"index\":null}]}\n201 Created\ninserting into (p01). csv: all\/public.p01.csv\n200 OK\n<\/code><\/pre>\n<p>Lastly we can verify that our containers are in there:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli show device3<\/code><\/pre>\n<\/div>\n<pre><code>{\n    \"container_name\": \"device3\",\n    \"container_type\": \"TIME_SERIES\",\n    \"rowkey\": true,\n    \"columns\": [\n        {\n            \"name\": \"ts\",\n            \"type\": \"TIMESTAMP\",\n            \"timePrecision\": \"MILLISECOND\",\n            \"index\": []\n        },\n        {\n            \"name\": \"co\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        },\n        {\n            \"name\": \"humidity\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        },\n        {\n            \"name\": \"light\",\n            \"type\": \"BOOL\",\n            \"index\": []\n        },\n        {\n            \"name\": \"lpg\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        },\n        {\n            \"name\": \"motion\",\n            \"type\": \"BOOL\",\n            \"index\": []\n        },\n        {\n            \"name\": \"smoke\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        },\n        {\n            \"name\": \"temp\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        }\n    ]\n}\n<\/code><\/pre>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli sql query -s \"SELECT COUNT(*) FROM device2\"<\/code><\/pre>\n<\/div>\n<pre><code>[{\"stmt\": \"SELECT COUNT(*) FROM device2\" }]\n[[{\"Name\":\"\",\"Type\":\"LONG\",\"Value\":1092}]]\n<\/code><\/pre>\n<p>Looks good to me!<\/p>\n<h2>Conclusion<\/h2>\n<p>And with that, we have learned three different methods of migrating from a variation of GridDB to the new Azure Marketplace GridDB Instance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you are thinking about switching to the GridDB Cloud Azure Marketplace instance, first, you can read about how to do that here: GridDB Cloud on Microsoft Azure Marketplace. Second, you may be worried about how you may transfer your existing data from your GridDB Free Plan, from your local GridDB CE instance, or even [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":52203,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-52202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!) | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"If you are thinking about switching to the GridDB Cloud Azure Marketplace instance, first, you can read about how to do that here: GridDB Cloud on\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!) | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"If you are thinking about switching to the GridDB Cloud Azure Marketplace instance, first, you can read about how to do that here: GridDB Cloud on\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-08T07:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/griddb.net\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Israel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Israel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/\"},\"author\":{\"name\":\"Israel\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\"},\"headline\":\"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!)\",\"datePublished\":\"2025-08-08T07:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/\"},\"wordCount\":804,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/\",\"url\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/\",\"name\":\"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!) | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp\",\"datePublished\":\"2025-08-08T07:00:00+00:00\",\"description\":\"If you are thinking about switching to the GridDB Cloud Azure Marketplace instance, first, you can read about how to do that here: GridDB Cloud on\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp\",\"contentUrl\":\"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp\",\"width\":1536,\"height\":1024},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\",\"name\":\"Israel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"caption\":\"Israel\"},\"url\":\"https:\/\/griddb.net\/en\/author\/israel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!) | GridDB: Open Source Time Series Database for IoT","description":"If you are thinking about switching to the GridDB Cloud Azure Marketplace instance, first, you can read about how to do that here: GridDB Cloud on","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:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/","og_locale":"en_US","og_type":"article","og_title":"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!) | GridDB: Open Source Time Series Database for IoT","og_description":"If you are thinking about switching to the GridDB Cloud Azure Marketplace instance, first, you can read about how to do that here: GridDB Cloud on","og_url":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2025-08-08T07:00:00+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/griddb.net\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp","type":"image\/webp"}],"author":"Israel","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"Israel","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#article","isPartOf":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/"},"author":{"name":"Israel","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740"},"headline":"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!)","datePublished":"2025-08-08T07:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/"},"wordCount":804,"commentCount":0,"publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/","url":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/","name":"GridDB Cloud on Azure Marketplace: How To Migrate (3 Ways!) | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp","datePublished":"2025-08-08T07:00:00+00:00","description":"If you are thinking about switching to the GridDB Cloud Azure Marketplace instance, first, you can read about how to do that here: GridDB Cloud on","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-on-azure-marketplace-how-to-migrate-3-ways\/#primaryimage","url":"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp","contentUrl":"\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Aug-8-2025-07_20_36-AM.webp","width":1536,"height":1024},{"@type":"WebSite","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization","name":"Fixstars","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740","name":"Israel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","caption":"Israel"},"url":"https:\/\/griddb.net\/en\/author\/israel\/"}]}},"_links":{"self":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/52202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/comments?post=52202"}],"version-history":[{"count":0,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/52202\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media\/52203"}],"wp:attachment":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media?parent=52202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/categories?post=52202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/tags?post=52202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}