diff --git a/product_docs/docs/bdr/3.7/index.mdx b/product_docs/docs/bdr/3.7/index.mdx new file mode 100644 index 00000000000..ffdff029f4c --- /dev/null +++ b/product_docs/docs/bdr/3.7/index.mdx @@ -0,0 +1,68 @@ +--- +navTitle: BDR +title: "BDR (Bi-Directional Replication)" +directoryDefaults: + description: "BDR (Bi-Directional Replication) is a ground-breaking multi-master replication capability for PostgreSQL clusters that has been in full production status since 2014." +--- + +**BDR (Bi-Directional Replication)** is a ground-breaking multi-master replication capability for PostgreSQL clusters that has been in full production status since 2014. In the complex environment of replication, this 3rd generation of BDR achieves efficiency and accuracy, enabling very high availability of all nodes in a geographically distributed cluster. This solution is for top-tier enterprise applications that require near-zero downtime and near-zero data loss. + +As a standard PostgreSQL extension BDR does this through logical replication of data and schema along with a robust set of features and tooling to manage conflicts and monitor performance. This means applications with the most stringent demands can be run with confidence on PostgreSQL. + +BDR was built from the start to allow for rolling upgrades and developed in conjunction with partners who were replacing costly legacy solutions. + +Two editions are available. BDR Standard provides essential multi-master replication capabilities for delivering row level consistency to address high availability and/or geographically distributed workloads. BDR Enterprise adds advanced conflict-handling and data-loss protection capabilities. + +## BDR Enterprise + +To provide very high availability, avoid data conflicts, and to cope with more advanced usage scenarios, the Enterprise edition includes the following additional features not found in BDR Standard: + +* Eager replication provides conflict free replication by synchronizing across cluster nodes before committing a transaction **\*** +* Commit at most once consistency guards application transactions even in the presence of node failures **\*** +* Parallel apply allows multiple writer processes to apply transactions on the downstream node improving throughput up to 2X +* Single decoding worker improves performance on upstream node by doing logical decoding of WAL once instead of for each downstream node **\*** +* Conflict-free replicated data types (CRDTs) provide mathematically proven consistency in asynchronous multi-master update scenarios +* Column level conflict resolution enables per column last-update wins resolution to merge updates +* Transform triggers execute on incoming data for modifying or advanced programmatic filtering +* Conflict triggers provide custom resolution techniques when a conflict is detected +* Tooling to assess applications for distributed database suitability **\*** + +!!! Important **\*** Indicates feature is only available with EDB Postgres Extended at this time, and is expected to be available with EDB Postgres Advanced 14. +!!! + +BDR Enterprise requires EDB Postgres Extended 11, 12, 13 (formerly known as 2ndQuadrant Postgres) which is SQL compatible with PostgreSQL. For applications requiring Oracle compatibility, BDR Enterprise requires EDB Postgres Advanced 11, 12, 13. + +!!!note + The documentation for the new release 3.7 is available here: + + [BDR 3.7 Enterprise Edition](https://documentation.2ndquadrant.com/bdr3-enterprise/release/latest/) + + **This is a protected area of our website, if you need access please [contact us](https://www.enterprisedb.com/contact)** +!!! + +## BDR Standard + +The Standard edition provides loosely-coupled multi-master logical replication using a mesh topology. This means that you can write to any node and the changes will be sent directly, row-by-row to all the other nodes that are part of the BDR cluster. + +By default BDR uses asynchronous replication to provide row-level eventual consistency, applying changes on the peer nodes only after the local commit. + +The following are included to support very high availability and geographically distributed workloads: + +* Rolling application and database upgrades to address the largest source of downtime +* Origin based conflict detection and row-level last-update wins conflict resolution +* DDL replication with granular locking supports changes to application schema, ideal for use in continuous release environments +* Sub-groups with subscribe-only nodes enable data distribution use cases for applications with very high read scaling requirements +* Sequence handling provides applications different options for generating unique surrogate ids that are multi-node aware +* Tools to monitor operation and verify data consistency + +BDR Standard requires PostgreSQL 11, 12, 13 or EDB Postgres Advanced 11, 12, 13 for applications requiring Oracle compatibility. + +!!!note + The documentation for the new release 3.7 is available here: + + [BDR 3.7 Standard Edition](https://documentation.2ndquadrant.com/bdr3/release/latest/) + + **This is a protected area of our website, if you need access please [contact us](https://www.enterprisedb.com/contact)** +!!! + + diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/01_whats_new.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/01_whats_new.mdx index 2156d8d1599..ca79f3e6a32 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/01_whats_new.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/01_whats_new.mdx @@ -1,9 +1,5 @@ --- title: "What’s New" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/whats_new.html" --- diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/02_requirements_overview.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/02_requirements_overview.mdx index d38bc4c6c19..4c9969fe4e6 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/02_requirements_overview.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/02_requirements_overview.mdx @@ -1,14 +1,10 @@ --- title: "Requirements Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/requirements_overview.html" --- ## Supported Versions -The Hadoop Foreign Data Wrapper is certified with EDB Postgres Advanced Server 9.5 and above. +The Hadoop Foreign Data Wrapper is certified with EDB Postgres Advanced Server 9.6 and above. ## Supported Platforms @@ -16,14 +12,14 @@ The Hadoop Foreign Data Wrapper is supported on the following platforms: **Linux x86-64** -- RHEL 8.x and 7.x -- CentOS 8.x and 7.x -- OEL 8.x and 7.x -- Ubuntu 20.04 and 18.04 LTS -- Debian 10.x and 9.x +> - RHEL 8.x and 7.x +> - CentOS 8.x and 7.x +> - OEL 8.x and 7.x +> - Ubuntu 20.04 and 18.04 LTS +> - Debian 10.x and 9.x **Linux on IBM Power8/9 (LE)** -- RHEL 7.x +> - RHEL 7.x The Hadoop Foreign Data Wrapper supports use of the Hadoop file system using a HiveServer2 interface or Apache Spark using the Spark Thrift Server. diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/03_architecture_overview.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/03_architecture_overview.mdx index e7699cd534f..87c8fb6d024 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/03_architecture_overview.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/03_architecture_overview.mdx @@ -1,9 +1,5 @@ --- title: "Architecture Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/architecture_overview.html" --- @@ -14,6 +10,4 @@ The Hadoop data wrapper provides an interface between a Hadoop file system and a ![Using a Hadoop distributed file system with Postgres](images/hadoop_distributed_file_system_with_postgres.png) -Using a Hadoop Distributed file system with Postgres - When possible, the Foreign Data Wrapper asks the Hive or Spark server to perform the actions associated with the `WHERE` clause of a `SELECT` statement. Pushing down the `WHERE` clause improves performance by decreasing the amount of data moving across the network. diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/04_supported_authentication_methods.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/04_supported_authentication_methods.mdx index bf6ead71d96..24377cbadda 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/04_supported_authentication_methods.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/04_supported_authentication_methods.mdx @@ -1,9 +1,5 @@ --- title: "Supported Authentication Methods" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/supported_authentication_methods.html" --- @@ -50,7 +46,7 @@ Then, when starting the hive server, include the path to the `hive-site.xml` fil Where *path_to_hive-site.xml_file* specifies the complete path to the `hive‑site.xml` file. -When creating the user mapping, you must provide the name of a registered LDAP user and the corresponding password as options. For details, see [Create User Mapping](07_configuring_the_hadoop_data_adapter/#create-user-mapping). +When creating the user mapping, you must provide the name of a registered LDAP user and the corresponding password as options. For details, see [Create User Mapping](08_configuring_the_hadoop_data_adapter/#create-user-mapping). diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/05_installing_the_hadoop_data_adapter.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/05_installing_the_hadoop_data_adapter.mdx index 7b92a4fb209..f89d2b1e1a2 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/05_installing_the_hadoop_data_adapter.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/05_installing_the_hadoop_data_adapter.mdx @@ -1,9 +1,5 @@ --- title: "Installing the Hadoop Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/installing_the_hadoop_data_adapter.html" --- @@ -29,19 +25,19 @@ Before installing the Hadoop Foreign Data Wrapper, you must install the followin Install the `epel-release` package: -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` +> ```text +> yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +> ``` Enable the optional, extras, and HA repositories: -```text -subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" -``` +> ```text +> subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -53,9 +49,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -63,22 +59,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing Hadoop Foreign Data Wrapper** After saving your changes to the configuration file, use the following commands to install the Hadoop Foreign Data Wrapper: -``` -yum install edb-as-hdfs_fdw -``` +> ``` +> yum install edb-as-hdfs_fdw +> ``` where `xx` is the server version number. @@ -94,20 +90,20 @@ Before installing the Hadoop Foreign Data Wrapper, you must install the followin Install the `epel-release` package: -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` +> ```text +> dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +> ``` Enable the `codeready-builder-for-rhel-8-\*-rpms` repository: -```text -ARCH=$( /bin/arch ) -subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" -``` +> ```text +> ARCH=$( /bin/arch ) +> subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -119,9 +115,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -129,22 +125,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing Hadoop Foreign Data Wrapper** After saving your changes to the configuration file, use the below command to install the Hadoop Foreign Data Wrapper: -```text -dnf install edb-as-hdfs_fdw -``` +> ```text +> dnf install edb-as-hdfs_fdw +> ``` When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. @@ -158,16 +154,16 @@ Before installing the Hadoop Foreign Data Wrapper, you must install the followin Install the `epel-release` package: -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` +> ```text +> yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +> ``` !!! Note You may need to enable the `[extras]` repository definition in the `CentOS-Base.repo` file (located in `/etc/yum.repos.d`). You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -179,9 +175,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -189,22 +185,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing Hadoop Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the Hadoop Foreign Data Wrapper: -```text -yum install edb-as-hdfs_fdw -``` +> ```text +> yum install edb-as-hdfs_fdw +> ``` where `xx` is the server version number. @@ -220,19 +216,19 @@ Before installing the Hadoop Foreign Data Wrapper, you must install the followin Install the `epel-release` package: -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` +> ```text +> dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +> ``` Enable the `PowerTools` repository: -```text -dnf config-manager --set-enabled PowerTools -``` +> ```text +> dnf config-manager --set-enabled PowerTools +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -244,9 +240,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -254,22 +250,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing Hadoop Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the Hadoop Foreign Data Wrapper: -```text -dnf install edb-as-hdfs_fdw -``` +> ```text +> dnf install edb-as-hdfs_fdw +> ``` where `xx` is the server version number. @@ -293,23 +289,23 @@ The following steps will walk you through on using the EDB apt repository to ins On Debian 9 and Ubuntu: - ```text - sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` + > ```text + > sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' + > ``` On Debian 10: 1. Set up the EDB repository: - ```text - sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` + > ```text + > sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' + > ``` - 2. Substitute your EDB credentials for the `username` and `password` in the following command: + 1. Substitute your EDB credentials for the `username` and `password` in the following command: - ```text - sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' - ``` + > ```text + > sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' + > ``` 3. Add support to your system for secure APT repositories: @@ -317,7 +313,7 @@ The following steps will walk you through on using the EDB apt repository to ins apt-get install apt-transport-https ``` -4. Add the EBD signing key: +4. Add the EDB signing key: ```text wget -q -O - https://username:password diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/06_updating_the_hadoop_data_adapter.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/06_updating_the_hadoop_data_adapter.mdx new file mode 100644 index 00000000000..17040838963 --- /dev/null +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/06_updating_the_hadoop_data_adapter.mdx @@ -0,0 +1,39 @@ +--- +title: "Updating the Hadoop Foreign Data Wrapper" +--- + + + +**Updating an RPM Installation** + +If you have an existing RPM installation of Hadoop Foreign Data Wrapper, you can use yum or dnf to upgrade your repository configuration file and update to a more recent product version. To update the `edb.repo` file, assume superuser privileges and enter: + +- On RHEL or CentOS 7: + + > `yum upgrade edb-repo` + +- On RHEL or CentOS 8: + + > `dnf upgrade edb-repo` + +yum or dnf will update the `edb.repo` file to enable access to the current EDB repository, configured to connect with the credentials specified in your `edb.repo` file. Then, you can use yum or dnf to upgrade any installed packages: + +- On RHEL or CentOS 7: + + > `yum upgrade edb-as-hdfs_fdw` + + where `xx` is the server version number. + +- On RHEL or CentOS 8: + + > `dnf upgrade edb-as-hdfs_fdw` + + where `xx` is the server version number. + +**Updating MongoDB Foreign Data Wrapper on a Debian or Ubuntu Host** + +To update MongoDB Foreign Data Wrapper on a Debian or Ubuntu Host, use the following command: + +> `apt-get --only-upgrade install edb-as-hdfs-fdw` +> +> where `xx` is the server version number. diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/06_features_of_hdfs_fdw.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/07_features_of_hdfs_fdw.mdx similarity index 73% rename from product_docs/docs/hadoop_data_adapter/2.0.7/06_features_of_hdfs_fdw.mdx rename to product_docs/docs/hadoop_data_adapter/2.0.7/07_features_of_hdfs_fdw.mdx index 9a0eae92417..66cacb62851 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/06_features_of_hdfs_fdw.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/07_features_of_hdfs_fdw.mdx @@ -1,9 +1,5 @@ --- title: "Features of the Hadoop Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/features_of_hdfs_fdw.html" --- @@ -20,8 +16,8 @@ Hadoop Foreign Data Wrapper supports column push-down. As a result, the query br ## Automated Cleanup -Hadoop Foreign Data Wrappper allows the cleanup of foreign tables in a single operation using `DROP EXTENSION` command. This feature is specifically useful when a foreign table is set for a temporary purpose, as in case of data migration. The syntax is: +Hadoop Foreign Data Wrappper allows the cleanup of foreign tables in a single operation using `DROP EXTENSION` command. This feature is specifically useful when a foreign table is set for a temporary purpose. The syntax is: - `DROP EXTENSION hdfs_fdw CASCADE;` +> `DROP EXTENSION hdfs_fdw CASCADE;` For more information, see [DROP EXTENSION](https://www.postgresql.org/docs/current/sql-dropextension.html). diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/07_configuring_the_hadoop_data_adapter.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/08_configuring_the_hadoop_data_adapter.mdx similarity index 55% rename from product_docs/docs/hadoop_data_adapter/2.0.7/07_configuring_the_hadoop_data_adapter.mdx rename to product_docs/docs/hadoop_data_adapter/2.0.7/08_configuring_the_hadoop_data_adapter.mdx index 46df732aad0..d2462cf1e8a 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/07_configuring_the_hadoop_data_adapter.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/08_configuring_the_hadoop_data_adapter.mdx @@ -1,9 +1,5 @@ --- title: "Configuring the Hadoop Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/configuring_the_hadoop_data_adapter.html" --- @@ -12,31 +8,30 @@ Before creating the extension and the database objects that use the extension, y After installing Postgres, modify the `postgresql.conf` located in: - `/var/lib/edb/as_version/data` +> `/var/lib/edb/as_version/data` Modify the configuration file with your editor of choice, adding the `hdfs_fdw.jvmpath` parameter to the end of the configuration file, and setting the value to specify the location of the Java virtual machine (`libjvm.so`). Set the value of `hdfs_fdw.classpath` to indicate the location of the java class files used by the adapter; use a colon (:) as a delimiter between each path. For example: -```text -hdfs_fdw.classpath= -'/usr/edb/as12/lib/HiveJdbcClient-1.0.jar:/home/edb/Projects/hadoop_fdw/hadoop/share/hadoop/common/hadoop-common-2.6.4.jar:/home/edb/Projects/hadoop_fdw/apache-hive-1.0.1-bin/lib/hive-jdbc-1.0.1-standalone.jar' -``` - - **Note**: - - The jar files (hive-jdbc-1.0.1-standalone.jar and hadoop-common-2.6.4.jar) mentioned in the above example should be copied from respective Hive and Hadoop sources or website to PostgreSQL instance where Hadoop Foreign Data Wrapper is installed. - - If you are using EDB Advanced Server and have a `DATE` column in your database, you must set `edb_redwood_date = OFF` in the `postgresql.conf` file. +> ```text +> hdfs_fdw.classpath= +> '/usr/edb/as12/lib/HiveJdbcClient-1.0.jar:/home/edb/Projects/hadoop_fdw/hadoop/share/hadoop/common/hadoop-common-2.6.4.jar:/home/edb/Projects/hadoop_fdw/apache-hive-1.0.1-bin/lib/hive-jdbc-1.0.1-standalone.jar' +> ``` +> +> !!! Note +> The jar files (hive-jdbc-1.0.1-standalone.jar and hadoop-common-2.6.4.jar) mentioned in the above example should be copied from respective Hive and Hadoop sources or website to PostgreSQL instance where Hadoop Foreign Data Wrapper is installed. +> +> If you are using EDB Advanced Server and have a `DATE` column in your database, you must set `edb_redwood_date = OFF` in the `postgresql.conf` file. After setting the parameter values, restart the Postgres server. For detailed information about controlling the service on an Advanced Server host, see the EDB Postgres Advanced Server Installation Guide, available at: -[https://www.enterprisedb.com/docs](/epas/latest/) +> Before using the Hadoop Foreign Data Wrapper, you must: -1. Use the [CREATE EXTENSION](#create-extension) command to create the extension on the Postgres host. -2. Use the [CREATE SERVER](#create-server) command to define a connection to the Hadoop file system. -3. Use the [CREATE USER MAPPING](#create-user-mapping) command to define a mapping that associates a Postgres role with the server. -4. Use the [CREATE FOREIGN TABLE](#create-foreign-table) command to define a table in the Advanced Server database that corresponds to a database that resides on the Hadoop cluster. +> 1. Use the [CREATE EXTENSION](#create-extension) command to create the extension on the Postgres host. +> 2. Use the [CREATE SERVER](#create-server) command to define a connection to the Hadoop file system. +> 3. Use the [CREATE USER MAPPING](#create-user-mapping) command to define a mapping that associates a Postgres role with the server. +> 4. Use the [CREATE FOREIGN TABLE](#create-foreign-table) command to define a table in the Advanced Server database that corresponds to a database that resides on the Hadoop cluster. @@ -52,21 +47,21 @@ CREATE EXTENSION [IF NOT EXISTS] hdfs_fdw [WITH] [SCHEMA schema_name]; `IF NOT EXISTS` - Include the `IF NOT EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the same name already exists. +> Include the `IF NOT EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the same name already exists. `schema_name` - Optionally specify the name of the schema in which to install the extension's objects. +> Optionally specify the name of the schema in which to install the extension's objects. **Example** The following command installs the `hdfs_fdw` hadoop foreign data wrapper: - `CREATE EXTENSION hdfs_fdw;` +> `CREATE EXTENSION hdfs_fdw;` For more information about using the foreign data wrapper `CREATE EXTENSION` command, see: - . +> . @@ -85,27 +80,27 @@ The role that defines the server is the owner of the server; use the `ALTER SERV `server_name` - Use `server_name` to specify a name for the foreign server. The server name must be unique within the database. +> Use `server_name` to specify a name for the foreign server. The server name must be unique within the database. `FOREIGN_DATA_WRAPPER` - Include the `FOREIGN_DATA_WRAPPER` clause to specify that the server should use the `hdfs_fdw` foreign data wrapper when connecting to the cluster. +> Include the `FOREIGN_DATA_WRAPPER` clause to specify that the server should use the `hdfs_fdw` foreign data wrapper when connecting to the cluster. `OPTIONS` - Use the `OPTIONS` clause of the `CREATE SERVER` command to specify connection information for the foreign server. You can include: +> Use the `OPTIONS` clause of the `CREATE SERVER` command to specify connection information for the foreign server. You can include: -| Option | Description | -| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| host | The address or hostname of the Hadoop cluster. The default value is \`localhost\`. | -| port | The port number of the Hive Thrift Server or Spark Thrift Server. The default is \`10000\`. | -| client_type | Specify hiveserver2 or spark as the client type. To use the ANALYZE statement on Spark, you must specify a value of spark; if you do not specify a value for client_type, the default value is hiveserver2. | -| auth_type | The authentication type of the client; specify LDAP or NOSASL. If you do not specify an auth_type, the data wrapper will decide the auth_type value on the basis of the user mapping:- If the user mapping includes a user name and password, the data wrapper will use LDAP authentication. - If the user mapping does not include a user name and password, the data wrapper will use NOSASL authentication. | -| connect_timeout | The length of time before a connection attempt times out. The default value is \`300\` seconds. | -| fetch_size | A user-specified value that is provided as a parameter to the JDBC API setFetchSize. The default value is \`10,000\`. | -| log_remote_sql | If true, logging will include SQL commands executed on the remote hive server and the number of times that a scan is repeated. The default is \`false\`. | -| query_timeout | Use query_timeout to provide the number of seconds after which a request will timeout if it is not satisfied by the Hive server. Query timeout is not supported by the Hive JDBC driver. | -| use_remote_estimate | Include the use_remote_estimate to instruct the server to use EXPLAIN commands on the remote server when estimating processing costs. By default, use_remote_estimate is false, and remote tables are assumed to have \`1000\` rows. | +| Option | Description | +| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| host | The address or hostname of the Hadoop cluster. The default value is \`localhost\`. | +| port | The port number of the Hive Thrift Server or Spark Thrift Server. The default is \`10000\`. | +| client_type | Specify hiveserver2 or spark as the client type. To use the ANALYZE statement on Spark, you must specify a value of spark; if you do not specify a value for client_type, the default value is hiveserver2. | +| auth_type
| The authentication type of the client; specify LDAP or NOSASL. If you do not specify an auth_type, the data wrapper will decide the auth_type value on the basis of the user mapping:- If the user mapping includes a user name and password, the data wrapper will use LDAP authentication.
- If the user mapping does not include a user name and password, the data wrapper will use NOSASL authentication.
| +| connect_timeout | The length of time before a connection attempt times out. The default value is \`300\` seconds. | +| fetch_size | A user-specified value that is provided as a parameter to the JDBC API setFetchSize. The default value is \`10,000\`. | +| log_remote_sql | If true, logging will include SQL commands executed on the remote hive server and the number of times that a scan is repeated. The default is \`false\`. | +| query_timeout | Use query_timeout to provide the number of seconds after which a request will timeout if it is not satisfied by the Hive server. Query timeout is not supported by the Hive JDBC driver. | +| use_remote_estimate | Include the use_remote_estimate to instruct the server to use EXPLAIN commands on the remote server when estimating processing costs. By default, use_remote_estimate is false, and remote tables are assumed to have \`1000\` rows. | **Example** @@ -119,7 +114,7 @@ The foreign server uses the default port (`10000`) for the connection to the cli For more information about using the `CREATE SERVER` command, see: - +> @@ -140,27 +135,27 @@ Please note: the Hadoop Foreign Data Wrapper supports NOSASL and LDAP authentica `role_name` - Use `role_name` to specify the role that will be associated with the foreign server. +> Use `role_name` to specify the role that will be associated with the foreign server. `server_name` - Use `server_name` to specify the name of the server that defines a connection to the Hadoop cluster. +> Use `server_name` to specify the name of the server that defines a connection to the Hadoop cluster. `OPTIONS` - Use the `OPTIONS` clause to specify connection information for the foreign server. If you are using LDAP authentication, provide a: - - `username`: the name of the user on the LDAP server. - - `password`: the password associated with the username. - - If you do not provide a user name and password, the data wrapper will use NOSASL authentication. +> Use the `OPTIONS` clause to specify connection information for the foreign server. If you are using LDAP authentication, provide a: +> +> `username`: the name of the user on the LDAP server. +> +> `password`: the password associated with the username. +> +> If you do not provide a user name and password, the data wrapper will use NOSASL authentication. **Example** The following command creates a user mapping for a role named `enterprisedb`; the mapping is associated with a server named `hdfs_server`: - `CREATE USER MAPPING FOR enterprisedb SERVER hdfs_server;` +> `CREATE USER MAPPING FOR enterprisedb SERVER hdfs_server;` If the database host uses LDAP authentication, provide connection credentials when creating the user mapping: @@ -172,7 +167,7 @@ The command creates a user mapping for a role named `enterprisedb` that is assoc For detailed information about the `CREATE USER MAPPING` command, see: - +> @@ -207,57 +202,57 @@ and `table_constraint` is: `table_name` - Specifies the name of the foreign table; include a schema name to specify the schema in which the foreign table should reside. +> Specifies the name of the foreign table; include a schema name to specify the schema in which the foreign table should reside. `IF NOT EXISTS` - Include the `IF NOT EXISTS` clause to instruct the server to not throw an error if a table with the same name already exists; if a table with the same name exists, the server will issue a notice. +> Include the `IF NOT EXISTS` clause to instruct the server to not throw an error if a table with the same name already exists; if a table with the same name exists, the server will issue a notice. `column_name` - Specifies the name of a column in the new table; each column should correspond to a column described on the Hive or Spark server. +> Specifies the name of a column in the new table; each column should correspond to a column described on the Hive or Spark server. `data_type` - Specifies the data type of the column; when possible, specify the same data type for each column on the Postgres server and the Hive or Spark server. If a data type with the same name is not available, the Postgres server will attempt to cast the data type to a type compatible with the Hive or Spark server. If the server cannot identify a compatible data type, it will return an error. +> Specifies the data type of the column; when possible, specify the same data type for each column on the Postgres server and the Hive or Spark server. If a data type with the same name is not available, the Postgres server will attempt to cast the data type to a type compatible with the Hive or Spark server. If the server cannot identify a compatible data type, it will return an error. `COLLATE collation` - Include the `COLLATE` clause to assign a collation to the column; if not specified, the column data type's default collation is used. +> Include the `COLLATE` clause to assign a collation to the column; if not specified, the column data type's default collation is used. `INHERITS (parent_table [, ... ])` - Include the `INHERITS` clause to specify a list of tables from which the new foreign table automatically inherits all columns. Parent tables can be plain tables or foreign tables. +> Include the `INHERITS` clause to specify a list of tables from which the new foreign table automatically inherits all columns. Parent tables can be plain tables or foreign tables. `CONSTRAINT constraint_name` - Specify an optional name for a column or table constraint; if not specified, the server will generate a constraint name. +> Specify an optional name for a column or table constraint; if not specified, the server will generate a constraint name. `NOT NULL` - Include the `NOT NULL` keywords to indicate that the column is not allowed to contain null values. +> Include the `NOT NULL` keywords to indicate that the column is not allowed to contain null values. `NULL` - Include the `NULL` keywords to indicate that the column is allowed to contain null values. This is the default. +> Include the `NULL` keywords to indicate that the column is allowed to contain null values. This is the default. `CHECK (expr) [NO INHERIT]` - Use the `CHECK` clause to specify an expression that produces a Boolean result that each row in the table must satisfy. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint can reference multiple columns. - - A `CHECK` expression cannot contain subqueries or refer to variables other than columns of the current row. - - Include the `NO INHERIT` keywords to specify that a constraint should not propagate to child tables. +> Use the `CHECK` clause to specify an expression that produces a Boolean result that each row in the table must satisfy. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint can reference multiple columns. +> +> A `CHECK` expression cannot contain subqueries or refer to variables other than columns of the current row. +> +> Include the `NO INHERIT` keywords to specify that a constraint should not propagate to child tables. `DEFAULT default_expr` - Include the `DEFAULT` clause to specify a default data value for the column whose column definition it appears within. The data type of the default expression must match the data type of the column. +> Include the `DEFAULT` clause to specify a default data value for the column whose column definition it appears within. The data type of the default expression must match the data type of the column. `SERVER server_name [OPTIONS (option 'value' [, ... ] ) ]` - To create a foreign table that will allow you to query a table that resides on a Hadoop file system, include the `SERVER` clause and specify the `server_name` of the foreign server that uses the Hadoop data adapter. - - Use the `OPTIONS` clause to specify the following `options` and their corresponding values: +> To create a foreign table that will allow you to query a table that resides on a Hadoop file system, include the `SERVER` clause and specify the `server_name` of the foreign server that uses the Hadoop data adapter. +> +> Use the `OPTIONS` clause to specify the following `options` and their corresponding values: | option | value | | ---------- | --------------------------------------------------------------------------------------- | @@ -320,7 +315,7 @@ Include the `SERVER` clause to specify the name of the database stored on the Ha For more information about using the `CREATE FOREIGN TABLE` command, see: - +> ### Data Type Mappings @@ -341,3 +336,145 @@ When using the foreign data wrapper, you must create a table on the Postgres ser | TIMESTAMP | TIMESTAMP | | TINYINT | INT2 | | VARCHAR | VARCHAR | + +## DROP EXTENSION + +Use the `DROP EXTENSION` command to remove an extension. To invoke the command, use your client of choice (for example, psql) to connect to the Postgres database from which you will be dropping the Hadoop server, and run the command: + +```text +DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]; +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the specified name doesn't exists. + +`name` + +> Specify the name of the installed extension. It is optional. +> +> `CASCADE` +> +> Automatically drop objects that depend on the extension. It drops all the other dependent objects too. +> +> `RESTRICT` +> +> Do not allow to drop extension if any objects, other than its member objects and extensions listed in the same DROP command are dependent on it. + +**Example** + +The following command removes the extension from the existing database: + +> `DROP EXTENSION hdfs_fdw;` + +For more information about using the foreign data wrapper `DROP EXTENSION` command, see: + +> . + +## DROP SERVER + +Use the `DROP SERVER` command to remove a connection to a foreign server. The syntax is: + +```text +DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] +``` + +The role that drops the server is the owner of the server; use the `ALTER SERVER` command to reassign ownership of a foreign server. To drop a foreign server, you must have `USAGE` privilege on the foreign-data wrapper specified in the `DROP SERVER` command. + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if a server with the specified name doesn't exists. + +`name` + +> Specify the name of the installed server. It is optional. +> +> `CASCADE` +> +> Automatically drop objects that depend on the server. It should drop all the other dependent objects too. +> +> `RESTRICT` +> +> Do not allow to drop the server if any objects are dependent on it. + +**Example** + +The following command removes a foreign server named `hdfs_server`: + +> `DROP SERVER hdfs_server;` + +For more information about using the `DROP SERVER` command, see: + +> + +## DROP USER MAPPING + +Use the `DROP USER MAPPING` command to remove a mapping that associates a Postgres role with a foreign server. You must be the owner of the foreign server to remove a user mapping for that server. + +```text +DROP USER MAPPING [ IF EXISTS ] FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name; +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if the user mapping doesn't exist. + +`user_name` + +> Specify the user name of the mapping. + +`server_name` + +> Specify the name of the server that defines a connection to the Hadoop cluster. + +**Example** + +The following command drops a user mapping for a role named `enterprisedb`; the mapping is associated with a server named `hdfs_server`: + +> `DROP USER MAPPING FOR enterprisedb SERVER hdfs_server;` + +For detailed information about the `DROP USER MAPPING` command, see: + +> + +## DROP FOREIGN TABLE + +A foreign table is a pointer to a table that resides on the Hadoop host. Use the `DROP FOREIGN TABLE` command to remove a foreign table. Only the owner of the foreign table can drop it. + +```text +DROP FOREIGN TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if the foreign table with the specified name doesn't exists. + +`name` + +> Specify the name of the foreign table. + +`CASCADE` + +> Automatically drop objects that depend on the foreign table. It should drop all the other dependent objects too. + +`RESTRICT` + +> Do not allow to drop foreign table if any objects are dependent on it. + +**Example** + +```text +DROP FOREIGN TABLE warehouse; +``` + +For more information about using the `DROP FOREIGN TABLE` command, see: + +> diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/08_using_the_hadoop_data_adapter.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/09_using_the_hadoop_data_adapter.mdx similarity index 94% rename from product_docs/docs/hadoop_data_adapter/2.0.7/08_using_the_hadoop_data_adapter.mdx rename to product_docs/docs/hadoop_data_adapter/2.0.7/09_using_the_hadoop_data_adapter.mdx index 63abe734ce8..c67ba31ead7 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/08_using_the_hadoop_data_adapter.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/09_using_the_hadoop_data_adapter.mdx @@ -1,9 +1,5 @@ --- title: "Using the Hadoop Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/using_the_hadoop_data_adapter.html" --- @@ -302,6 +298,5 @@ EXPLAIN (verbose, costs off) SELECT name FROM f_names_tab WHERE a > 3; (3 rows) ``` -Note: - -The same port was being used while creating foreign server because the Spark Thrift Server is compatible with the Hive Thrift Server. Applications using Hiveserver2 would work with Spark except for the behaviour of the `ANALYZE` command and the connection string in the case of `NOSASL`. We recommend using `ALTER SERVER` and changing the `client_type` option if Hive is to be replaced with Spark. +!!! Note + The same port was being used while creating foreign server because the Spark Thrift Server is compatible with the Hive Thrift Server. Applications using Hiveserver2 would work with Spark except for the behaviour of the `ANALYZE` command and the connection string in the case of `NOSASL`. We recommend using `ALTER SERVER` and changing the `client_type` option if Hive is to be replaced with Spark. diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/09_identifying_data_adapter_version.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/10_identifying_data_adapter_version.mdx similarity index 67% rename from product_docs/docs/hadoop_data_adapter/2.0.7/09_identifying_data_adapter_version.mdx rename to product_docs/docs/hadoop_data_adapter/2.0.7/10_identifying_data_adapter_version.mdx index f3ed65efddf..fa6e51f1d5c 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/09_identifying_data_adapter_version.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/10_identifying_data_adapter_version.mdx @@ -1,9 +1,5 @@ --- title: "Identifying the Hadoop Foreign Data Wrapper Version" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/identifying_data_adapter_version.html" --- diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/11_uninstalling_the_hadoop_data_adapter.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/11_uninstalling_the_hadoop_data_adapter.mdx new file mode 100644 index 00000000000..2ce7ab1ca46 --- /dev/null +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/11_uninstalling_the_hadoop_data_adapter.mdx @@ -0,0 +1,29 @@ +--- +title: "Uninstalling the Hadoop Foreign Data Wrapper" +--- + + + +**Uninstalling an RPM Package** + +You can use the `yum remove` or `dnf remove` command to remove a package installed by `yum` or `dnf`. To remove a package, open a terminal window, assume superuser privileges, and enter the command: + +- On RHEL or CentOS 7: + + `yum remove edb-as-hdfs_fdw` + +> where `xx` is the server version number. + +- On RHEL or CentOS 8: + + `dnf remove edb-as-hdfs_fdw` + +> where `xx` is the server version number. + +**Uninstalling Hadoop Foreign Data Wrapper on a Debian or Ubuntu Host** + +- To uninstall Hadoop Foreign Data Wrapper on a Debian or Ubuntu host, invoke the following command. + + `apt-get remove edb-as-hdfs-fdw` + +> where `xx` is the server version number. diff --git a/product_docs/docs/hadoop_data_adapter/2.0.7/index.mdx b/product_docs/docs/hadoop_data_adapter/2.0.7/index.mdx index f25c120ac1d..bb911fb9abe 100644 --- a/product_docs/docs/hadoop_data_adapter/2.0.7/index.mdx +++ b/product_docs/docs/hadoop_data_adapter/2.0.7/index.mdx @@ -1,15 +1,5 @@ --- -title: "EDB Postgres Hadoop Foreign Data Wrapper" -directoryDefaults: - description: "EDB Postgres Hadoop Foreign Data Wrapper Version 2.0.7 Documentation and release notes." - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/index.html" - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/conclusion.html" - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/genindex.html" - - "/edb-docs/p/edb-postgres-hadoop-data-adapter/2.0.7" - - "/edb-docs/d/edb-postgres-hadoop-data-adapter/user-guides/user-guide/2.0.7/whats_new.html" +title: "Hadoop Foreign Data Wrapper Guide" --- The Hadoop Foreign Data Wrapper (`hdfs_fdw`) is a Postgres extension that allows you to access data that resides on a Hadoop file system from EDB Postgres Advanced Server. The foreign data wrapper makes the Hadoop file system a read-only data source that you can use with Postgres functions and utilities, or in conjunction with other data that resides on a Postgres host. @@ -20,6 +10,6 @@ This guide uses the term `Postgres` to refer to an instance of EDB Postgres Adva
-whats_new requirements_overview architecture_overview supported_authentication_methods installing_the_hadoop_data_adapter features_of_hdfs_fdw configuring_the_hadoop_data_adapter using_the_hadoop_data_adapter identifying_data_adapter_version conclusion +whats_new requirements_overview architecture_overview supported_authentication_methods installing_the_hadoop_data_adapter updating_the_hadoop_data_adapter features_of_hdfs_fdw configuring_the_hadoop_data_adapter using_the_hadoop_data_adapter identifying_data_adapter_version uninstalling_the_hadoop_data_adapter conclusion
diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/01_whats_new.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/01_whats_new.mdx index 837a008da9a..864a831e6ff 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/01_whats_new.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/01_whats_new.mdx @@ -1,9 +1,5 @@ --- title: "What’s New" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/whats_new.html" --- diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/02_requirements_overview.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/02_requirements_overview.mdx index 1e51d9278d1..810cc135c95 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/02_requirements_overview.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/02_requirements_overview.mdx @@ -1,14 +1,10 @@ --- title: "Requirements Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/requirements_overview.html" --- ## Supported Versions -The MongoDB Foreign Data Wrapper is certified with EDB Postgres Advanced Server 9.5 and above. +The MongoDB Foreign Data Wrapper is certified with EDB Postgres Advanced Server 9.6 and above. ## Supported Platforms @@ -16,16 +12,12 @@ The MongoDB Foreign Data Wrapper is supported on the following platforms: **Linux x86-64** -- RHEL 8.x/7.x -- CentOS 8.x/7.x -- OEL 8.x/7.x -- Ubuntu 20.04/18.04 LTS -- Debian 10.x/9.x +> - RHEL 8.x/7.x +> - CentOS 8.x/7.x +> - OEL 8.x/7.x +> - Ubuntu 20.04/18.04 LTS +> - Debian 10.x/9.x **Linux on IBM Power8/9 (LE)** -- RHEL 7.x - -## Supported MongoDB C Driver - -The MongoDB Foreign Data Wrapper supports MongoDB C Driver version 1.17.x that is compatible with MongoDB 3.0 and above. However, the MongoDB Foreign Data Wrapper has been tested with the latest version of MongoDB i.e. 4.4. \ No newline at end of file +> - RHEL 7.x diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/03_architecture_overview.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/03_architecture_overview.mdx index eb227f0c1b8..3e48035f7a0 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/03_architecture_overview.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/03_architecture_overview.mdx @@ -1,9 +1,5 @@ --- title: "Architecture Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/architecture_overview.html" --- @@ -11,5 +7,3 @@ legacyRedirectsGenerated: The MongoDB data wrapper provides an interface between a MongoDB server and a Postgres database. It transforms a Postgres statement (`SELECT`/`INSERT`/`DELETE`/`UPDATE`) into a query that is understood by the MongoDB database. ![Using MongoDB FDW with Postgres](images/mongo_server_with_postgres.png) - -Using MongoDB FDW with Postgres diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/04_installing_the_mongo_data_adapter.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/04_installing_the_mongo_data_adapter.mdx index 80fed759824..4a5497b3f03 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/04_installing_the_mongo_data_adapter.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/04_installing_the_mongo_data_adapter.mdx @@ -1,9 +1,5 @@ --- title: "Installing the MongoDB Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/installing_the_mongo_data_adapter.html" --- @@ -29,19 +25,19 @@ Before installing the MongoDB Foreign Data Wrapper, you must install the followi Install the `epel-release` package: -```text - yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` +> ```text +> yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +> ``` Enable the optional, extras, and HA repositories: -```text - subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" -``` +> ```text +> subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials: @@ -53,9 +49,9 @@ After receiving your repository credentials: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -63,22 +59,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing the MongoDB Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the MongoDB Foreign Data Wrapper: -``` -yum install edb-as-mongo_fdw -``` +> ``` +> yum install edb-as-mongo_fdw +> ``` where `xx` is the server version number. @@ -94,20 +90,20 @@ Before installing the MongoDB Foreign Data Wrapper, you must install the followi Install the `epel-release` package: -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` +> ```text +> dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +> ``` Enable the `codeready-builder-for-rhel-8-\*-rpms` repository: -```text -ARCH=$( /bin/arch ) -subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" -``` +> ```text +> ARCH=$( /bin/arch ) +> subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials: @@ -119,9 +115,9 @@ After receiving your repository credentials: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -129,22 +125,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing the MongoDB Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the MongoDB Foreign Data Wrapper: -```text -dnf install edb-as-mongo_fdw -``` +> ```text +> dnf install edb-as-mongo_fdw +> ``` When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. @@ -158,16 +154,16 @@ Before installing the MongoDB Foreign Data Wrapper, you must install the followi Install the `epel-release` package: -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` +> ```text +> yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +> ``` !!! Note You may need to enable the `[extras]` repository definition in the `CentOS-Base.repo` file (located in `/etc/yum.repos.d`). You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -179,8 +175,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -````text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm> ``` +> ```text +> yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -188,22 +185,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -```` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing the MongoDB Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the MongoDB Foreign Data Wrapper: -```text -yum install edb-as-mongo_fdw -``` +> ```text +> yum install edb-as-mongo_fdw +> ``` where `xx` is the server version number. @@ -219,19 +216,19 @@ Before installing the MongoDB Foreign Data Wrapper, you must install the followi Install the `epel-release` package: -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` +> ```text +> dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +> ``` Enable the `PowerTools` repository: -```text -dnf config-manager --set-enabled PowerTools -``` +> ```text +> dnf config-manager --set-enabled PowerTools +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials: @@ -243,9 +240,9 @@ After receiving your repository credentials: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -253,22 +250,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing the MongoDB Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the MongoDB Foreign Data Wrapper: -```text -dnf install edb-as-mongo_fdw -``` +> ```text +> dnf install edb-as-mongo_fdw +> ``` where `xx` is the server version number. @@ -284,54 +281,54 @@ The following steps will walk you through using the EDB apt repository to instal 1. Assume superuser privileges: - ```text - sudo su – - ``` + > ```text + > sudo su – + > ``` 2. Configure the EDB repository: On Debian 9 and Ubuntu: - ```text - sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` + > ```text + > sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' + > ``` On Debian 10: 1. Set up the EDB repository: - ```text - sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` + > ```text + > sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' + > ``` - 2. Substitute your EDB credentials for the `username` and `password` in the following command: + 1. Substitute your EDB credentials for the `username` and `password` in the following command: - ```text - sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' - ``` + > ```text + > sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' + > ``` 3. Add support to your system for secure APT repositories: - ```text - apt-get install apt-transport-https - ``` + > ```text + > apt-get install apt-transport-https + > ``` 4. Add the EDB signing key: - ```text - wget -q -O - https://:@apt.enterprisedb.com/edb-deb.gpg.key | apt-key add - - ``` + > ```text + > wget -q -O - https://:@apt.enterprisedb.com/edb-deb.gpg.key | apt-key add - + > ``` 5. Update the repository metadata: - ```text - apt-get update - ``` + > ```text + > apt-get update + > ``` 6. Install the Debian package: - ```text - apt-get install edb-as-mongo-fdw - ``` + > ```text + > apt-get install edb-as-mongo-fdw + > ``` where `xx` is the server version number. diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/05_features_of_mongo_fdw.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/05_features_of_mongo_fdw.mdx deleted file mode 100644 index 63a355304b4..00000000000 --- a/product_docs/docs/mongo_data_adapter/5.2.8/05_features_of_mongo_fdw.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Features of the MongoDB Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/features_of_mongo_fdw.html" ---- - - - -The key features of the MongoDB Foreign Data Wrapper are listed below: - -## Writable FDW - -The MongoDB Foreign Data Wrapper allows you to modify data on a MongoDB server. Users can `INSERT`, `UPDATE` and `DELETE` data in the remote MongoDB collections by inserting, updating and deleting data locally in foreign tables. See also: - -[Example: Using the MongoDB Foreign Data Wrapper](07_example_using_the_mongo_data_adapter/#example_using_the_mongo_data_adapter) - -[Data Type Mappings](06_configuring_the_mongo_data_adapter/#data-type-mappings) - -## Where Clause Push-down - -MongoDB Foreign Data Wrapper allows the push-down of `WHERE` clause only when clauses include comparison expressions that have a column and a constant as arguments. WHERE clause push-down is not supported where constant is an array. - -## Connection Pooling - -Mongo_FDW establishes a connection to a foreign server during the first query that uses a foreign table associated with the foreign server. This connection is kept and reused for subsequent queries in the same session. - -## Automated Cleanup - -The MongoDB Foreign Data Wrapper allows the cleanup of foreign tables in a single operation using the `DROP EXTENSION` command. This feature is especially useful when a foreign table has been created for a temporary purpose, as in the case of data migration. The syntax of a `DROP EXTENSION` command is: - - `DROP EXTENSION mongo_fdw CASCADE;` - -For more information, see [DROP EXTENSION](https://www.postgresql.org/docs/current/sql-dropextension.html). diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/05_updating_the_mongo_data_adapter.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/05_updating_the_mongo_data_adapter.mdx new file mode 100644 index 00000000000..aa29e7403f9 --- /dev/null +++ b/product_docs/docs/mongo_data_adapter/5.2.8/05_updating_the_mongo_data_adapter.mdx @@ -0,0 +1,37 @@ +--- +title: "Updating the MongoDB Foreign Data Wrapper" +--- + + + +**Updating an RPM Installation** + +If you have an existing RPM installation of MongoDB Foreign Data Wrapper, you can use yum or dnf to upgrade your repository configuration file and update to a more recent product version. To update the `edb.repo` file, assume superuser privileges and enter: + +- On RHEL or CentOS 7: + + > `yum upgrade edb-repo` + +- On RHEL or CentOS 8: + + > `dnf upgrade edb-repo` + +yum or dnf will update the `edb.repo` file to enable access to the current EDB repository, configured to connect with the credentials specified in your `edb.repo` file. Then, you can use yum or dnf to upgrade any installed packages: + +- On RHEL or CentOS 7: + + > `yum upgrade edb-as-mongo_fdw` + +- On RHEL or CentOS 8: + + > `dnf upgrade edb-as-mongo_fdw` + + where `xx` is the server version number. + +**Updating MongoDB Foreign Data Wrapper on a Debian or Ubuntu Host** + +To update MongoDB Foreign Data Wrapper on a Debian or Ubuntu Host, use the following command: + +> `apt-get --only-upgrade install edb-as-mongo-fdw edb-libmongoc` +> +> where `xx` is the server version number. diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/06_features_of_mongo_fdw.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/06_features_of_mongo_fdw.mdx new file mode 100644 index 00000000000..aec81845037 --- /dev/null +++ b/product_docs/docs/mongo_data_adapter/5.2.8/06_features_of_mongo_fdw.mdx @@ -0,0 +1,71 @@ +--- +title: "Features of the MongoDB Foreign Data Wrapper" +--- + + + +The key features of the MongoDB Foreign Data Wrapper are listed below: + +## Writable FDW + +The MongoDB Foreign Data Wrapper allows you to modify data on a MongoDB server. Users can `INSERT`, `UPDATE` and `DELETE` data in the remote MongoDB collections by inserting, updating and deleting data locally in foreign tables. See also: + +[Example: Using the MongoDB Foreign Data Wrapper](08_example_using_the_mongo_data_adapter/#example_using_the_mongo_data_adapter) + +[Data Type Mappings](07_configuring_the_mongo_data_adapter/#data-type-mappings) + +## Where Clause Push-down + +MongoDB Foreign Data Wrapper allows the push-down of `WHERE` clause only when clauses include comparison expressions that have a column and a constant as arguments. WHERE clause push-down is not supported where constant is an array. + +## Connection Pooling + +Mongo_FDW establishes a connection to a foreign server during the first query that uses a foreign table associated with the foreign server. This connection is kept and reused for subsequent queries in the same session. + +## Automated Cleanup + +The MongoDB Foreign Data Wrapper allows the cleanup of foreign tables in a single operation using the `DROP EXTENSION` command. This feature is especially useful when a foreign table has been created for a temporary purpose. The syntax of a `DROP EXTENSION` command is: + +> `DROP EXTENSION mongo_fdw CASCADE;` + +For more information, see [DROP EXTENSION](https://www.postgresql.org/docs/current/sql-dropextension.html). + +## Full Document Retrieval + +This feature allows to retrieve documents along with all their fields from collection without any knowledge of the fields in BSON document available in MongoDB's collection. Those retrieved documents are in the JSON format. + +You can retrieve all available fields in a collection residing in MongoDB Foreign Data Wrapper as explained in the following example: + +**Example**: + +The collection in MongoDB Foreign Data Wrapper: + +```text +> db.warehouse.find(); +{ "_id" : ObjectId("58a1ebbaf543ec0b90545859"), "warehouse_id" : 1, "warehouse_name" : "UPS", "warehouse_created" : ISODate("2014-12-12T07:12:10Z") } +{ "_id" : ObjectId("58a1ebbaf543ec0b9054585a"), "warehouse_id" : 2, "warehouse_name" : "Laptop", "warehouse_created" : ISODate("2015-11-11T08:13:10Z") } +``` + +Steps for retrieving the document: + +1. Create foreign table with a column name `__doc`. The type of the column could be json, jsonb, text or varchar. + +```text +CREATE FOREIGN TABLE test_json(__doc json) SERVER mongo_server OPTIONS (database 'testdb', collection 'warehouse'); +``` + +1. Retrieve the document. + +```text +SELECT * FROM test_json ORDER BY __doc::text COLLATE "C"; +``` + +The output: + +```text +edb=#SELECT * FROM test_json ORDER BY __doc::text COLLATE "C"; + __doc --------------------------------------------------------------------------------------------------------------------------------------------------------- +{ "_id" : { "$oid" : "58a1ebbaf543ec0b90545859" }, "warehouse_id" : 1, "warehouse_name" : "UPS", "warehouse_created" : { "$date" : 1418368330000 } } +{ "_id" : { "$oid" : "58a1ebbaf543ec0b9054585a" }, "warehouse_id" : 2, "warehouse_name" : "Laptop", "warehouse_created" : { "$date" : 1447229590000 } } +(2 rows) +``` diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/06_configuring_the_mongo_data_adapter.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/07_configuring_the_mongo_data_adapter.mdx similarity index 50% rename from product_docs/docs/mongo_data_adapter/5.2.8/06_configuring_the_mongo_data_adapter.mdx rename to product_docs/docs/mongo_data_adapter/5.2.8/07_configuring_the_mongo_data_adapter.mdx index 6633ac9328e..b04ccf9e345 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/06_configuring_the_mongo_data_adapter.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/07_configuring_the_mongo_data_adapter.mdx @@ -1,19 +1,15 @@ --- title: "Configuring the MongoDB Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/configuring_the_mongo_data_adapter.html" --- Before using the MongoDB Foreign Data Wrapper, you must: -1. Use the [CREATE EXTENSION](#create-extension) command to create the MongoDB Foreign Data Wrapper extension on the Postgres host. -2. Use the [CREATE SERVER](#create-server) command to define a connection to the MongoDB server. -3. Use the [CREATE USER MAPPING](#create-user-mapping) command to define a mapping that associates a Postgres role with the server. -4. Use the [CREATE FOREIGN TABLE](#create-foreign-table) command to define a table in the Postgres database that corresponds to a database that resides on the MongoDB cluster. +> 1. Use the [CREATE EXTENSION](#create-extension) command to create the MongoDB Foreign Data Wrapper extension on the Postgres host. +> 2. Use the [CREATE SERVER](#create-server) command to define a connection to the MongoDB server. +> 3. Use the [CREATE USER MAPPING](#create-user-mapping) command to define a mapping that associates a Postgres role with the server. +> 4. Use the [CREATE FOREIGN TABLE](#create-foreign-table) command to define a table in the Postgres database that corresponds to a database that resides on the MongoDB cluster. @@ -29,21 +25,21 @@ CREATE EXTENSION [IF NOT EXISTS] mongo_fdw [WITH] [SCHEMA schema_name]; `IF NOT EXISTS` - Include the `IF NOT EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the same name already exists. +> Include the `IF NOT EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the same name already exists. `schema_name` - Optionally specify the name of the schema in which to install the extension's objects. +> Optionally specify the name of the schema in which to install the extension's objects. **Example** The following command installs the MongoDB foreign data wrapper: - `CREATE EXTENSION mongo_fdw;` +> `CREATE EXTENSION mongo_fdw;` For more information about using the foreign data wrapper `CREATE EXTENSION` command, see: - . +> . @@ -62,23 +58,21 @@ The role that defines the server is the owner of the server; use the `ALTER SERV `server_name` - Use `server_name` to specify a name for the foreign server. The server name must be unique within the database. +> Use `server_name` to specify a name for the foreign server. The server name must be unique within the database. `FOREIGN_DATA_WRAPPER` - Include the `FOREIGN_DATA_WRAPPER` clause to specify that the server should use the `mongo_fdw` foreign data wrapper when connecting to the cluster. +> Include the `FOREIGN_DATA_WRAPPER` clause to specify that the server should use the `mongo_fdw` foreign data wrapper when connecting to the cluster. `OPTIONS` - Use the `OPTIONS` clause of the `CREATE SERVER` command to specify connection information for the foreign server object. You can include: +> Use the `OPTIONS` clause of the `CREATE SERVER` command to specify connection information for the foreign server object. You can include: | **Option** | **Description** | | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | address | The address or hostname of the Mongo server. The default value is `127.0.0.1`. | | port | The port number of the Mongo Server. Valid range is 0 to 65535. The default value is `27017`. | | authentication_database | The database against which user will be authenticated. This option is only valid with password based authentication. | -| replica_set | The replica set the server is member of. If it is set, the driver will auto-connect to correct primary in the replica set when writing. | -| read_preference | The order of read preference. Options available are: primary \[default], secondary, primaryPreferred, secondaryPreferred, and nearest. | | ssl | Requests an authenticated, encrypted SSL connection. By default, the value is set to `false`. Set the value to `true` to enable ssl. See to understand the options. | | pem_file | SSL option | | pem_pwd | SSL option. | @@ -99,7 +93,7 @@ The foreign server uses the default port (`27017`) for the connection to the cli For more information about using the `CREATE SERVER` command, see: - +> @@ -118,25 +112,25 @@ You must be the owner of the foreign server to create a user mapping for that se `role_name` - Use `role_name` to specify the role that will be associated with the foreign server. +> Use `role_name` to specify the role that will be associated with the foreign server. `server_name` - Use `server_name` to specify the name of the server that defines a connection to the MongoDB cluster. +> Use `server_name` to specify the name of the server that defines a connection to the MongoDB cluster. `OPTIONS` - Use the `OPTIONS` clause to specify connection information for the foreign server. - - `username`: the name of the user on the MongoDB server. - - `password`: the password associated with the username. +> Use the `OPTIONS` clause to specify connection information for the foreign server. +> +> `username`: the name of the user on the MongoDB server. +> +> `password`: the password associated with the username. **Example** The following command creates a user mapping for a role named `enterprisedb`; the mapping is associated with a server named `mongo_server`: - `CREATE USER MAPPING FOR enterprisedb SERVER mongo_server;` +> `CREATE USER MAPPING FOR enterprisedb SERVER mongo_server;` If the database host uses secure authentication, provide connection credentials when creating the user mapping: @@ -148,7 +142,7 @@ The command creates a user mapping for a role named `enterprisedb` that is assoc For detailed information about the `CREATE USER MAPPING` command, see: - +> @@ -183,57 +177,57 @@ and `table_constraint` is: `table_name` - Specifies the name of the foreign table; include a schema name to specify the schema in which the foreign table should reside. +> Specifies the name of the foreign table; include a schema name to specify the schema in which the foreign table should reside. `IF NOT EXISTS` - Include the `IF NOT EXISTS` clause to instruct the server to not throw an error if a table with the same name already exists; if a table with the same name exists, the server will issue a notice. +> Include the `IF NOT EXISTS` clause to instruct the server to not throw an error if a table with the same name already exists; if a table with the same name exists, the server will issue a notice. `column_name` - Specifies the name of a column in the new table; each column should correspond to a column described on the MongoDB server. +> Specifies the name of a column in the new table; each column should correspond to a column described on the MongoDB server. `data_type` - Specifies the data type of the column; when possible, specify the same data type for each column on the Postgres server and the MongoDB server. If a data type with the same name is not available, the Postgres server will attempt to cast the data type to a type compatible with the MongoDB server. If the server cannot identify a compatible data type, it will return an error. +> Specifies the data type of the column; when possible, specify the same data type for each column on the Postgres server and the MongoDB server. If a data type with the same name is not available, the Postgres server will attempt to cast the data type to a type compatible with the MongoDB server. If the server cannot identify a compatible data type, it will return an error. `COLLATE collation` - Include the `COLLATE` clause to assign a collation to the column; if not specified, the column data type's default collation is used. +> Include the `COLLATE` clause to assign a collation to the column; if not specified, the column data type's default collation is used. `INHERITS (parent_table [, ... ])` - Include the `INHERITS` clause to specify a list of tables from which the new foreign table automatically inherits all columns. Parent tables can be plain tables or foreign tables. +> Include the `INHERITS` clause to specify a list of tables from which the new foreign table automatically inherits all columns. Parent tables can be plain tables or foreign tables. `CONSTRAINT constraint_name` - Specify an optional name for a column or table constraint; if not specified, the server will generate a constraint name. +> Specify an optional name for a column or table constraint; if not specified, the server will generate a constraint name. `NOT NULL` - Include the `NOT NULL` keywords to indicate that the column is not allowed to contain null values. +> Include the `NOT NULL` keywords to indicate that the column is not allowed to contain null values. `NULL` - Include the `NULL` keywords to indicate that the column is allowed to contain null values. This is the default. +> Include the `NULL` keywords to indicate that the column is allowed to contain null values. This is the default. `CHECK (expr) [NO INHERIT]` - Use the `CHECK` clause to specify an expression that produces a Boolean result that each row in the table must satisfy. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint can reference multiple columns. - - A `CHECK` expression cannot contain subqueries or refer to variables other than columns of the current row. - - Include the `NO INHERIT` keywords to specify that a constraint should not propagate to child tables. +> Use the `CHECK` clause to specify an expression that produces a Boolean result that each row in the table must satisfy. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint can reference multiple columns. +> +> A `CHECK` expression cannot contain subqueries or refer to variables other than columns of the current row. +> +> Include the `NO INHERIT` keywords to specify that a constraint should not propagate to child tables. `DEFAULT default_expr` - Include the `DEFAULT` clause to specify a default data value for the column whose column definition it appears within. The data type of the default expression must match the data type of the column. +> Include the `DEFAULT` clause to specify a default data value for the column whose column definition it appears within. The data type of the default expression must match the data type of the column. `SERVER server_name [OPTIONS (option 'value' [, ... ] ) ]` - To create a foreign table that will allow you to query a table that resides on a MongoDB file system, include the `SERVER` clause and specify the `server_name` of the foreign server that uses the MongoDB data adapter. - - Use the `OPTIONS` clause to specify the following `options` and their corresponding values: +> To create a foreign table that will allow you to query a table that resides on a MongoDB file system, include the `SERVER` clause and specify the `server_name` of the foreign server that uses the MongoDB data adapter. +> +> Use the `OPTIONS` clause to specify the following `options` and their corresponding values: | option | value | | ---------- | --------------------------------------------------------------------------------- | @@ -279,7 +273,7 @@ Include the `SERVER` clause to specify the name of the database stored on the Mo For more information about using the `CREATE FOREIGN TABLE` command, see: - +> !!! Note MongoDB foreign data wrapper supports the write capability feature. @@ -290,15 +284,154 @@ For more information about using the `CREATE FOREIGN TABLE` command, see: When using the foreign data wrapper, you must create a table on the Postgres server that mirrors the table that resides on the MongoDB server. The MongoDB data wrapper will automatically convert the following MongoDB data types to the target Postgres type: -| **MongoDB (BSON Type)** | **Postgres** | -| ----------------------- | -------------------------------------------- | -| ARRAY | JSON | -| BOOL | BOOL | -| BINARY | BYTEA | -| DATE_TIME | DATE/TIMESTAMP/TIMESTAMPTZ | -| DOCUMENT | JSON | -| DOUBLE | FLOAT/FLOAT4/FLOAT8/DOUBLE PRECISION/NUMERIC | -| INT32 | SMALLINT/INT2/INT/INTEGER/INT4 | -| INT64 | BIGINT/INT8 | -| OID | NAME | -| UTF8 | BPCHAR/VARCHAR/CHARCTER VARYING/TEXT | +| **MongoDB (BSON Type)** | **Postgres** | +| ---------------------------- | ---------------------------------------- | +| ARRAY JSON BOOL BOOL | | +| BINARY BYTE | A | +| DATE_TIME DATE DOCUMENT JSON | /TIMESTAMP/TIMESTAMPTZ | +| DOUBLE FLOA | T/FLOAT4/FLOAT8/DOUBLE PRECISION/NUMERIC | +| INT32 SMAL | LINT/INT2/INT/INTEGER/INT4 | +| INT64 BIGI OID NAME | NT/INT8 | +| UTF8 BPCH | AR/VARCHAR/CHARCTER VARYING/TEXT | + +## DROP EXTENSION + +Use the `DROP EXTENSION` command to remove an extension. To invoke the command, use your client of choice (for example, psql) to connect to the Postgres database from which you will be dropping the MongoDB server, and run the command: + +```text +DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]; +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the specified name doesn't exists. + +`name` + +> Specify the name of the installed extension. It is optional. +> +> `CASCADE` +> +> Automatically drop objects that depend on the extension. It drops all the other dependent objects too. +> +> `RESTRICT` +> +> Do not allow to drop extension if any objects, other than its member objects and extensions listed in the same DROP command are dependent on it. + +**Example** + +The following command removes the extension from the existing database: + +> `DROP EXTENSION mongo_fdw;` + +For more information about using the foreign data wrapper `DROP EXTENSION` command, see: + +> . + +## DROP SERVER + +Use the `DROP SERVER` command to remove a connection to a foreign server. The syntax is: + +```text +DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] +``` + +The role that drops the server is the owner of the server; use the `ALTER SERVER` command to reassign ownership of a foreign server. To drop a foreign server, you must have `USAGE` privilege on the foreign-data wrapper specified in the `DROP SERVER` command. + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if a server with the specified name doesn't exists. + +`name` + +> Specify the name of the installed server. It is optional. +> +> `CASCADE` +> +> Automatically drop objects that depend on the server. It should drop all the other dependent objects too. +> +> `RESTRICT` +> +> Do not allow to drop the server if any objects are dependent on it. + +**Example** + +The following command removes a foreign server named `mongo_server`: + +> `DROP SERVER mongo_server;` + +For more information about using the `DROP SERVER` command, see: + +> + +## DROP USER MAPPING + +Use the `DROP USER MAPPING` command to remove a mapping that associates a Postgres role with a foreign server. You must be the owner of the foreign server to remove a user mapping for that server. + +```text +DROP USER MAPPING [ IF EXISTS ] FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name; +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if the user mapping doesn't exist. + +`user_name` + +> Specify the user name of the mapping. + +`server_name` + +> Specify the name of the server that defines a connection to the MongoDB cluster. + +**Example** + +The following command drops a user mapping for a role named `enterprisedb`; the mapping is associated with a server named `mongo_server`: + +> `DROP USER MAPPING FOR enterprisedb SERVER mongo_server;` + +For detailed information about the `DROP USER MAPPING` command, see: + +> + +## DROP FOREIGN TABLE + +A foreign table is a pointer to a table that resides on the MongoDB host. Use the `DROP FOREIGN TABLE` command to remove a foreign table. Only the owner of the foreign table can drop it. + +```text +DROP FOREIGN TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if the foreign table with the specified name doesn't exists. + +`name` + +> Specify the name of the foreign table. + +`CASCADE` + +> Automatically drop objects that depend on the foreign table. It should drop all the other dependent objects too. + +`RESTRICT` + +> Do not allow to drop foreign table if any objects are dependent on it. + +**Example** + +```text +DROP FOREIGN TABLE warehouse; +``` + +For more information about using the `DROP FOREIGN TABLE` command, see: + +> diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/07_example_using_the_mongo_data_adapter.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/08_example_using_the_mongo_data_adapter.mdx similarity index 91% rename from product_docs/docs/mongo_data_adapter/5.2.8/07_example_using_the_mongo_data_adapter.mdx rename to product_docs/docs/mongo_data_adapter/5.2.8/08_example_using_the_mongo_data_adapter.mdx index e4e210ad8a6..38f2f35b122 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/07_example_using_the_mongo_data_adapter.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/08_example_using_the_mongo_data_adapter.mdx @@ -1,9 +1,5 @@ --- title: "Example: Using the MongoDB Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/example_using_the_mongo_data_adapter.html" --- @@ -20,7 +16,7 @@ CREATE SERVER mongo_server OPTIONS (address '127.0.0.1', port '27017'); -- create user mapping -CREATE USER MAPPING FOR postgres +CREATE USER MAPPING FOR enterprisedb SERVER mongo_server OPTIONS (username 'mongo_user', password 'mongo_pass'); @@ -105,4 +101,13 @@ EXPLAIN SELECT * FROM warehouse WHERE warehouse_id = 1; -- collect data distribution statistics ANALYZE warehouse; + +-- drop foreign table +DROP FOREIGN TABLE warehouse; + +-- drop user mapping +DROP USER MAPPING FOR enterprisedb SERVER mongo_server; + +-- drop server +DROP SERVER mongo_server; ``` diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/08_identifying_data_adapter_version.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/09_identifying_data_adapter_version.mdx similarity index 67% rename from product_docs/docs/mongo_data_adapter/5.2.8/08_identifying_data_adapter_version.mdx rename to product_docs/docs/mongo_data_adapter/5.2.8/09_identifying_data_adapter_version.mdx index 49886bdff87..b1d0564acc4 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/08_identifying_data_adapter_version.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/09_identifying_data_adapter_version.mdx @@ -1,9 +1,5 @@ --- title: "Identifying the MongoDB Foreign Data Wrapper Version" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/identifying_data_adapter_version.html" --- diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/10_limitations.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/10_limitations.mdx new file mode 100644 index 00000000000..acdd2f2383c --- /dev/null +++ b/product_docs/docs/mongo_data_adapter/5.2.8/10_limitations.mdx @@ -0,0 +1,11 @@ +--- +title: "Limitations" +--- + + + +The following limitations apply to MongoDB Foreign Data Wrapper: + +- If the BSON document key contains uppercase letters or occurs within a nested document, MongoDB Foreign Data Wrapper requires the corresponding column names to be declared in double quotes. +- PostgreSQL limits column names to 63 characters by default. You can increase the `NAMEDATALEN` constant in `src/include/pg_config_manual.h`, compile, and re-install when column names extend beyond 63 characters. +- MongoDB Foreign Data Wrapper errors out on BSON field which is not listed in the known types (For example: byte, arrays). It throws an error: `Cannot convert BSON type to column type`. diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/11_uninstalling_the_mongo_data_adapter.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/11_uninstalling_the_mongo_data_adapter.mdx new file mode 100644 index 00000000000..8313284a962 --- /dev/null +++ b/product_docs/docs/mongo_data_adapter/5.2.8/11_uninstalling_the_mongo_data_adapter.mdx @@ -0,0 +1,27 @@ +--- +title: "Uninstalling the MongoDB Foreign Data Wrapper" +--- + + + +**Uninstalling an RPM Package** + +You can use the `yum remove` or `dnf remove` command to remove a package installed by `yum` or `dnf`. To remove a package, open a terminal window, assume superuser privileges, and enter the command: + +- On RHEL or CentOS 7: + + `yum remove edb-as-mongo_fdw` + +- On RHEL or CentOS 8: + + `dnf remove edb-as-mongo_fdw` + +Where `xx` is the server version number. + +**Uninstalling MongoDB Foreign Data Wrapper on a Debian or Ubuntu Host** + +- To uninstall MongoDB Foreign Data Wrapper on a Debian or Ubuntu host, invoke the following command. + + `apt-get remove edb-as-mongo-fdw` + +Where `xx` is the server version number. diff --git a/product_docs/docs/mongo_data_adapter/5.2.8/index.mdx b/product_docs/docs/mongo_data_adapter/5.2.8/index.mdx index 7103853ae39..5117f306aad 100644 --- a/product_docs/docs/mongo_data_adapter/5.2.8/index.mdx +++ b/product_docs/docs/mongo_data_adapter/5.2.8/index.mdx @@ -1,15 +1,5 @@ --- title: "MongoDB Foreign Data Wrapper Guide" -directoryDefaults: - description: "EDB Postgres MongoDB Foreign Data Wrapper Version 5.2.8 Documentation and release notes." - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/index.html" - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/conclusion.html" - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/whats_new.html" - - "/edb-docs/d/edb-postgres-mongodb-data-adapter/user-guides/user-guide/5.2.8/genindex.html" - - "/edb-docs/p/edb-postgres-mongodb-data-adapter/5.2.8" --- The MongoDB Foreign Data Wrapper (`mongo_fdw`) is a Postgres extension that allows you to access data that resides on a MongoDB database from EDB Postgres Advanced Server. It is a writable foreign data wrapper that you can use with Postgres functions and utilities, or in conjunction with other data that resides on a Postgres host. @@ -20,6 +10,6 @@ This guide uses the term `Postgres` to refer to an instance of EDB Postgres Adva
-whats_new requirements_overview architecture_overview installing_the_mongo_data_adapter features_of_mongo_fdw configuring_the_mongo_data_adapter example_using_the_mongo_data_adapter identifying_data_adapter_version conclusion +whats_new requirements_overview architecture_overview installing_the_mongo_data_adapter updating_the_mongo_data_adapter features_of_mongo_fdw configuring_the_mongo_data_adapter example_using_the_mongo_data_adapter identifying_data_adapter_version limitations uninstalling_the_mongo_data_adapter conclusion
diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/01_whats_new.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/01_whats_new.mdx index 2a9e74f2cdb..f01d86b275d 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/01_whats_new.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/01_whats_new.mdx @@ -1,9 +1,5 @@ --- title: "What’s New" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/whats_new.html" --- diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/02_requirements_overview.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/02_requirements_overview.mdx index d2727fac08f..3b8ed138c80 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/02_requirements_overview.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/02_requirements_overview.mdx @@ -1,14 +1,10 @@ --- title: "Requirements Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/requirements_overview.html" --- ## Supported Versions -The MySQL Foreign Data Wrapper is certified with EDB Postgres Advanced Server 9.5 and above. +The MySQL Foreign Data Wrapper is certified with EDB Postgres Advanced Server 9.6 and above. ## Supported Platforms @@ -16,12 +12,12 @@ The MySQL Foreign Data Wrapper is supported on the following platforms: **Linux x86-64** -- RHEL 8.x/7.x -- CentOS 8.x/7.x -- OEL 8.x/7.x -- Ubuntu 20.04/18.04 LTS -- Debian 10.x/9.x +> - RHEL 8.x/7.x +> - CentOS 8.x/7.x +> - OEL 8.x/7.x +> - Ubuntu 20.04/18.04 LTS +> - Debian 10.x/9.x **Linux on IBM Power8/9 (LE)** -- RHEL 7.x +> - RHEL 7.x diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/03_architecture_overview.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/03_architecture_overview.mdx index f855eea4741..fba2349b118 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/03_architecture_overview.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/03_architecture_overview.mdx @@ -1,9 +1,5 @@ --- title: "Architecture Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/architecture_overview.html" --- @@ -11,5 +7,3 @@ legacyRedirectsGenerated: The MySQL data wrapper provides an interface between a MySQL server and a Postgres database. It transforms a Postgres statement (`SELECT`/`INSERT`/`DELETE`/`UPDATE`) into a query that is understood by the MySQL database. ![Using mysql_fdw with Postgres](images/mysql_server_with_postgres.png) - -Using mysql_fdw with Postgres diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/04_installing_the_mysql_data_adapter.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/04_installing_the_mysql_data_adapter.mdx index d971ed9e206..deffe4b7dba 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/04_installing_the_mysql_data_adapter.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/04_installing_the_mysql_data_adapter.mdx @@ -1,9 +1,5 @@ --- title: "Installing the MySQL Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/installing_the_mysql_data_adapter.html" --- @@ -29,19 +25,19 @@ Before installing the MySQL Foreign Data Wrapper, you must install the following Install the `epel-release` package: -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` +> ```text +> yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +> ``` Enable the optional, extras, and HA repositories: -```text -subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" -``` +> ```text +> subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -53,9 +49,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -63,26 +59,26 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing MySQL Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the MySQL Foreign Data Wrapper: -```text -yum install edb-as-mysql_fdw -``` +> ```text +> yum install edb-as-mysql_fdw +> ``` where `xx` is the server version number, and `x` is the supported release version number of MySQL. For example, to install MySQL 5.0 on RHEL 7: - `yum install edb-as-mysql5_fdw` +> `yum install edb-as-mysql5_fdw` !!! Note MySQL 8.0 and MySQL 5.0 RPMs are available for RHEL 7 platform. @@ -99,20 +95,20 @@ Before installing the MySQL Foreign Data Wrapper, you must install the following Install the `epel-release` package: -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` +> ```text +> dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +> ``` Enable the `codeready-builder-for-rhel-8-\*-rpms` repository: -```text -ARCH=$( /bin/arch ) -subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" -``` +> ```text +> ARCH=$( /bin/arch ) +> subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -124,9 +120,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -134,22 +130,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing MySQL Foreign Data Wrapper** After saving your changes to the configuration file, use the below command to install the MySQL Foreign Data Wrapper: -```text -dnf install edb-as-mysql8_fdw -``` +> ```text +> dnf install edb-as-mysql8_fdw +> ``` When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. @@ -163,16 +159,16 @@ Before installing the MySQL Foreign Data Wrapper, you must install the following Install the `epel-release` package: -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` +> ```text +> yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +> ``` !!! Note You may need to enable the `[extras]` repository definition in the `CentOS-Base.repo` file (located in `/etc/yum.repos.d`). You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -184,9 +180,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -194,26 +190,26 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing MySQL Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the MySQL Foreign Data Wrapper: -```text -yum install edb-as-mysql_fdw -``` +> ```text +> yum install edb-as-mysql_fdw +> ``` where `xx` is the server version number, and `x` is the supported release version number of MySQL. For example, to install MySQL 5.0 on CentOS 7: - `yum install edb-as-mysql5_fdw` +> `yum install edb-as-mysql5_fdw` !!! Note MySQL 8.0 and MySQL 5.0 RPMs are available for CentOS 7 platform. @@ -230,19 +226,19 @@ Before installing the MySQL Foreign Data Wrapper, you must install the following Install the `epel-release` package: -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` +> ```text +> dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +> ``` Enable the `PowerTools` repository: -```text -dnf config-manager --set-enabled PowerTools -``` +> ```text +> dnf config-manager --set-enabled PowerTools +> ``` You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - +> After receiving your repository credentials you can: @@ -254,9 +250,9 @@ After receiving your repository credentials you can: To create the repository configuration file, assume superuser privileges, and invoke the following command: -```text -dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` +> ```text +> dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm +> ``` The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. @@ -264,22 +260,22 @@ The repository configuration file is named `edb.repo`. The file resides in `/etc After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` +> ```text +> [edb] +> name=EnterpriseDB RPMs $releasever - $basearch +> baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch +> enabled=1 +> gpgcheck=1 +> gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY +> ``` **Installing MySQL Foreign Data Wrapper** After saving your changes to the configuration file, use the following command to install the MySQL Foreign Data Wrapper: -```text -dnf install edb-as-mysql8_fdw -``` +> ```text +> dnf install edb-as-mysql8_fdw +> ``` where `xx` is the server version number. @@ -303,23 +299,23 @@ sudo su – On Debian 9: - ```text - sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` + > ```text + > sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' + > ``` On Debian 10: 1. Set up the EDB repository: - ```text - sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` + > ```text + > sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' + > ``` - 2. Substitute your EDB credentials for the `username` and `password` in the following command: + 1. Substitute your EDB credentials for the `username` and `password` in the following command: - ```text - sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' - ``` + > ```text + > sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' + > ``` 2. Add support to your system for secure APT repositories: @@ -327,20 +323,20 @@ sudo su – apt-get install apt-transport-https ``` -3. Add the EBD signing key: +1. Add the EBD signing key: ```text wget -q -O - https://username:password @apt.enterprisedb.com/edb-deb.gpg.key | apt-key add - ``` -4. Update the repository metadata: +1. Update the repository metadata: ```text apt-get update ``` -5. Install DEB package: +1. Install DEB package: ```text apt-get install edb-as-mysql-fdw diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/05_updating_the_mysql_data_adapter.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/05_updating_the_mysql_data_adapter.mdx new file mode 100644 index 00000000000..962cbf3d2c6 --- /dev/null +++ b/product_docs/docs/mysql_data_adapter/2.5.5/05_updating_the_mysql_data_adapter.mdx @@ -0,0 +1,39 @@ +--- +title: "Updating the MySQL Foreign Data Wrapper" +--- + + + +**Updating an RPM Installation** + +If you have an existing RPM installation of MySQL Foreign Data Wrapper, you can use yum or dnf to upgrade your repository configuration file and update to a more recent product version. To update the `edb.repo` file, assume superuser privileges and enter: + +- On RHEL or CentOS 7: + + > `yum upgrade edb-repo` + +- On RHEL or CentOS 8: + + > `dnf upgrade edb-repo` + +yum or dnf will update the `edb.repo` file to enable access to the current EDB repository, configured to connect with the credentials specified in your `edb.repo` file. Then, you can use yum or dnf to upgrade any installed packages: + +- On RHEL or CentOS 7: + + > `yum upgrade edb-as-mysql_fdw` + + where `xx` is the server version number, and `x` is the supported release version number of MySQL. For example, to upgrade MySQL 5.0 on RHEL 7: + + > `yum upgrade edb-as-mysql5_fdw` + +- On RHEL or CentOS 8: + + > `dnf upgrade edb-as-mysql8_fdw` + +**Updating MongoDB Foreign Data Wrapper on a Debian or Ubuntu Host** + +To update MySQL Foreign Data Wrapper on a Debian or Ubuntu Host, use the following command: + +> `apt-get --only-upgrade install edb-as-mysql_fdw` + +where `xx` is the server version number, and `x` is the supported release version number of MySQL. diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/05_features_of_mysql_fdw.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/06_features_of_mysql_fdw.mdx similarity index 74% rename from product_docs/docs/mysql_data_adapter/2.5.5/05_features_of_mysql_fdw.mdx rename to product_docs/docs/mysql_data_adapter/2.5.5/06_features_of_mysql_fdw.mdx index 9bb16604d2d..be1ab179426 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/05_features_of_mysql_fdw.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/06_features_of_mysql_fdw.mdx @@ -1,9 +1,5 @@ --- title: "Features of the MySQL Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/features_of_mysql_fdw.html" --- @@ -19,9 +15,9 @@ MySQL Foreign Data Wrapper provides the write capability. Users can insert, upda See also: -[Example: Using the MySQL Foreign Data Wrapper](07_example_using_the_mysql_data_adapter/#example_using_the_mysql_data_adapter) +[Example: Using the MySQL Foreign Data Wrapper](08_example_using_the_mysql_data_adapter/#example_using_the_mysql_data_adapter) -[Data Type Mappings](06_configuring_the_mysql_data_adapter/#data-type-mappings) +[Data Type Mappings](07_configuring_the_mysql_data_adapter/#data-type-mappings) ## Connection Pooling @@ -45,12 +41,24 @@ MySQL Foreign Data Wrapper supports Import Foreign Schema which enables the loca See also: -[Example: Import Foreign Schema](08_example_import_foreign_schema/#example_import_foreign_schema) +[Example: Import Foreign Schema](09_example_import_foreign_schema/#example_import_foreign_schema) ## Automated Cleanup -MySQL Foreign Data Wrappper allows the cleanup of foreign tables in a single operation using `DROP EXTENSION` command. This feature is specifically useful when a foreign table is set for a temporary purpose, as in case of data migration. The syntax: +MySQL Foreign Data Wrappper allows the cleanup of foreign tables in a single operation using `DROP EXTENSION` command. This feature is specifically useful when a foreign table is set for a temporary purpose. The syntax: - `DROP EXTENSION mysql_fdw CASCADE;` +> `DROP EXTENSION mysql_fdw CASCADE;` For more information, see [DROP EXTENSION](https://www.postgresql.org/docs/current/sql-dropextension.html). + +## Join Push-down + +MySQL Foreign Data Wrapper supports join push-down. It pushes the joins between two foreign tables from the same remote MySQL server to a remote server, thereby enhancing the performance. + +!!! Note + - Currently, joins involving only relational and arithmetic operators in join-clauses are pushed down to avoid any potential join failure. + - Only the INNER and LEFT/RIGHT OUTER joins are supported. + +See also: + +[Example: Join Push-down](10_example_join_push_down/#example_join_push_down) diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/06_configuring_the_mysql_data_adapter.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/07_configuring_the_mysql_data_adapter.mdx similarity index 50% rename from product_docs/docs/mysql_data_adapter/2.5.5/06_configuring_the_mysql_data_adapter.mdx rename to product_docs/docs/mysql_data_adapter/2.5.5/07_configuring_the_mysql_data_adapter.mdx index b619fe1df01..f733e6dccf9 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/06_configuring_the_mysql_data_adapter.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/07_configuring_the_mysql_data_adapter.mdx @@ -1,19 +1,15 @@ --- title: "Configuring the MySQL Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/configuring_the_mysql_data_adapter.html" --- Before using the MySQL Foreign Data Wrapper, you must: -1. Use the [CREATE EXTENSION](#create-extension) command to create the MySQL Foreign Data Wrapper extension on the Postgres host. -2. Use the [CREATE SERVER](#create-server) command to define a connection to the MySQL server. -3. Use the [CREATE USER MAPPING](#create-user-mapping) command to define a mapping that associates a Postgres role with the server. -4. Use the [CREATE FOREIGN TABLE](#create-foreign-table) command to define a single table in the Postgres database that corresponds to a table that resides on the MySQL server or use the [IMPORT FOREIGN SCHEMA](#import-foreign-schema) command to import multiple remote tables in the local schema. +> 1. Use the [CREATE EXTENSION](#create-extension) command to create the MySQL Foreign Data Wrapper extension on the Postgres host. +> 2. Use the [CREATE SERVER](#create-server) command to define a connection to the MySQL server. +> 3. Use the [CREATE USER MAPPING](#create-user-mapping) command to define a mapping that associates a Postgres role with the server. +> 4. Use the [CREATE FOREIGN TABLE](#create-foreign-table) command to define a single table in the Postgres database that corresponds to a table that resides on the MySQL server or use the [IMPORT FOREIGN SCHEMA](#import-foreign-schema) command to import multiple remote tables in the local schema. @@ -29,21 +25,21 @@ CREATE EXTENSION [IF NOT EXISTS] mysql_fdw [WITH] [SCHEMA schema_name]; `IF NOT EXISTS` - Include the `IF NOT EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the same name already exists. +> Include the `IF NOT EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the same name already exists. `schema_name` - Optionally specify the name of the schema in which to install the extension's objects. +> Optionally specify the name of the schema in which to install the extension's objects. **Example** The following command installs the MySQL foreign data wrapper: - `CREATE EXTENSION mysql_fdw;` +> `CREATE EXTENSION mysql_fdw;` For more information about using the foreign data wrapper `CREATE EXTENSION` command, see: - . +> . @@ -62,15 +58,15 @@ The role that defines the server is the owner of the server; use the `ALTER SERV `server_name` - Use `server_name` to specify a name for the foreign server. The server name must be unique within the database. +> Use `server_name` to specify a name for the foreign server. The server name must be unique within the database. `FOREIGN_DATA_WRAPPER` - Include the `FOREIGN_DATA_WRAPPER` clause to specify that the server should use the `mysql_fdw` foreign data wrapper when connecting to the cluster. +> Include the `FOREIGN_DATA_WRAPPER` clause to specify that the server should use the `mysql_fdw` foreign data wrapper when connecting to the cluster. `OPTIONS` - Use the `OPTIONS` clause of the `CREATE SERVER` command to specify connection information for the foreign server. You can include: +> Use the `OPTIONS` clause of the `CREATE SERVER` command to specify connection information for the foreign server. You can include: | Option | Description | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -97,7 +93,7 @@ The foreign server uses the default port (`3306`) for the connection to the clie For more information about using the `CREATE SERVER` command, see: - +> @@ -116,25 +112,25 @@ You must be the owner of the foreign server to create a user mapping for that se `role_name` - Use `role_name` to specify the role that will be associated with the foreign server. +> Use `role_name` to specify the role that will be associated with the foreign server. `server_name` - Use `server_name` to specify the name of the server that defines a connection to the MySQL cluster. +> Use `server_name` to specify the name of the server that defines a connection to the MySQL cluster. `OPTIONS` - Use the `OPTIONS` clause to specify connection information for the foreign server. - - `username`: the name of the user on the MySQL server. - - `password`: the password associated with the username. +> Use the `OPTIONS` clause to specify connection information for the foreign server. +> +> `username`: the name of the user on the MySQL server. +> +> `password`: the password associated with the username. **Example** The following command creates a user mapping for a role named `enterprisedb`; the mapping is associated with a server named `mysql_server`: - `CREATE USER MAPPING FOR enterprisedb SERVER mysql_server;` +> `CREATE USER MAPPING FOR enterprisedb SERVER mysql_server;` If the database host uses secure authentication, provide connection credentials when creating the user mapping: @@ -146,7 +142,7 @@ The command creates a user mapping for a role named `public` that is associated For detailed information about the `CREATE USER MAPPING` command, see: - +> @@ -181,57 +177,57 @@ and `table_constraint` is: `table_name` - Specifies the name of the foreign table; include a schema name to specify the schema in which the foreign table should reside. +> Specifies the name of the foreign table; include a schema name to specify the schema in which the foreign table should reside. `IF NOT EXISTS` - Include the `IF NOT EXISTS` clause to instruct the server to not throw an error if a table with the same name already exists; if a table with the same name exists, the server will issue a notice. +> Include the `IF NOT EXISTS` clause to instruct the server to not throw an error if a table with the same name already exists; if a table with the same name exists, the server will issue a notice. `column_name` - Specifies the name of a column in the new table; each column should correspond to a column described on the MySQL server. +> Specifies the name of a column in the new table; each column should correspond to a column described on the MySQL server. `data_type` - Specifies the data type of the column; when possible, specify the same data type for each column on the Postgres server and the MySQL server. If a data type with the same name is not available, the Postgres server will attempt to cast the data type to a type compatible with the MySQL server. If the server cannot identify a compatible data type, it will return an error. +> Specifies the data type of the column; when possible, specify the same data type for each column on the Postgres server and the MySQL server. If a data type with the same name is not available, the Postgres server will attempt to cast the data type to a type compatible with the MySQL server. If the server cannot identify a compatible data type, it will return an error. `COLLATE collation` - Include the `COLLATE` clause to assign a collation to the column; if not specified, the column data type's default collation is used. +> Include the `COLLATE` clause to assign a collation to the column; if not specified, the column data type's default collation is used. `INHERITS (parent_table [, ... ])` - Include the `INHERITS` clause to specify a list of tables from which the new foreign table automatically inherits all columns. Parent tables can be plain tables or foreign tables. +> Include the `INHERITS` clause to specify a list of tables from which the new foreign table automatically inherits all columns. Parent tables can be plain tables or foreign tables. `CONSTRAINT constraint_name` - Specify an optional name for a column or table constraint; if not specified, the server will generate a constraint name. +> Specify an optional name for a column or table constraint; if not specified, the server will generate a constraint name. `NOT NULL` - Include the `NOT NULL` keywords to indicate that the column is not allowed to contain null values. +> Include the `NOT NULL` keywords to indicate that the column is not allowed to contain null values. `NULL` - Include the `NULL` keywords to indicate that the column is allowed to contain null values. This is the default. +> Include the `NULL` keywords to indicate that the column is allowed to contain null values. This is the default. `CHECK (expr) [NO INHERIT]` - Use the `CHECK` clause to specify an expression that produces a Boolean result that each row in the table must satisfy. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint can reference multiple columns. - - A `CHECK` expression cannot contain subqueries or refer to variables other than columns of the current row. - - Include the `NO INHERIT` keywords to specify that a constraint should not propagate to child tables. +> Use the `CHECK` clause to specify an expression that produces a Boolean result that each row in the table must satisfy. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint can reference multiple columns. +> +> A `CHECK` expression cannot contain subqueries or refer to variables other than columns of the current row. +> +> Include the `NO INHERIT` keywords to specify that a constraint should not propagate to child tables. `DEFAULT default_expr` - Include the `DEFAULT` clause to specify a default data value for the column whose column definition it appears within. The data type of the default expression must match the data type of the column. +> Include the `DEFAULT` clause to specify a default data value for the column whose column definition it appears within. The data type of the default expression must match the data type of the column. `SERVER server_name [OPTIONS (option 'value' [, ... ] ) ]` - To create a foreign table that will allow you to query a table that resides on a MySQL file system, include the `SERVER` clause and specify the `server_name` of the foreign server that uses the MySQL data adapter. - - Use the `OPTIONS` clause to specify the following `options` and their corresponding values: +> To create a foreign table that will allow you to query a table that resides on a MySQL file system, include the `SERVER` clause and specify the `server_name` of the foreign server that uses the MySQL data adapter. +> +> Use the `OPTIONS` clause to specify the following `options` and their corresponding values: | option | value | | ------------- | ---------------------------------------------------------------------------------------- | @@ -267,7 +263,7 @@ Include the `SERVER` clause to specify the name of the database stored on the My For more information about using the `CREATE FOREIGN TABLE` command, see: - +> !!! Note MySQL foreign data wrapper supports the write capability feature. @@ -296,9 +292,11 @@ When using the foreign data wrapper, you must create a table on the Postgres ser !!! Note For `ENUM` data type: -MySQL accepts `enum` value in string form. You must create exactly same `enum` listing on Advanced Server as that is present on MySQL server. Any sort of inconsistency will result in an error while fetching rows with values not known on the local server. + MySQL accepts `enum` value in string form. You must create exactly same `enum` listing on Advanced Server as that is present on MySQL server. Any sort of inconsistency will result in an error while fetching rows with values not known on the local server. -Also, when the given `enum` value is not present at MySQL side but present at Postgres/Advanced Server side, an empty string (`''`) is inserted as a value at MySQL side for the `enum` column. To select from such a table having enum value as `''`, create an `enum` type at Postgres side with all valid values and `''`. + Also, when the given `enum` value is not present at MySQL side but present at Postgres/Advanced Server side, an empty string (`''`) is inserted as a value at MySQL side for the `enum` column. To select from such a table having enum value as `''`, create an `enum` type at Postgres side with all valid values and `''`. + + ## IMPORT FOREIGN SCHEMA @@ -316,32 +314,38 @@ IMPORT FOREIGN SCHEMA remote_schema `remote_schema` - Specifies the remote schema (MySQL database) to import from. +> Specifies the remote schema (MySQL database) to import from. `LIMIT TO ( table_name [, ...] )` - By default, all views and tables existing in a particular database on the MySQL host are imported. Using this option, you can limit the list of tables to a specified subset. +> By default, all views and tables existing in a particular database on the MySQL host are imported. Using this option, you can limit the list of tables to a specified subset. `EXCEPT ( table_name [, ...] )` - By default, all views and tables existing in a particular database on the MySQL host are imported. Using this option, you can exclude specified foreign tables from the import. +> By default, all views and tables existing in a particular database on the MySQL host are imported. Using this option, you can exclude specified foreign tables from the import. `SERVER server_name` - Specify the name of server to import foreign tables from. +> Specify the name of server to import foreign tables from. `local_schema` - Specify the name of local schema where the imported foreign tables must be created. +> Specify the name of local schema where the imported foreign tables must be created. `OPTIONS` - Use the `OPTIONS` clause to specify the following `options` and their corresponding values: - -| **Option** | **Description** | -| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| import_default | Controls whether column `DEFAULT` expressions are included in the definitions of foreign tables imported from a foreign server. The default is `false`. | -| import_not_null | Controls whether column `NOT NULL` constraints are included in the definitions of foreign tables imported from a foreign server. The default is `true`. | +> Use the `OPTIONS` clause to specify the following `options` and their corresponding values: +> +> >
+> > +> > Y{0.6}\| +> > +> >
+> > +> > | **Option** | **Description** | +> > | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +> > | import_default | Controls whether column `DEFAULT` expressions are included in the definitions of foreign tables imported from a foreign server. The default is `false`. | +> > | import_not_null | Controls whether column `NOT NULL` constraints are included in the definitions of foreign tables imported from a foreign server. The default is `true`. | **Example** @@ -385,4 +389,146 @@ The command imports table definitions from a remote schema `edb` on server `mysq For more information about using the `IMPORT FOREIGN SCHEMA` command, see: - +> + +## DROP EXTENSION + +Use the `DROP EXTENSION` command to remove an extension. To invoke the command, use your client of choice (for example, psql) to connect to the Postgres database from which you will be dropping the MySQL server, and run the command: + +```text +DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]; +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if an extension with the specified name doesn't exists. + +`name` + +> Specify the name of the installed extension. It is optional. +> +> `CASCADE` +> +> Automatically drop objects that depend on the extension. It drops all the other dependent objects too. +> +> `RESTRICT` +> +> Do not allow to drop extension if any objects, other than its member objects and extensions listed in the same DROP command are dependent on it. + +**Example** + +The following command removes the extension from the existing database: + +> `DROP EXTENSION mysql_fdw;` + +For more information about using the foreign data wrapper `DROP EXTENSION` command, see: + +> . + +## DROP SERVER + +Use the `DROP SERVER` command to remove a connection to a foreign server. The syntax is: + +```text +DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] +``` + +The role that drops the server is the owner of the server; use the `ALTER SERVER` command to reassign ownership of a foreign server. To drop a foreign server, you must have `USAGE` privilege on the foreign-data wrapper specified in the `DROP SERVER` command. + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if a server with the specified name doesn't exists. + +`name` + +> Specify the name of the installed server. It is optional. +> +> `CASCADE` +> +> Automatically drop objects that depend on the server. It should drop all the other dependent objects too. +> +> `RESTRICT` +> +> Do not allow to drop the server if any objects are dependent on it. + +**Example** + +The following command removes a foreign server named `mysql_server`: + +> `DROP SERVER mysql_server;` + +For more information about using the `DROP SERVER` command, see: + +> + +## DROP USER MAPPING + +Use the `DROP USER MAPPING` command to remove a mapping that associates a Postgres role with a foreign server. You must be the owner of the foreign server to remove a user mapping for that server. + +```text +DROP USER MAPPING [ IF EXISTS ] FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name; +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if the user mapping doesn't exist. + +`user_name` + +> Specify the user name of the mapping. + +`server_name` + +> Specify the name of the server that defines a connection to the MySQL cluster. + +**Example** + +The following command drops a user mapping for a role named `enterprisedb`; the mapping is associated with a server named `mysql_server`: + +> `DROP USER MAPPING FOR enterprisedb SERVER mysql_server;` + +For detailed information about the `DROP USER MAPPING` command, see: + +> + +## DROP FOREIGN TABLE + +A foreign table is a pointer to a table that resides on the MySQL host. Use the `DROP FOREIGN TABLE` command to remove a foreign table. Only the owner of the foreign table can drop it. + +```text +DROP FOREIGN TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] +``` + +**Parameters** + +`IF EXISTS` + +> Include the `IF EXISTS` clause to instruct the server to issue a notice instead of throwing an error if the foreign table with the specified name doesn't exists. + +`name` + +> Specify the name of the foreign table. + +`CASCADE` + +> Automatically drop objects that depend on the foreign table. It should drop all the other dependent objects too. + +`RESTRICT` + +> Do not allow to drop foreign table if any objects are dependent on it. + +**Example** + +```text +DROP FOREIGN TABLE warehouse; +``` + +For more information about using the `DROP FOREIGN TABLE` command, see: + +> diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/07_example_using_the_mysql_data_adapter.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/08_example_using_the_mysql_data_adapter.mdx similarity index 88% rename from product_docs/docs/mysql_data_adapter/2.5.5/07_example_using_the_mysql_data_adapter.mdx rename to product_docs/docs/mysql_data_adapter/2.5.5/08_example_using_the_mysql_data_adapter.mdx index f7736cb31e8..6c802b4334a 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/07_example_using_the_mysql_data_adapter.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/08_example_using_the_mysql_data_adapter.mdx @@ -1,9 +1,5 @@ --- title: "Example: Using the MySQL Foreign Data Wrapper" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/example_using_the_mysql_data_adapter.html" --- @@ -20,7 +16,7 @@ CREATE SERVER mysql_server OPTIONS (host '127.0.0.1', port '3306'); -- create user mapping -CREATE USER MAPPING FOR postgres +CREATE USER MAPPING FOR enterprisedb SERVER mysql_server OPTIONS (username 'foo', password 'bar'); -- create foreign table @@ -64,4 +60,13 @@ Limit (cost=10.00..11.00 rows=1 width=36) Output: warehouse_id, warehouse_name Local server startup cost: 10 Remote query: SELECT `warehouse_id`, `warehouse_name` FROM `db`.`warehouse` WHERE ((`warehouse_name` LIKE BINARY 'TV')) + +-- drop foreign table +DROP FOREIGN TABLE warehouse; + +-- drop user mapping +DROP USER MAPPING FOR enterprisedb SERVER mysql_server; + +-- drop server +DROP SERVER mysql_server; ``` diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/08_example_import_foreign_schema.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/09_example_import_foreign_schema.mdx similarity index 77% rename from product_docs/docs/mysql_data_adapter/2.5.5/08_example_import_foreign_schema.mdx rename to product_docs/docs/mysql_data_adapter/2.5.5/09_example_import_foreign_schema.mdx index 57ca4675a9a..04384d09b1a 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/08_example_import_foreign_schema.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/09_example_import_foreign_schema.mdx @@ -1,9 +1,5 @@ --- title: "Example: Import Foreign Schema" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/example_import_foreign_schema.html" --- diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/09_identifying_data_adapter_version.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/10_identifying_data_adapter_version.mdx similarity index 67% rename from product_docs/docs/mysql_data_adapter/2.5.5/09_identifying_data_adapter_version.mdx rename to product_docs/docs/mysql_data_adapter/2.5.5/10_identifying_data_adapter_version.mdx index f458cdca77e..668f438a89f 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/09_identifying_data_adapter_version.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/10_identifying_data_adapter_version.mdx @@ -1,9 +1,5 @@ --- title: "Identifying the MySQL Foreign Data Wrapper Version" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/identifying_data_adapter_version.html" --- diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/11_uninstalling_the_mysql_data_adapter.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/11_uninstalling_the_mysql_data_adapter.mdx new file mode 100644 index 00000000000..188ecceb2b0 --- /dev/null +++ b/product_docs/docs/mysql_data_adapter/2.5.5/11_uninstalling_the_mysql_data_adapter.mdx @@ -0,0 +1,31 @@ +--- +title: "Uninstalling the MySQL Foreign Data Wrapper" +--- + + + +**Uninstalling an RPM Package** + +You can use the `yum remove` or `dnf remove` command to remove a package installed by `yum` or `dnf`. To remove a package, open a terminal window, assume superuser privileges, and enter the command: + +- On RHEL or CentOS 7: + + `yum remove edb-as-mysql_fdw` + +> where `xx` is the server version number, and `x` is the supported release version number of MySQL. For example, to uninstall MySQL 5.0 on RHEL 7: +> +> > `yum remove edb-as-mysql5_fdw` + +- On RHEL or CentOS 8: + + `dnf remove edb-as-mysql8_fdw` + +Where `xx` is the server version number. + +**Uninstalling MySQL Foreign Data Wrapper on a Debian or Ubuntu Host** + +- To uninstall MySQL Foreign Data Wrapper on a Debian or Ubuntu host, invoke the following command. + + `apt-get remove edb-as-mysql-fdw` + +Where `xx` is the server version number. diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/10_troubleshooting.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/12_troubleshooting.mdx similarity index 70% rename from product_docs/docs/mysql_data_adapter/2.5.5/10_troubleshooting.mdx rename to product_docs/docs/mysql_data_adapter/2.5.5/12_troubleshooting.mdx index 4a108a08ddf..2b4ba0109ea 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/10_troubleshooting.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/12_troubleshooting.mdx @@ -1,9 +1,5 @@ --- title: "Troubleshooting" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/troubleshooting.html" --- In case you are experiencing issues with using MySQL 8 and MySQL_FDW, below is a list of solutions to some frequently seen issues: @@ -16,7 +12,7 @@ ERROR: failed to connect to MySQL: Authentication plugin ‘caching_sha2_passwo Specify the authentication plugin as `mysql_native_password` and set a cleartext password value. The syntax: - `ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY '';` +> `ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY '';` !!! Note Refer to [MySQL 8 documentation](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html) for more details on the above error. diff --git a/product_docs/docs/mysql_data_adapter/2.5.5/index.mdx b/product_docs/docs/mysql_data_adapter/2.5.5/index.mdx index 601da6cd10a..addc86a73b1 100644 --- a/product_docs/docs/mysql_data_adapter/2.5.5/index.mdx +++ b/product_docs/docs/mysql_data_adapter/2.5.5/index.mdx @@ -1,15 +1,5 @@ --- title: "MySQL Foreign Data Wrapper Guide" -directoryDefaults: - description: "EDB Postgres MySQL Foreign Data Wrapper Version 2.5.5 Documentation and release notes." - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/index.html" - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/conclusion.html" - - "/edb-docs/p/edb-postgres-mysql-data-adapter/2.5.5" - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/whats_new.html" - - "/edb-docs/d/edb-postgres-mysql-data-adapter/user-guides/user-guide/2.5.5/genindex.html" --- The MySQL Foreign Data Wrapper (`mysql_fdw`) is a Postgres extension that allows you to access data that resides on a MySQL database from EDB Postgres Advanced Server. It is a writable foreign data wrapper that you can use with Postgres functions and utilities, or in conjunction with other data that resides on a Postgres host. @@ -20,6 +10,6 @@ This guide uses the term `Postgres` to refer to an instance of EDB Postgres Adva
-whats_new requirements_overview architecture_overview installing_the_mysql_data_adapter features_of_mysql_fdw configuring_the_mysql_data_adapter example_using_the_mysql_data_adapter example_import_foreign_schema identifying_data_adapter_version troubleshooting conclusion +whats_new requirements_overview architecture_overview installing_the_mysql_data_adapter updating_the_mysql_data_adapter features_of_mysql_fdw configuring_the_mysql_data_adapter example_using_the_mysql_data_adapter example_import_foreign_schema example_join_push_down identifying_data_adapter_version uninstalling_the_mysql_data_adapter troubleshooting conclusion