{"id":8015,"date":"2016-06-28T20:31:03","date_gmt":"2016-06-28T18:31:03","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/"},"modified":"2016-06-28T20:31:03","modified_gmt":"2016-06-28T18:31:03","slug":"postgresql-as-a-central-reporting-hub-yes-of-course","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/","title":{"rendered":"PostgreSQL as a central reporting hub? &#8211; Yes, of course"},"content":{"rendered":"<p>For every client we do projects for there usually are database systems from various vendors. In most places you at least find some Oracle and MS SQL Server databases. Probably somewhere there are even some MySQL\/MariaDB or PostgreSQL instance running. The Oracle and MS SQL Server stuff almost always is there because vendors require it. For MySQL\/MariaDB the common use case are web applications, ticketing systems and home grown developments. At some point in time there might be a requirement to centralize important data of all these databases into a central reporting hub. The more data you have the more there is a requirement to analyze it and to create reports that drive some sorts of decisions. PostgreSQL is very well prepared to assist in this. If you have read the last posts about connecting your PostgreSQL instance to either <a href=\"http:\/\/dbi-services.com\/blog\/connecting-your-postgresql-instance-to-an-oracle-database-the-postgresql-9-5-way\/\" target=\"_blank\">Oracle<\/a>, <a href=\"http:\/\/dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-microsoft-sql-server-instance\/\" target=\"_blank\">MS SQL Server<\/a>, <a href=\"http:\/\/dbi-services.com\/blog\/connecting-your-postgresql-instance-to-a-mariadbmysql-instance\/\" target=\"_blank\">MariaDB\/MySQL<\/a> or even other PostgreSQL instances you might already know into what direction this post will go. <\/p>\n<p><!--more--><\/p>\n<p>This is a sample use case: There is a requirement to centralize all the sales figures of a company into one big reporting database. The (simplified) database landscape in this company looks exactly as described above:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1.png\" alt=\"pg_reporting_1\" width=\"788\" height=\"519\" class=\"aligncenter size-full wp-image-8732\" \/><\/a><\/p>\n<p>There is one Oracle database, one MS SQL Server instance, one MariaDB\/MySQL instance and one PostgreSQL instance. Each of them holds some sales figures which shall be integrated into the reporting database. For the demo setup I use the <a href=\"http:\/\/linux.dell.com\/dvdstore\/\" target=\"_blank\">Dell DVD Store Database sample schema<\/a>. You can read how to set this up for:<\/p>\n<ul>\n<li>MS SQL Server, <a href=\"http:\/\/dbi-services.com\/blog\/the-almost-same-sample-schema-for-all-major-relational-databases-4-mssql\/\" target=\"_blank\">here<\/a><\/li>\n<li>Oracle, <a href=\"http:\/\/dbi-services.com\/blog\/the-almost-same-sample-schema-for-all-major-relational-databases-2-oracle\/\" target=\"_blank\">here<\/a><\/li>\n<li>MySQL\/MariaDB, <a href=\"http:\/\/dbi-services.com\/blog\/the-almost-same-sample-schema-for-all-major-relational-databases-3-mysqlmariadb\/\" target=\"_blank\">here<\/a><\/li>\n<li>PostgreSQL, <a href=\"http:\/\/dbi-services.com\/blog\/the-almost-same-sample-schema-for-all-major-relational-databases-1-postgresql\/\" target=\"_blank\">here<\/a><\/li>\n<\/ul>\n<p>As the goal is to have a PostgreSQL instance as a central reporting hub the desired database landscape will approximately look like this: <\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_2.png\" alt=\"pg_reporting_2\" width=\"683\" height=\"509\" class=\"aligncenter size-full wp-image-8734\" \/><\/a><\/p>\n<p>Lets assume all the foreign data wrappers are already setup in the central PostgreSQL instance:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:4445) [postgres] &gt; \\dx\n                                                 List of installed extensions\n     Name     |    Version    |   Schema   |                                    Description                                    \n--------------+---------------+------------+-----------------------------------------------------------------------------------\n mysql_fdw    | 1.0           | public     | Foreign data wrapper for querying a MySQL server\n oracle_fdw   | 1.1           | public     | foreign data wrapper for Oracle access\n plpgsql      | 1.0           | pg_catalog | PL\/pgSQL procedural language\n postgres_fdw | 1.0           | ds2_oracle | foreign-data wrapper for remote PostgreSQL servers\n tds_fdw      | 2.0.0-alpha.1 | public     | Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)\n<\/pre>\n<p>In addition lets assume all the <a href=\"http:\/\/www.postgresql.org\/docs\/current\/static\/infoschema-foreign-servers.html\" target=\"_blank\">foreign servers<\/a> and all the <a href=\"http:\/\/www.postgresql.org\/docs\/current\/static\/view-pg-user-mappings.html\" target=\"_blank\">user mappings<\/a> are there and are working:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:4445) [postgres] &gt; select srvname,srvoptions from pg_foreign_server;\n   srvname    |                                      srvoptions                                       \n--------------+---------------------------------------------------------------------------------------\n mysql_server | {host=192.168.22.41,port=3306}\n mssql_svr    | {servername=192.168.22.102,port=1433,database=ds2,tds_version=7.3,msg_handler=notice}\n oracle_srv   | {dbserver=\/\/192.168.22.42\/DELLDVD}\n postgres_srv | {host=192.168.22.40,port=5432,dbname=ds2}\n(4 rows)\n\n(postgres@[local]:4445) [postgres] &gt; select * from pg_user_mappings;\n umid  | srvid |   srvname    | umuser | usename  |               umoptions                \n-------+-------+--------------+--------+----------+----------------------------------------\n 65547 | 65546 | mysql_server |     10 | postgres | {username=web,password=web}\n 65587 | 65586 | mssql_svr    |     10 | postgres | {username=ds2user,password=ds2}\n 65615 | 65614 | oracle_srv   |     10 | postgres | {user=DS2,password=ds2}\n 65676 | 65675 | postgres_srv |     10 | postgres | {user=ds2,password=ds2}\n<\/pre>\n<p>As the central reporting database is already connected to all the other database systems how could you organize the fetching of the data? One approach is to <a href=\"http:\/\/www.postgresql.org\/docs\/current\/static\/sql-createschema.html\" target=\"_blank\">create a separate schema<\/a> for each of the foreign databases and one additional schema that combines the data:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:4445) [postgres] &gt; create schema ds2_mssql;\n(postgres@[local]:4445) [postgres] &gt; create schema ds2_oracle;\n(postgres@[local]:4445) [postgres] &gt; create schema ds2_mysql;\n(postgres@[local]:4445) [postgres] &gt; create schema ds2_postgresql;\n(postgres@[local]:4445) [postgres] &gt; create schema ds2_combined;\n(postgres@[local]:4445) [postgres] &gt; \\dn\n      List of schemas\n      Name      |  Owner   \n----------------+----------\n ds2_combined   | postgres\n ds2_mssql      | postgres\n ds2_mysql      | postgres\n ds2_oracle     | postgres\n ds2_postgresql | postgres\n public         | postgres\n(6 rows)\n<\/pre>\n<p>The next step is to create the foreign tables we want to work with.<\/p>\n<p>For Oracle, MySQL\/MariaDB and PostgreSQL we can use the import foreign schema command:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres=# import foreign schema \"DS2\" from server oracle_srv into ds2_oracle;\nIMPORT FOREIGN SCHEMA\npostgres= import foreign schema \"DS2\" from server mysql_srv into ds2_mysql;\nIMPORT FOREIGN SCHEMA\npostgres= import foreign schema \"public\" from server postgres_srv into ds2_postgresql;\nIMPORT FOREIGN SCHEMA\n<\/pre>\n<p>For MS SQL Server we need to specify the foreign tables on our own (there is a feature request to implement import foreign schema):<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ncreate foreign table ds2_mssql.orders \n  ( orderid numeric not null\n  , orderdate timestamp(0) without time zone not null\n  , customerid numeric                                \n  , netamount numeric(12,2) not null \n  , tax numeric(12,2) not null \n  , totalamount numeric(12,2) not null \n  )\nSERVER mssql_svr\nOPTIONS (table 'dbo.orders', row_estimate_method 'showplan_all');\n\ncreate foreign table ds2_mssql.orderlines\n  ( orderlineid numeric not null \n  , orderid numeric not null \n  , prod_id numeric not null \n  , quantity numeric not null \n  , orderdate timestamp(0) without time zone not null \n  )\nSERVER mssql_svr\nOPTIONS (table 'dbo.orderlines', row_estimate_method 'showplan_all');\n<\/pre>\n<p>Having all the foreign tables available we can start to work with the data either by creating materialized views:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ncreate materialized view ds2_combined.mv_orders as\n  select * from ds2_mssql.orders\n  union all\n  select * from ds2_mysql.\"ORDERS\"\n  union all\n  select * from ds2_oracle.orders\n  union all\n  select * from ds2_postgresql.orders\n  with no data;\nrefresh materialized view ds2_combined.mv_orders with data;\n<\/pre>\n<p>&#8230; or by importing the data into PostgreSQL and then build reports on top of that:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nBEGIN;\n  insert into ds2_combined.orders select * from ds2_mssql.orders;\n  insert into ds2_combined.orders select * from ds2_mysql.\"ORDERS\";\n  insert into ds2_combined.orders select * from ds2_oracle.orders;\n  insert into ds2_combined.orders select * from ds2_postgresql.orders;\nEND;\nBEGIN;\n  insert into ds2_combined.orderlines \n         select * from ds2_mssql.orderlines;\n  insert into ds2_combined.orderlines \n         select * from ds2_mysql.\"ORDERLINES\";\n  insert into ds2_combined.orderlines \n         select * from ds2_oracle.orderlines;\n  insert into ds2_combined.orderlines \n         select * from ds2_postgresql.orderlines;\nEND;\n<\/pre>\n<p>Having all the data locally available you can do whatever you want with it. Have fun with reporting on your data &#8230; <\/p>\n<p>Btw: The source for this was a session at the <a href=\"http:\/\/www.pgday.ch\/2016\/\" target=\"_blank\">Swiss PGDAY 2016<\/a>. You can download the slides there.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For every client we do projects for there usually are database systems from various vendors. In most places you at least find some Oracle and MS SQL Server databases. Probably somewhere there are even some MySQL\/MariaDB or PostgreSQL instance running. The Oracle and MS SQL Server stuff almost always is there because vendors require it. [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":8018,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[496,526,77],"type_dbi":[],"class_list":["post-8015","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-bi","tag-datawarehouse","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL as a central reporting hub? - Yes, of course - 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\/postgresql-as-a-central-reporting-hub-yes-of-course\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL as a central reporting hub? - Yes, of course\" \/>\n<meta property=\"og:description\" content=\"For every client we do projects for there usually are database systems from various vendors. In most places you at least find some Oracle and MS SQL Server databases. Probably somewhere there are even some MySQL\/MariaDB or PostgreSQL instance running. The Oracle and MS SQL Server stuff almost always is there because vendors require it. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-28T18:31:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"788\" \/>\n\t<meta property=\"og:image:height\" content=\"519\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 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\/postgresql-as-a-central-reporting-hub-yes-of-course\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"PostgreSQL as a central reporting hub? &#8211; Yes, of course\",\"datePublished\":\"2016-06-28T18:31:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/\"},\"wordCount\":502,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png\",\"keywords\":[\"BI\",\"DataWareHouse\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/\",\"name\":\"PostgreSQL as a central reporting hub? - Yes, of course - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png\",\"datePublished\":\"2016-06-28T18:31:03+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png\",\"width\":788,\"height\":519},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL as a central reporting hub? &#8211; Yes, of course\"}]},{\"@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\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL as a central reporting hub? - Yes, of course - 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\/postgresql-as-a-central-reporting-hub-yes-of-course\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL as a central reporting hub? - Yes, of course","og_description":"For every client we do projects for there usually are database systems from various vendors. In most places you at least find some Oracle and MS SQL Server databases. Probably somewhere there are even some MySQL\/MariaDB or PostgreSQL instance running. The Oracle and MS SQL Server stuff almost always is there because vendors require it. [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/","og_site_name":"dbi Blog","article_published_time":"2016-06-28T18:31:03+00:00","og_image":[{"width":788,"height":519,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png","type":"image\/png"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"PostgreSQL as a central reporting hub? &#8211; Yes, of course","datePublished":"2016-06-28T18:31:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/"},"wordCount":502,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png","keywords":["BI","DataWareHouse","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/","name":"PostgreSQL as a central reporting hub? - Yes, of course - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png","datePublished":"2016-06-28T18:31:03+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/pg_reporting_1-1.png","width":788,"height":519},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-as-a-central-reporting-hub-yes-of-course\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL as a central reporting hub? &#8211; Yes, of course"}]},{"@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\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/8015","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\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=8015"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/8015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/8018"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=8015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=8015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=8015"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=8015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}