{"id":14751,"date":"2020-09-30T11:08:27","date_gmt":"2020-09-30T09:08:27","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/"},"modified":"2020-09-30T11:08:27","modified_gmt":"2020-09-30T09:08:27","slug":"getting-started-with-exasol-loading-data-from-postgresql","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/","title":{"rendered":"Getting started with Exasol \u2013 Loading data from PostgreSQL"},"content":{"rendered":"<p>In the <a href=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-setting-up-an-environment\/\" target=\"_blank\" rel=\"noopener noreferrer\">first post of this series<\/a> we brought up an Exasol test system to have something to play with. Because playing without data is a bit boring this post is about loading data from PostgreSQL to Exasol. We&#8217;ll use <a href=\"https:\/\/www.postgresql.org\/docs\/13\/pgbench.html\" target=\"_blank\" rel=\"noopener noreferrer\">pgbench<\/a> on the PostgreSQL side to generate some data and then load that into Exasol.<\/p>\n<p><!--more-->   <\/p>\n<p>Exasol comes with a concept called <a href=\"https:\/\/docs.exasol.com\/database_concepts\/virtual_schemas.htm?Highlight=virtual%20schema\" target=\"_blank\" rel=\"noopener noreferrer\">&#8220;virtual schemas&#8221;<\/a>. If you know PostgreSQL you can compare that to <a href=\"https:\/\/www.postgresql.org\/docs\/13\/ddl-foreign-data.html\" target=\"_blank\" rel=\"noopener noreferrer\">foreign data wrappers<\/a>. The purpose is to access data on foreign systems of any kind and integrate that into the system. The data on the foreign system is accessed through standard SQL commands, very much the same like PostgreSQL is doing it. In contrast to PostgreSQL, Exasol usually uses JDBC to connect to a foreign data source, here is the list of <a href=\"https:\/\/docs.exasol.com\/database_concepts\/virtual_schema\/dialects.htm\" target=\"_blank\" rel=\"noopener noreferrer\">currently supported JDBC dialects<\/a>. You are not limited to one of those, you can well go ahead and combine any of these and centralize your reporting (or whatever you plan to do with the foreign data) into Exasol. There is also a <a href=\"https:\/\/github.com\/exasol\/virtual-schemas\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub project<\/a> which provides additional information around abadapters and virtual schemas.<\/p>\n<p>Before you can connect to an external system you need to install the corresponding JDBC driver but in the case of PostgreSQL the JDBC driver is already there by default. You can check that in the web interface of Exasol:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg\" alt=\"\" width=\"1215\" height=\"540\" class=\"aligncenter size-full wp-image-43744\" \/><\/a>.<\/p>\n<p>We will anyway upload the latest PostgreSQL driver to show the procedure. To upload the latest driver, again go to EXAOperations and locate the drivers tab under software adn press &#8220;Add&#8221;:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-10-08-57-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-10-08-57-1.jpg\" alt=\"\" width=\"1030\" height=\"457\" class=\"aligncenter size-full wp-image-43761\" \/><\/a><br \/>\nAdd the driver details:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-10-41-09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-10-41-09.jpg\" alt=\"\" width=\"935\" height=\"527\" class=\"aligncenter size-full wp-image-43750\" \/><\/a><br \/>\nLocate the driver (can be downloaded from <a href=\"jdbc.postgresql.org\" target=\"_blank\" rel=\"noopener noreferrer\">jdbc.postgresql.org<\/a>) and upload the jar file:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-10-42-42.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-10-42-42.jpg\" alt=\"\" width=\"1282\" height=\"558\" class=\"aligncenter size-full wp-image-43751\" \/><\/a><\/p>\n<p>That&#8217;s it for the driver update.<\/p>\n<p>Before we connect Exasol to PostgreSQL, let&#8217;s prepare the data on the PostgreSQL side:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres=# create user exasol with login password 'exasol';\nCREATE ROLE\npostgres=# create database exasol with owner = exasol;\nCREATE DATABASE\npostgres=# \\! pgbench -i -s 100 -U exasol exasol\ndropping old tables...\ncreating tables...\ngenerating data...\n100000 of 10000000 tuples (1%) done (elapsed 0.07 s, remaining 7.14 s)\n200000 of 10000000 tuples (2%) done (elapsed 0.19 s, remaining 9.21 s)\n...\n10000000 of 10000000 tuples (100%) done (elapsed 17.42 s, remaining 0.00 s)\nvacuuming...\ncreating primary keys...\ndone.\n<\/pre>\n<p>That gives as 10 million rows in the pgbench_accounts table:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres=# \\c exasol exasol\nYou are now connected to database \"exasol\" as user \"exasol\".\nexasol=&gt; select count(*) from pgbench_accounts;\n  count   \n----------\n 10000000\n(1 row)\n<\/pre>\n<p>On the Exasol side, the first thing you need to do is to <a href=\"https:\/\/docs.exasol.com\/sql\/create_connection.htm?Highlight=create%20connection\" target=\"_blank\" rel=\"noopener noreferrer\">create a connection<\/a> (In PostgreSQL that would be the foreign server and the user mapping):<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~\/EXAplus-7.0.0$ .\/exaplus -c 192.168.22.117:8563 -u sys -p exasol\nEXAplus 7.0.0 (c) EXASOL AG\n\nWednesday, September 30, 2020 at 9:49:38 AM Central European Summer Time\nConnected to database EXAone as user sys.\nEXASolution 7.0.2 (c) EXASOL AG\n\nSQL_EXA&gt; CREATE OR REPLACE CONNECTION JDBC_POSTGRESQL\n1    &gt;  TO 'jdbc:postgresql:\/\/192.168.22.11:5433\/exasol'\n2    &gt;  USER 'exasol'\n3    &gt;  IDENTIFIED BY 'exasol';\nEXA: CREATE OR REPLACE CONNECTION JDBC_POSTGRESQL...\n\nRows affected: 0\n<\/pre>\n<p>To test that connection you can simply do:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; IMPORT FROM JDBC AT JDBC_POSTGRESQL STATEMENT ' SELECT ''OK'' ';\nEXA: IMPORT FROM JDBC AT JDBC_POSTGRESQL STATEMENT ' SELECT ''OK'' ';\n\n?column?                                                                                                                                                                                                \n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nOK                                                                                                                                                                                                      \n\n1 row in resultset.\n\nSQL_EXA&gt; \n<\/pre>\n<p>Now is the time to create the virtual schema so we can access the tables on the PostgreSQL side via plan SQL. Before we can do that we need to deploy the adapter. The PostgreSQL JDBC driver must be uploaded to BucketFS and I&#8217;ve created a new bucket for that:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-11-08-16.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-11-08-16.jpg\" alt=\"\" width=\"947\" height=\"354\" class=\"aligncenter size-full wp-image-43753\" \/><\/a><\/p>\n<p><a href=\"https:\/\/docs.exasol.com\/database_concepts\/bucketfs\/bucketfs.htm\" target=\"_blank\" rel=\"noopener noreferrer\">BucketFS<\/a> is an internal file system that gets synchronized automatically between the Exasol cluster nodes.<\/p>\n<p>The easiest way to upload files is to use <a href=\"https:\/\/github.com\/exasol\/bucketfs-explorer\" target=\"_blank\" rel=\"noopener noreferrer\">the bucket explorer<\/a> but you could also use curl against the REST API:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\ndwe@dwe:~\/Downloads$ curl --user admin -v -X PUT -T postgresql-42.2.16.jar  http:\/\/192.168.22.117:2580\/bucketfs\/bucketfs1\/drivers\/postgresql-42.2.16.jar\n<\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-11-22-46.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-11-22-46.jpg\" alt=\"\" width=\"604\" height=\"430\" class=\"aligncenter size-full wp-image-43754\" \/><\/a><\/p>\n<p>Also upload the latest virtual schema distribution from <a href=\"https:\/\/github.com\/exasol\/virtual-schemas\/releases\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>, so it looks like this:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-11-30-05.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-11-30-05.jpg\" alt=\"\" width=\"602\" height=\"424\" class=\"aligncenter size-full wp-image-43756\" \/><\/a><\/p>\n<p>Now we need to create the so-clalled &#8220;Adapter script&#8221;:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; CREATE SCHEMA ADAPTER;\nEXA: CREATE SCHEMA ADAPTER;\n\nRows affected: 0\n\nSQL_EXA&gt; CREATE OR REPLACE JAVA ADAPTER.JDBC_ADAPTER AS\n         %scriptclass com.exasol.adapter.RequestDispatcher;\n         %jar \/buckets\/bucketfs1\/drivers\/virtual-schema-dist-5.0.4-bundle-4.0.3.jar;\n         %jar \/buckets\/bucketfs1\/drivers\/postgresql-42.2.16.jar;\n\/\nEXA: CREATE OR REPLACE JAVA ADAPTER SCRIPT ADAPTER.JDBC_ADAPTER AS...\n\nRows affected: 0\n\nSQL_EXA&gt; \n<\/pre>\n<p>Finally we can create the virtual schema:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; CREATE VIRTUAL SCHEMA POSTGRESQL_REMOTE\n         USING ADAPTER.JDBC_ADAPTER \n         WITH\n         SQL_DIALECT = 'POSTGRESQL'\n         SCHEMA_NAME = 'public'\n         CONNECTION_NAME = 'JDBC_POSTGRESQL';\nEXA: CREATE VIRTUAL SCHEMA POSTGRESQL_REMOTE...\n\nRows affected: 0\n\n<\/pre>\n<p>Now, that the virtual schema is there, the tables on the PostgreSQL side are visible and can be queried:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; select table_name from exa_dba_tables where TABLE_SCHEMA = 'POSTGRESQL_REMOTE';\nEXA: select table_name from exa_dba_tables where TABLE_SCHEMA = 'POSTGRESQL...\n\nTABLE_NAME                                                                                                                      \n--------------------------------------------------------------------------------------------------------------------------------\nPGBENCH_ACCOUNTS                                                                                                                \nPGBENCH_BRANCHES                                                                                                                \nPGBENCH_HISTORY                                                                                                                 \nPGBENCH_TELLERS                                                                                                                 \n\n4 rows in resultset.\n\nSQL_EXA&gt; select count(*) from POSTGRESQL_REMOTE.PGBENCH_ACCOUNTS;\nEXA: select count(*) from POSTGRESQL_REMOTE.PGBENCH_ACCOUNTS;\n\nCOUNT(*)            \n--------------------\n            10000000\n\n1 row in resultset.\n<\/pre>\n<p>Compared to PostgreSQL it is bit more work to set this up, but once you are through the process the first time it not an issue anymore. In the next post we will load that data into Exasol and get into more details how Exasol works when it comes to transactions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the first post of this series we brought up an Exasol test system to have something to play with. Because playing without data is a bit boring this post is about loading data from PostgreSQL to Exasol. We&#8217;ll use pgbench on the PostgreSQL side to generate some data and then load that into Exasol.<\/p>\n","protected":false},"author":28,"featured_media":14752,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198],"tags":[2127,77],"type_dbi":[],"class_list":["post-14751","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-database-management","tag-exasol","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Getting started with Exasol \u2013 Loading data from PostgreSQL - dbi Blog<\/title>\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.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with Exasol \u2013 Loading data from PostgreSQL\" \/>\n<meta property=\"og:description\" content=\"In the first post of this series we brought up an Exasol test system to have something to play with. Because playing without data is a bit boring this post is about loading data from PostgreSQL to Exasol. We&#8217;ll use pgbench on the PostgreSQL side to generate some data and then load that into Exasol.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-30T09:08:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1215\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"headline\":\"Getting started with Exasol \u2013 Loading data from PostgreSQL\",\"datePublished\":\"2020-09-30T09:08:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/\"},\"wordCount\":542,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Screenshot-at-09-33-16.jpg\",\"keywords\":[\"Exasol\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/\",\"name\":\"Getting started with Exasol \u2013 Loading data from PostgreSQL - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Screenshot-at-09-33-16.jpg\",\"datePublished\":\"2020-09-30T09:08:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Screenshot-at-09-33-16.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Screenshot-at-09-33-16.jpg\",\"width\":1215,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-exasol-loading-data-from-postgresql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started with Exasol \u2013 Loading data from PostgreSQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Getting started with Exasol \u2013 Loading data from PostgreSQL - dbi Blog","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.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/","og_locale":"en_US","og_type":"article","og_title":"Getting started with Exasol \u2013 Loading data from PostgreSQL","og_description":"In the first post of this series we brought up an Exasol test system to have something to play with. Because playing without data is a bit boring this post is about loading data from PostgreSQL to Exasol. We&#8217;ll use pgbench on the PostgreSQL side to generate some data and then load that into Exasol.","og_url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/","og_site_name":"dbi Blog","article_published_time":"2020-09-30T09:08:27+00:00","og_image":[{"width":1215,"height":540,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg","type":"image\/jpeg"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"headline":"Getting started with Exasol \u2013 Loading data from PostgreSQL","datePublished":"2020-09-30T09:08:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/"},"wordCount":542,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg","keywords":["Exasol","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring","Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/","url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/","name":"Getting started with Exasol \u2013 Loading data from PostgreSQL - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg","datePublished":"2020-09-30T09:08:27+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-09-33-16.jpg","width":1215,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Getting started with Exasol \u2013 Loading data from PostgreSQL"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=14751"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14751\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/14752"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=14751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=14751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=14751"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=14751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}