Skip to main content

GOE

A simple and flexible way to copy data from an Oracle Database to Google BigQuery.

Downloading GOE

At present GOE is a command line tool. Alongside installing the Python package we also require some extra artefacts, everything you need to run the software is provided in a versioned package which can be downloaded from here or alternatively built locally.

Offload Home

In addition to the GOE software we need a supporting directory tree called the Offload Home. This is identified using the OFFLOAD_HOME environment variable. In this directory we keep configuration files, logs and the GOE software if you choose not to run scripts directly out of the cloned repo. Offload Home will also typically contain a Python virtual environment into which the GOE package and dependencies will be installed, you can run these out of the repository directory but, for separation of duties purposes, may choose to keep the source code away from users of the tool.

Installation From a Package

Installing the GOE Python Package

  1. Copy the package to the target host, this may not be the same host the repository was cloned to.
  2. Create the Offload Home directory, for example:
OFFLOAD_HOME=/opt/goe/offload
mkdir -p ${OFFLOAD_HOME}
  1. Extract the package into the new directory (replace <goe-version> below):
tar --directory=${OFFLOAD_HOME}/../ -xf goe_<goe-version>.tar.gz
  1. Create and activate a Python virtual environment, for example:
cd $OFFLOAD_HOME
python3 -m venv .venv && . .venv/bin/activate
  1. Install the GOE Python package:
cd $OFFLOAD_HOME
python3 -m pip install goe-framework==<goe-version>

or use the bundled wheel file:

cd $OFFLOAD_HOME
GOE_WHEEL="goe_framework-<goe-version>-py3-none-any.whl"
python3 -m pip install lib/${GOE_WHEEL}

Configuration File

Create offload.env in the Offload Home. This file contains the necessary configuration specific to your environment:

cp ${OFFLOAD_HOME}/conf/oracle-bigquery-offload.env.template ${OFFLOAD_HOME}/conf/offload.env
vi ${OFFLOAD_HOME}/conf/offload.env

Variables you will want to pay attention to are:

  • ORA_CONN
  • ORA_ADM_PASS
  • ORA_APP_PASS
  • BIGQUERY_DATASET_LOCATION
  • OFFLOAD_FS_CONTAINER
  • OFFLOAD_FS_PREFIX

If using Google Managed Service for Apache Spark:

  • GOOGLE_DATAPROC_CLUSTER
  • GOOGLE_DATAPROC_SERVICE_ACCOUNT
  • GOOGLE_DATAPROC_REGION

If using Google Managed Service for Apache Spark serverless:

  • GOOGLE_DATAPROC_BATCHES_VERSION
  • GOOGLE_DATAPROC_SERVICE_ACCOUNT
  • GOOGLE_DATAPROC_REGION
  • GOOGLE_DATAPROC_BATCHES_SUBNET

Install Database Objects

To install supporting database objects you need access to a database admin account that can create users, grant them system privileges and create objects in the schemas created. SYSTEM has been used in the example below but this is not a necessity:

cd ${OFFLOAD_HOME}/setup
sqlplus system@yourhost:1521/yoursvc
@install_offload

In a SQL*Plus session change the passwords for the GOE_ADM and GOE_APP users to match the values in the offload.env configuration file:

alter user goe_adm identified by ...;
alter user goe_app identified by ...;

Building a Custom Package

If you want to test with the latest commits that have not yet been included in a GitHub release you can build a custom package from the repository.

Prepare the Host/Cloned Repository

Debian prerequisites:

sudo apt-get -y install make python3-venv
java --version || sudo apt-get -y install default-jre

RHEL variant prerequisites:

sudo dnf -y install make
java --version || sudo dnf -y install java-11-openjdk

Install SBT in order to build the Spark Listener:

curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup && rm ./cs
. ~/.bash_profile

Make a GOE Package

To create a package which contains all required artifacts for running GOE commands use the make target below:

make clean && make package

Install for Development

To create a Python virtual environment and install all required dependencies into the repository directory:

make clean && make install-dev
source ./.venv/bin/activate
PYTHONPATH=${PWD}/src

This enables you to develop and/or run tests.

Note only the Python dependencies for Oracle and BigQuery are installed by default. To install all optional dependencies you can run this command:

make install-dev-extras

Supporting Infrastructure

GOE requires access to cloud storage and Spark. For a Google Cloud installation this is described here: Google Cloud Platform Setup for a BigQuery Target

Running Commands

Activate the GOE Python virtual environment:

source ./.venv/bin/activate

Checking connectivity:

cd bin
./connect

Running an Offload:

cd bin
./offload -t my.table -x

Tests

See Tests

Metadata

Release files for goe-framework 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goe-framework 1.2.0
File Size Uploaded Provenance
goe_framework-1.2.0.tar.gz 592.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for goe-framework 1.2.0
File Interpreter ABI Platform
goe_framework-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / goe_framework-1.2.0.tar.gz

Download URL goe_framework-1.2.0.tar.gz
Size 592.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ed19d6cdf3c2e5a32322f5c024093c7736fadc990ea6c875220ec221fa994ae0
BLAKE2b-256 checksum
How to use checksums
5e4d1044f6a89e5d2d78ac8c00e392c6cf15f282a74ea2f2b7da7ddf1702e01d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / goe_framework-1.2.0-py3-none-any.whl

Download URL goe_framework-1.2.0-py3-none-any.whl
Size 721.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e64280b7a719e525d2017094a51df9790a8bcdae63cf0479eb7dfc3ae197e40
BLAKE2b-256 checksum
How to use checksums
fa733a98c165f0e79e6df1d7086602822dd753252dea7ffad44395660494834c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for goe-framework 1.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for goe_framework-1.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page