{"id":21362,"date":"2020-06-05T12:59:47","date_gmt":"2020-06-05T12:59:47","guid":{"rendered":"https:\/\/intentwise.com\/blog\/?p=21362"},"modified":"2024-02-06T06:57:18","modified_gmt":"2024-02-06T14:57:18","slug":"dblink-ensuring-data-consistency","status":"publish","type":"post","link":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/","title":{"rendered":"Ensure Data Consistency Between Databases with dblink","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"21362\" class=\"elementor elementor-21362\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2f48cf51 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2f48cf51\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f9f305d\" data-id=\"f9f305d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-64c9d72c elementor-widget elementor-widget-text-editor\" data-id=\"64c9d72c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One of the challenges of dealing with Big Data is to ensure data consistency across data sources. When working with Big Data, most platforms would likely be working across multiple databases, and, as anyone dealing with replication across data sources knows, there are several challenges involved in the replication. Consequently, verifying consistency is very important.<\/p><p>We at <a href=\"https:\/\/www.intentwise.com\/\">Intentwise<\/a> have a use case where we replicate data from Postgres to Redshift to run complex analytical queries on Redshift. This replication happens multiple times a day and it is thus very important to maintain consistency between databases.<\/p><h2>How do we verify data is consistent?<\/h2><p>There are many ways in which data consistency can be verified &#8212; we use dblink between Postgres and Redshift to ensure data consistency.<\/p><p><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-21391 size-large aligncenter\" src=\"https:\/\/intentwise.com\/blog\/wp-content\/uploads\/2020\/05\/dblink1-1030x538.png\" alt=\"Postgres dblink Redshift\" width=\"1030\" height=\"538\" data-wp-editing=\"1\" \/><\/p><h2>Setup dblink in Postgres<\/h2><p>Connect to Postgres and run the following SQL code, replacing the &lt;placeholders&gt; with the values from your own instances:<\/p><pre>CREATE EXTENSION postgres_fdw;\nCREATE EXTENSION dblink;\nCREATE SERVER foreign_server\nFOREIGN DATA WRAPPER postgres_fdw\nOPTIONS (host '', port '', dbname '', sslmode 'require');\nCREATE USER MAPPING FOR\nSERVER foreign_server\nOPTIONS (user '', password '');\n\n<\/pre><p>You can also refer to <a href=\"https:\/\/www.postgresql.org\/docs\/11\/contrib-dblink-function.html\">dblink<\/a> in PostgresSQL documentation.<\/p><p>Once the dblink is set up, you will be able to query Redshift tables from Postgres.<\/p><h2>Verify data between databases<\/h2><p>Consider the two example tables below:<\/p><p>Postgres Campaign table<\/p><table style=\"height: 69px;\" width=\"625\"><tbody><tr><td width=\"158\">name<\/td><td width=\"158\">campaign_id<\/td><td width=\"158\">budget<\/td><td width=\"158\">status<\/td><\/tr><tr><td width=\"158\">Toy<\/td><td width=\"158\">12345678<\/td><td width=\"158\">500<\/td><td width=\"158\">enabled<\/td><\/tr><tr><td width=\"158\">Toys for 6<\/td><td width=\"158\">67779701<\/td><td width=\"158\">300<\/td><td width=\"158\">paused<\/td><\/tr><tr><td width=\"158\"><strong>Toys for 8<\/strong><\/td><td width=\"158\"><strong>12312355<\/strong><\/td><td width=\"158\"><strong>100<\/strong><\/td><td width=\"158\"><strong>archived<\/strong><\/td><\/tr><\/tbody><\/table><p>Redshift Campaign table<\/p><table width=\"632\"><tbody><tr><td width=\"158\">name<\/td><td width=\"158\">campaign_id<\/td><td width=\"158\">budget<\/td><td width=\"158\">status<\/td><\/tr><tr><td width=\"158\">Toy<\/td><td width=\"158\">12345678<\/td><td width=\"158\">500<\/td><td width=\"158\">enabled<\/td><\/tr><tr><td width=\"158\">Toys for 6<\/td><td width=\"158\">67779701<\/td><td width=\"158\">300<\/td><td width=\"158\">paused<\/td><\/tr><\/tbody><\/table><p>If you compare the two campaign tables above, you would see that Campaign Row \u201c<strong>Toys for 8<\/strong>\u201d is missing in Redshift.<\/p><h2>How do we verify this with dblink?<\/h2><p>We have written a program in Java and deployed it as AWS Serverless Lambda functions. Serverless lambdas are a great way to deploy standalone programs like these. Lambdas can be invoked with a scheduler like CloudWatch or even by posting an event; \u2018N\u2019 number of Lambda can run in parallel.<\/p><h4><strong>Query to verify the discrepancy<\/strong><\/h4><p>There are many ways the data between two tables can be verified. One of the ways is to use <strong>except <\/strong>operator \u00a0as shown below:<\/p><pre><span class=\"hljs-keyword\">select<\/span>\n   <span class=\"hljs-keyword\">name<\/span>,\n   campaign_id,\n   budget,\n   <span class=\"hljs-keyword\">status<\/span> \n<span class=\"hljs-keyword\">from<\/span>\n   campaign_postgres <span class=\"hljs-keyword\">except<\/span> all \n   <span class=\"hljs-keyword\">select<\/span>\n      <span class=\"hljs-keyword\">name<\/span>,\n      campaign_id,\n      budget,\n      <span class=\"hljs-keyword\">status<\/span> \n   <span class=\"hljs-keyword\">from<\/span>\n      dblink(<span class=\"hljs-string\">'foreign_server'<\/span>, $ REDSHIFT $ \n      <span class=\"hljs-keyword\">select<\/span>\n         <span class=\"hljs-keyword\">name<\/span>, campaign_id, budget, <span class=\"hljs-keyword\">status<\/span> \n      <span class=\"hljs-keyword\">from<\/span>\n         campaign_redshift $ REDSHIFT $ ) <span class=\"hljs-keyword\">as<\/span> T(<span class=\"hljs-keyword\">name<\/span> <span class=\"hljs-built_in\">VARCHAR<\/span>, campaign_id <span class=\"hljs-built_in\">BIGINT<\/span>, budget <span class=\"hljs-built_in\">decimal<\/span>, state <span class=\"hljs-built_in\">VARCHAR<\/span>)\n\n<\/pre><p>In the above query<\/p><ul><li>The dblink function accepts the server connection (\u2018foreign_server\u2019) that was created in the previous step.<\/li><li>The SQL query is passed in as a string between double dollar quotes ($REDSHIFT$). This piece of the query will be executed in Redshift and the data would be returned back to Postgres.<\/li><li>When using dblink with Redshift we need to define the datatypes of Resultset which is defined after T in the above query.<\/li><\/ul><p>The above query would return the following result:<\/p><table width=\"632\"><tbody><tr><td width=\"158\">name<\/td><td width=\"158\">campaign_id<\/td><td width=\"158\">budget<\/td><td width=\"158\">status<\/td><\/tr><tr><td width=\"158\">Toys for 8<\/td><td width=\"158\">12312355<\/td><td width=\"158\">100<\/td><td width=\"158\">archived<\/td><\/tr><\/tbody><\/table><p>This tells us that \u201cToys for 8\u201d exists in Postgres but not in Redshift.\u00a0 If even one of the values which is being compared is different we would be able to surface that with the above query.<\/p><h2>Conclusion<\/h2><p>Dblink is a good way to verify consistency between different databases.\u00a0Everything around Intentwise runs around data and our customers rely on data for doing analysis and taking important decisions, so we at Intentwise take any data discrepancy seriously and this is one of the many things we do to ensure data consistency.<\/p><h2>References<\/h2><p><a href=\"https:\/\/aws.amazon.com\/blogs\/big-data\/join-amazon-redshift-and-amazon-rds-postgresql-with-dblink\/\">AWS blog<\/a> on using dblink<\/p><p><a href=\"https:\/\/www.intentwise.com\/blog\/technology\/database-migration\/\">Intentwise&#8217;s post on database migration using DMS reference<\/a><\/p><p><em>Read our post &#8220;<a href=\"https:\/\/www.intentwise.com\/blog\/technology\/database-connection-tools\/\">Database Connection Tools<\/a>&#8221; for a list of the best tools to connect to a database.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>One of the challenges of dealing with Big Data is to ensure data consistency across data sources. When working with Big Data, most platforms would likely be working across multiple databases, and, as anyone dealing with replication across data sources knows, there are several challenges involved in the replication. Consequently, verifying consistency is very important. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":3,"featured_media":25562,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","cybocfi_hide_featured_image":"yes","footnotes":""},"categories":[10],"tags":[24,48,49,50,51,52],"class_list":["post-21362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-amazon-advertising-optimization","tag-data-consistency","tag-dblink","tag-intentwise","tag-postgres","tag-redshift"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Keep Data Consistent Across Databases with dblink<\/title>\n<meta name=\"description\" content=\"When you aggregate data across multiple platforms, key details can get lost in translation. Here&#039;s how Intentwise ensures consistency.\" \/>\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.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ensure Data Consistency Between Databases with dblink\" \/>\n<meta property=\"og:description\" content=\"When you aggregate data across multiple platforms, key details can get lost in translation. Here&#039;s how Intentwise ensures consistency.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/\" \/>\n<meta property=\"og:site_name\" content=\"Intentwise Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-05T12:59:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-06T14:57:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2020\/06\/blog-post-11.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Raghavendra Seshadri\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raghavendra Seshadri\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/\"},\"author\":{\"name\":\"Raghavendra Seshadri\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/person\\\/96e865b4ad1ec3b6b640ba341d19e388\"},\"headline\":\"Ensure Data Consistency Between Databases with dblink\",\"datePublished\":\"2020-06-05T12:59:47+00:00\",\"dateModified\":\"2024-02-06T14:57:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/\"},\"wordCount\":540,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/blog-post-11.jpg\",\"keywords\":[\"Amazon Advertising Optimization\",\"Data Consistency\",\"DBLink\",\"Intentwise\",\"Postgres\",\"Redshift\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/\",\"name\":\"Keep Data Consistent Across Databases with dblink\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/blog-post-11.jpg\",\"datePublished\":\"2020-06-05T12:59:47+00:00\",\"dateModified\":\"2024-02-06T14:57:18+00:00\",\"description\":\"When you aggregate data across multiple platforms, key details can get lost in translation. Here's how Intentwise ensures consistency.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/technology\\\/dblink-ensuring-data-consistency\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/.\\\/technology\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ensure Data Consistency Between Databases with dblink\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/\",\"name\":\"Intentwise Blog\",\"description\":\"Amazon Analytics &amp; Advertising Software\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#organization\",\"name\":\"Intentwise\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/favicon256.png\",\"contentUrl\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/favicon256.png\",\"width\":256,\"height\":256,\"caption\":\"Intentwise\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/#\\\/schema\\\/person\\\/96e865b4ad1ec3b6b640ba341d19e388\",\"name\":\"Raghavendra Seshadri\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a-\\\/AOh14GhWjZROQ9t-qCO1cnfksF9F6n_juJ0WogmdBlOzfg=s96-c\",\"url\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a-\\\/AOh14GhWjZROQ9t-qCO1cnfksF9F6n_juJ0WogmdBlOzfg=s96-c\",\"contentUrl\":\"https:\\\/\\\/lh3.googleusercontent.com\\\/a-\\\/AOh14GhWjZROQ9t-qCO1cnfksF9F6n_juJ0WogmdBlOzfg=s96-c\",\"caption\":\"Raghavendra Seshadri\"},\"description\":\"I am a software architect at Intentwise.\",\"url\":\"https:\\\/\\\/www.intentwise.com\\\/blog\\\/author\\\/raghavendraintentwise-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Keep Data Consistent Across Databases with dblink","description":"When you aggregate data across multiple platforms, key details can get lost in translation. Here's how Intentwise ensures consistency.","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.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/","og_locale":"en_US","og_type":"article","og_title":"Ensure Data Consistency Between Databases with dblink","og_description":"When you aggregate data across multiple platforms, key details can get lost in translation. Here's how Intentwise ensures consistency.","og_url":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/","og_site_name":"Intentwise Blog","article_published_time":"2020-06-05T12:59:47+00:00","article_modified_time":"2024-02-06T14:57:18+00:00","og_image":[{"width":1400,"height":800,"url":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2020\/06\/blog-post-11.jpg","type":"image\/jpeg"}],"author":"Raghavendra Seshadri","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Raghavendra Seshadri","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/#article","isPartOf":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/"},"author":{"name":"Raghavendra Seshadri","@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/person\/96e865b4ad1ec3b6b640ba341d19e388"},"headline":"Ensure Data Consistency Between Databases with dblink","datePublished":"2020-06-05T12:59:47+00:00","dateModified":"2024-02-06T14:57:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/"},"wordCount":540,"commentCount":0,"publisher":{"@id":"https:\/\/www.intentwise.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2020\/06\/blog-post-11.jpg","keywords":["Amazon Advertising Optimization","Data Consistency","DBLink","Intentwise","Postgres","Redshift"],"articleSection":["Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/","url":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/","name":"Keep Data Consistent Across Databases with dblink","isPartOf":{"@id":"https:\/\/www.intentwise.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/#primaryimage"},"image":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2020\/06\/blog-post-11.jpg","datePublished":"2020-06-05T12:59:47+00:00","dateModified":"2024-02-06T14:57:18+00:00","description":"When you aggregate data across multiple platforms, key details can get lost in translation. Here's how Intentwise ensures consistency.","breadcrumb":{"@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.intentwise.com\/blog\/technology\/dblink-ensuring-data-consistency\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Technology","item":"https:\/\/www.intentwise.com\/blog\/.\/technology\/"},{"@type":"ListItem","position":2,"name":"Ensure Data Consistency Between Databases with dblink"}]},{"@type":"WebSite","@id":"https:\/\/www.intentwise.com\/blog\/#website","url":"https:\/\/www.intentwise.com\/blog\/","name":"Intentwise Blog","description":"Amazon Analytics &amp; Advertising Software","publisher":{"@id":"https:\/\/www.intentwise.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intentwise.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intentwise.com\/blog\/#organization","name":"Intentwise","url":"https:\/\/www.intentwise.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2021\/07\/favicon256.png","contentUrl":"https:\/\/www.intentwise.com\/blog\/wp-content\/uploads\/2021\/07\/favicon256.png","width":256,"height":256,"caption":"Intentwise"},"image":{"@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.intentwise.com\/blog\/#\/schema\/person\/96e865b4ad1ec3b6b640ba341d19e388","name":"Raghavendra Seshadri","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lh3.googleusercontent.com\/a-\/AOh14GhWjZROQ9t-qCO1cnfksF9F6n_juJ0WogmdBlOzfg=s96-c","url":"https:\/\/lh3.googleusercontent.com\/a-\/AOh14GhWjZROQ9t-qCO1cnfksF9F6n_juJ0WogmdBlOzfg=s96-c","contentUrl":"https:\/\/lh3.googleusercontent.com\/a-\/AOh14GhWjZROQ9t-qCO1cnfksF9F6n_juJ0WogmdBlOzfg=s96-c","caption":"Raghavendra Seshadri"},"description":"I am a software architect at Intentwise.","url":"https:\/\/www.intentwise.com\/blog\/author\/raghavendraintentwise-com\/"}]}},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/posts\/21362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/comments?post=21362"}],"version-history":[{"count":0,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/posts\/21362\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/media\/25562"}],"wp:attachment":[{"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/media?parent=21362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/categories?post=21362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intentwise.com\/blog\/wp-json\/wp\/v2\/tags?post=21362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}