` in the `CREATE EXTERNAL TABLE` `LOCATION` clause `SERVER` option to access the external SQL database. For example, if you created a server configuration and named the server directory `pgsrvcfg`:
-
-
-CREATE EXTERNAL TABLE pxf_ext_tbl(name text, orders int)
- LOCATION ('pxf://schema.tblname?PROFILE=Jdbc&SERVER=pgsrvcfg')
-FORMAT 'TEXT' (delimiter=E',');
-
-
-A Greenplum Database user who queries or writes to an external table that specifies a server name accesses the external SQL database with the credentials configured for that server.
-While not recommended, you can override a JDBC server configuration by directly specifying the driver, database URL, and/or user credentials via custom options in the `CREATE EXTERNAL TABLE` command `LOCATION` clause. Refer to [Overriding the JDBC Server Configuration](jdbc_pxf.html#jdbc_override) for additional information.
-
-### Example
+### Example Configuration Procedure
Ensure that you have initialized PXF before you configure a JDBC Connector server.
@@ -218,11 +198,3 @@ In this procedure, you name and add a PXF JDBC server configuration for a Postgr
gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
```
-## Adding or Updating JDBC Server Configuration
-
-If you add a new, or update an existing, JDBC server configuration on the Greenplum Database master host, you must re-sync the PXF configuration to the Greenplum Database cluster:
-
-``` shell
-gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
-```
-
diff --git a/gpdb-doc/markdown/pxf/jdbc_pxf.html.md.erb b/gpdb-doc/markdown/pxf/jdbc_pxf.html.md.erb
index 25e31b23c600a65cb17773b4b70e13aa0476ba79..42ac1f233d1bf7e1068415f1963ab05befcf273e 100644
--- a/gpdb-doc/markdown/pxf/jdbc_pxf.html.md.erb
+++ b/gpdb-doc/markdown/pxf/jdbc_pxf.html.md.erb
@@ -21,7 +21,7 @@ specific language governing permissions and limitations
under the License.
-->
-Some of your data may already reside in an external SQL database. PXF provides access to this data via the PXF JDBC connector. The JDBC connector is a JDBC client. It can read data from and write data to SQL databases including MySQL, ORACLE, PostgreSQL, Apache Ignite, and Hive.
+Some of your data may already reside in an external SQL database. PXF provides access to this data via the PXF JDBC connector. The JDBC connector is a JDBC client. It can read data from and write data to SQL databases including MySQL, ORACLE, PostgreSQL, Hive, and Apache Ignite.
This section describes how to use the PXF JDBC connector to access data in an external SQL database, including how to create and query or insert data into a PXF external table that references a table in an external database.
@@ -63,7 +63,7 @@ Use the following syntax to create a Greenplum Database external table that refe
CREATE [READABLE | WRITABLE] EXTERNAL TABLE <table_name>
( <column_name> <data_type> [, ...] | LIKE <other_table> )
-LOCATION ('pxf://<external-table-name>?PROFILE=Jdbc[&SERVER=<servername>][&<custom-option>=<value>[...]]')
+LOCATION ('pxf://<external-table-name>?PROFILE=Jdbc[&SERVER=<server_name>][&<custom-option>=<value>[...]]')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import'|'pxfwritable_export');
@@ -73,7 +73,7 @@ The specific keywords and values used in the [CREATE EXTERNAL TABLE](../ref_guid
|-------|-------------------------------------|
| \ | The full name of the external table. Depends on the external SQL database, may include a schema name and a table name. |
| PROFILE | The `PROFILE` keyword value must specify `Jdbc`. |
-| SERVER=\ | The named server configuration that PXF uses to access the external SQL database. |
+| SERVER=\ | The named server configuration that PXF uses to access the data. Optional; PXF uses the `default` server if not specified. |
| \=\ | \ is profile-specific. `Jdbc` profile-specific options are discussed in the next section.|
| FORMAT 'CUSTOM' | The JDBC `CUSTOM` `FORMAT` supports the built-in `'pxfwritable_import'` `FORMATTER` function for read operations and the built-in `'pxfwritable_export'` function for write operations. |
diff --git a/gpdb-doc/markdown/pxf/objstore_avro.html.md.erb b/gpdb-doc/markdown/pxf/objstore_avro.html.md.erb
index 27b7bd9e66d94f4037ebc56951aef2af2fa5e42e..a4b08f925db16622b839d0b4e070cafd042ae62d 100644
--- a/gpdb-doc/markdown/pxf/objstore_avro.html.md.erb
+++ b/gpdb-doc/markdown/pxf/objstore_avro.html.md.erb
@@ -51,7 +51,7 @@ The following syntax creates a Greenplum Database readable external table that r
``` sql
CREATE EXTERNAL TABLE
( [, ...] | LIKE )
-LOCATION ('pxf://?PROFILE=:avro&SERVER=[&=[...]]')
+LOCATION ('pxf://?PROFILE=:avro[&SERVER=][&=[...]]')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');
```
@@ -61,7 +61,7 @@ The specific keywords and values used in the [CREATE EXTERNAL TABLE](../ref_guid
|-------|-------------------------------------|
| \ | The absolute path to the directory or file in the object store. |
| PROFILE=\:avro | The `PROFILE` keyword must identify the specific object store. For example, `s3:avro`. |
-| SERVER=\ | The named server configuration that PXF uses to access the data. |
+| SERVER=\ | The named server configuration that PXF uses to access the data. Optional; PXF uses the `default` server if not specified. |
| \=\ | Avro-specific custom options are described in the [PXF HDFS Avro documentation](hdfs_avro.html#customopts). |
| FORMAT 'CUSTOM' | Use `FORMAT` `'CUSTOM'` with the `:avro` profile. The `CUSTOM` `FORMAT` requires that you specify `(FORMATTER='pxfwritable_import')`. |
diff --git a/gpdb-doc/markdown/pxf/objstore_cfg.html.md.erb b/gpdb-doc/markdown/pxf/objstore_cfg.html.md.erb
index 4f7f70fee8693de2f7629a65e631a2278d9813f5..493904f195d03f3f45f3747dd5c43ff4fb57baa4 100644
--- a/gpdb-doc/markdown/pxf/objstore_cfg.html.md.erb
+++ b/gpdb-doc/markdown/pxf/objstore_cfg.html.md.erb
@@ -8,56 +8,10 @@ You can use PXF to access Azure Data Lake, Azure Blob Storage, Google Cloud Stor
## About Object Store Configuration
-To access data in an object store, you must provide a server location and client credentials. PXF provides a template configuration file for each Hadoop and object store connector. These server template configuration files, located in the `$PXF_CONF/templates/` directory, identify the minimum set of properties that you must configure to use the connector.
+To access data in an object store, you must provide a server location and client credentials. When you configure a PXF object store connector, you add at least one named PXF server configuration for the connector as described in [About PXF Server Configuration](cfg_server.html#cfgproc).
-```
-gpadmin@gpmaster$ ls $PXF_CONF/templates
-adl-site.xml hbase-site.xml jdbc-site.xml s3-site.xml
-core-site.xml hdfs-site.xml mapred-site.xml wasbs-site.xml
-gs-site.xml hive-site.xml minio-site.xml yarn-site.xml
-```
-
-For example, the contents of the `s3-site.xml` template file follow:
-
-``` pre
-
-
-
- fs.s3a.access.key
- YOUR_AWS_ACCESS_KEY_ID
-
-
- fs.s3a.secret.key
- YOUR_AWS_SECRET_ACCESS_KEY
-
-
- fs.s3a.fast.upload
- true
-
-
-```
-
-You specify object store credentials to PXF in clear text in configuration files.
-
-When you configure a PXF object store connector, you add at least one named PXF server configuration for the connector. You:
+PXF provides a template configuration file for each object store connector. These template files are located in the `$PXF_CONF/templates/` directory.
-1. Choose a name for the server configuration.
-2. Create the directory `$PXF_CONF/servers/`.
-3. Copy the PXF template configuration file corresponding to the object store to the new server directory.
-4. Fill in appropriate values for the properties in the template file.
-5. Add additional properties and values if required for your environment.
-6. Synchronize the server configuration to the Greenplum Database cluster.
-7. Publish the PXF server names to your Greenplum Database end users as appropriate.
-
-The Greenplum Database user specifies the server name in the `CREATE EXTERNAL TABLE` `LOCATION` clause `SERVER` option to access the object store. For example:
-
-
-CREATE EXTERNAL TABLE pxf_ext_tbl(name text, orders int)
- LOCATION ('pxf://BUCKET/dir/file.txt?PROFILE=s3:text&SERVER=s3srvcfg')
-FORMAT 'TEXT' (delimiter=E',');
-
-
-A Greenplum Database user who queries or writes to an external table that specifies a server name accesses the object store with the credentials configured for that server.
### Azure Blob Storage Server Configuration
@@ -220,11 +174,11 @@ To set these properties in the `s3-site.xml` file:
To enable SSE-C for a specific S3 bucket, use the property name variants that include the bucket name as described in the SSE-KMS example.
-## Example Configuration Procedure
+## Example Server Configuration Procedure
-Ensure that you have initialized PXF before you configure an object store connector.
+Ensure that you have initialized PXF before you configure an object store connector server.
-In this procedure, you name and add a PXF server configuration in the `$PXF_CONF/servers` directory on the Greenplum Database master host for each object store connector that you plan to use. You then use the `pxf cluster sync` command to sync the server configuration(s) to the Greenplum Database cluster.
+In this procedure, you name and add a PXF server configuration in the `$PXF_CONF/servers` directory on the Greenplum Database master host for the Google Cloud Storate (GCS) connector. You then use the `pxf cluster sync` command to sync the server configuration(s) to the Greenplum Database cluster.
1. Log in to your Greenplum Database master node:
@@ -232,48 +186,40 @@ In this procedure, you name and add a PXF server configuration in the `$PXF_CONF
$ ssh gpadmin@
```
-2. PXF includes connectors to the Azure Data Lake, Azure Blob Storage, Google Cloud Storage, Minio, and S3 object stores. Identify the PXF object store connectors that you want to configure.
-
-3. For each object store connector that you configure:
-
- 1. Choose a name for the server. You will provide the name to end users that need to reference files in the object store.
+2. Choose a name for the server. You will provide the name to end users that need to reference files in the object store.
- **Note**: The server name `default` is reserved.
+3. Create the `$PXF_HOME/servers/` directory. For example, use the following command to create a server configuration for a Google Cloud Storage server named `gs_public`:
- 2. Create the `$PXF_HOME/servers/` directory. For example, use the following command if you are creating a server configuration for Google Cloud Storage and you want to name the server `gs_public`:
-
- ``` shell
- gpadmin@gpmaster$ mkdir $PXF_CONF/servers/gs_public
- ````
+ ``` shell
+ gpadmin@gpmaster$ mkdir $PXF_CONF/servers/gs_public
+ ````
- 3. Copy the PXF template file for the object store to the server configuration directory. For example:
+3. Copy the PXF template file for GCS to the server configuration directory. For example:
- ``` shell
- gpadmin@gpmaster$ cp $PXF_CONF/templates/gs-site.xml $PXF_CONF/servers/gs_public/
- ```
+ ``` shell
+ gpadmin@gpmaster$ cp $PXF_CONF/templates/gs-site.xml $PXF_CONF/servers/gs_public/
+ ```
- 4. Open the template server configuration file in the editor of your choice, and provide appropriate property values for your environment. For example, if your Google Cloud Storage key file is located in `/home/gpadmin/keys/gcs-account.key.json`:
-
- ``` pre
-
-
-
- google.cloud.auth.service.account.enable
- true
-
-
- google.cloud.auth.service.account.json.keyfile
- /home/gpadmin/keys/gcs-account.key.json
-
-
- fs.AbstractFileSystem.gs.impl
- com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS
-
-
- ```
- 5. Save your changes and exit the editor.
-
- 6. Repeat Step 3 to configure the next object store connector.
+4. Open the template server configuration file in the editor of your choice, and provide appropriate property values for your environment. For example, if your Google Cloud Storage key file is located in `/home/gpadmin/keys/gcs-account.key.json`:
+
+ ``` pre
+
+
+
+ google.cloud.auth.service.account.enable
+ true
+
+
+ google.cloud.auth.service.account.json.keyfile
+ /home/gpadmin/keys/gcs-account.key.json
+
+
+ fs.AbstractFileSystem.gs.impl
+ com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS
+
+
+ ```
+5. Save your changes and exit the editor.
4. Use the `pxf cluster sync` command to copy the new server configurations to the Greenplum Database cluster. For example:
@@ -281,12 +227,3 @@ In this procedure, you name and add a PXF server configuration in the `$PXF_CONF
gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
```
-
-## Adding or Updating Object Store Configuration
-
-If you add or update the object store server configuration on the Greenplum Database master host, you must re-sync the PXF configuration to the Greenplum Database cluster:
-
-``` shell
-gpadmin@gpmaster$ $GPHOME/pxf/bin/pxf cluster sync
-```
-
diff --git a/gpdb-doc/markdown/pxf/objstore_json.html.md.erb b/gpdb-doc/markdown/pxf/objstore_json.html.md.erb
index e03aa03d7881324a58cec2e21fcfbde9bd0a4457..c00aed929451d0846235189f35ed77a563dfbbf6 100644
--- a/gpdb-doc/markdown/pxf/objstore_json.html.md.erb
+++ b/gpdb-doc/markdown/pxf/objstore_json.html.md.erb
@@ -50,7 +50,7 @@ The following syntax creates a Greenplum Database readable external table that r
``` sql
CREATE EXTERNAL TABLE
( [, ...] | LIKE )
-LOCATION ('pxf://?PROFILE=:json&SERVER=[&=[...]]')
+LOCATION ('pxf://?PROFILE=:json[&SERVER=][&=[...]]')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');
```
@@ -60,7 +60,7 @@ The specific keywords and values used in the [CREATE EXTERNAL TABLE](../ref_guid
|-------|-------------------------------------|
| \ | The absolute path to the directory or file in the object store. |
| PROFILE=\:json | The `PROFILE` keyword must identify the specific object store. For example, `s3:json`. |
-| SERVER=\ | The named server configuration that PXF uses to access the data. |
+| SERVER=\ | The named server configuration that PXF uses to access the data. Optional; PXF uses the `default` server if not specified. |
| \=\ | JSON supports the custom option named `IDENTIFIER` as described in the [PXF HDFS JSON documentation](hdfs_json.html#customopts). |
| FORMAT 'CUSTOM' | Use `FORMAT` `'CUSTOM'` with the `:json` profile. The `CUSTOM` `FORMAT` requires that you specify `(FORMATTER='pxfwritable_import')`. |
diff --git a/gpdb-doc/markdown/pxf/objstore_parquet.html.md.erb b/gpdb-doc/markdown/pxf/objstore_parquet.html.md.erb
index b8f94dd11f45886011ecb69124b009621274803d..16d6b54e5bdea29d90ea811dfa22a1a3f367199a 100644
--- a/gpdb-doc/markdown/pxf/objstore_parquet.html.md.erb
+++ b/gpdb-doc/markdown/pxf/objstore_parquet.html.md.erb
@@ -55,7 +55,7 @@ Use the following syntax to create a Greenplum Database external table that refe
CREATE [WRITABLE] EXTERNAL TABLE
( [, ...] | LIKE )
LOCATION ('pxf://
- ?PROFILE=:parquet&SERVER=[&=[...]]')
+ ?PROFILE=:parquet[&SERVER=][&=[...]]')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import'|'pxfwritable_export');
[DISTRIBUTED BY ( [, ... ] ) | DISTRIBUTED RANDOMLY];
```
@@ -66,7 +66,7 @@ The specific keywords and values used in the [CREATE EXTERNAL TABLE](../ref_guid
|-------|-------------------------------------|
| \ | The absolute path to the directory in the object store. |
| PROFILE=\:parquet | The `PROFILE` keyword must identify the specific object store. For example, `s3:parquet`. |
-| SERVER=\ | The named server configuration that PXF uses to access the data. |
+| SERVER=\ | The named server configuration that PXF uses to access the data. Optional; PXF uses the `default` server if not specified. |
| \=\ | Parquet-specific custom write options are described in the [PXF HDFS Parquet documentation](hdfs_parquet.html#customopts). |
| FORMAT 'CUSTOM' | Use `FORMAT` '`CUSTOM`' with `(FORMATTER='pxfwritable_export')` (write) or `(FORMATTER='pxfwritable_import')` (read). |
| DISTRIBUTED BY | If you plan to load the writable external table with data from an existing Greenplum Database table, consider specifying the same distribution policy or \ on the writable external table as that defined for the table from which you plan to load the data. Doing so will avoid extra motion of data between segments on the load operation. |
diff --git a/gpdb-doc/markdown/pxf/objstore_seqfile.html.md.erb b/gpdb-doc/markdown/pxf/objstore_seqfile.html.md.erb
index 24ce1f5c8d4df71be3ea2c6be9ac09313cc71dbb..c31ffe122a8fbdd842609ad132ab5fed719eadfb 100644
--- a/gpdb-doc/markdown/pxf/objstore_seqfile.html.md.erb
+++ b/gpdb-doc/markdown/pxf/objstore_seqfile.html.md.erb
@@ -48,7 +48,7 @@ Use the following syntax to create a Greenplum Database external table that refe
CREATE [WRITABLE] EXTERNAL TABLE
( [, ...] | LIKE )
LOCATION ('pxf://
- ?PROFILE=:SequenceFile&SERVER=[&=[...]]')
+ ?PROFILE=:SequenceFile[&SERVER=][&=[...]]')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import'|'pxfwritable_export')
[DISTRIBUTED BY ( [, ... ] ) | DISTRIBUTED RANDOMLY];
```
@@ -59,7 +59,7 @@ The specific keywords and values used in the [CREATE EXTERNAL TABLE](../ref_guid
|-------|-------------------------------------|
| \ | The absolute path to the directory in the object store. |
| PROFILE=\:SequenceFile | The `PROFILE` keyword must identify the specific object store. For example, `s3:SequenceFile`. |
-| SERVER=\ | The named server configuration that PXF uses to access the data. |
+| SERVER=\ | The named server configuration that PXF uses to access the data. Optional; PXF uses the `default` server if not specified. |
| \