EDB*Loader and PGD
==================

 `EDBLoader <https://www.enterprisedb.com/docs/epas/latest/database_administration/02_edb_loader/>`_  is a high-speed data loading utility for EDB Postgres
Advanced Server. It provides an interface compatible with Oracle
databases, allowing you to load data into EDB Postgres Advanced Server.
It’s designed to load large volumes of data into EDB Postgres Advanced
Server quickly and efficiently.

The EDB*Loader command line utility loads data from an input source into
one or more tables using a subset of the parameters offered by Oracle
SQL*Loader. The source can be a flat file, pipe, or other programs.

Use with PGD
------------

As EDB*Loader is a utility for EDB Postgres Advanced Server, it’s
available for EDB Postgres Distributed when EDB Postgres Advanced Server
is the database in use for PGD data nodes. PGD deployments can use
EDB*Loader in the same way as it’s used on EDB Postgres Advanced Server.
See the `EDBLoader documentation <https://www.enterprisedb.com/docs/epas/latest/database_administration/02_edb_loader/>`_  for more information on how to use EDB*Loader with
EDB Postgres Advanced Server.

Replication and EDB*Loader
^^^^^^^^^^^^^^^^^^^^^^^^^^

As with EDB Postgres Advanced Server, EDB*Loader works with PGD in a
replication environment. You cannot use the direct load path method
because the `direct path load method <https://www.enterprisedb.com/docs/epas/latest/database_administration/02_edb_loader/invoking_edb_loader/direct_path_load/>`_  skips use of the WAL, upon which all
replication relies. That means that only the node connected to by
EDB*Loader gets the data that EDB*Loader is loading and no data
replicates to the other nodes.

With PGD, you can make use of EDB*loader’s direct load path method by
running it independently on each node. You can perform this either on
one node at a time or in parallel to all nodes, depending on the use
case. When using the direct path load method on multiple nodes, it’s
important to ensure there are no other writes happening to the table
concurrently as this can result in inconsistencies.
