將 Oracle 資料載入 BigQuery

您可以使用 BigQuery 資料移轉服務的 Oracle 連接器,將資料從 Oracle 載入至 BigQuery。您可以使用 BigQuery 資料移轉服務,安排週期性移轉工作,將最新資料從 Oracle 新增至 BigQuery。

限制

Oracle 轉移作業有下列限制:

  • 連至 Oracle 資料庫的同時連線數量上限有限,因此,連至單一 Oracle 資料庫的同時轉移作業數量也受到上限限制。
  • 如果 Oracle 資料庫連線無法使用公用 IP,您必須設定網路附件,並符合下列規定:
    • 資料來源必須可從網路附件所在的子網路存取。
    • 網路連結不得位於範圍 240.0.0.0/24 內的子網路。
    • 如果連結至連結的連線處於啟用狀態,就無法刪除網路連結。如要刪除網路連結,請與 Cloud Customer Care 團隊聯絡
    • 對於 us 多區域,網路連結必須位於 us-central1 區域。對於 eu 多區域,網路連結必須位於 europe-west4 區域。
  • Google Cloud 主控台僅支援使用 NORMALOracle 使用者角色,將 Oracle 連接至 BigQuery 資料移轉服務。您必須使用 BigQuery CLI 搭配 SYSDBASYSOPER Oracle 使用者角色進行連線。
  • 每週 Oracle 轉移作業之間的最短間隔時間為 15 分鐘。週期性轉移作業的預設間隔為 24 小時。
  • 如果您設定的網路附件和虛擬機器 (VM) 執行個體位於不同區域,從 Oracle 傳輸資料時,可能會發生跨區域資料移轉。

事前準備

下列各節將說明建立 Oracle 轉移作業前,您需要採取的步驟。

Oracle 先決條件

建立 Oracle 轉移作業時,您也必須提供下列 Oracle 資料庫資訊。

參數名稱 說明
database 資料庫名稱。
host

資料庫的主機名稱或 IP 位址。

port

資料庫的通訊埠號碼。

username

用來存取資料庫的使用者名稱。

password

存取資料庫的密碼。

connectionType

連線類型。這可以是 SERVICESIDTNS

encryptionMode

加密模式。在連線至 Oracle 資料庫時,可以將此值設為 FULL 以進行完整 SSL 驗證,也可以設為 DISABLE 以不進行 SSL 驗證。

oracleObjects

要移轉的 Oracle 物件清單。

BigQuery 先決條件

必要的 BigQuery 角色

如要取得建立移轉作業所需的權限,請向管理員索取 BigQuery 管理員 (roles/bigquery.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色包含建立轉移作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要建立移轉作業,必須具備下列權限:

  • bigquery.transfers.update 使用者
  • bigquery.datasets.get 在目標資料集上
  • bigquery.datasets.update 在目標資料集上

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

將 Oracle 資料載入 BigQuery

如要將 Oracle 資料新增至 BigQuery,您可以使用下列任一選項設定 Oracle 資料移轉作業:

主控台

  1. 前往 Google Cloud 控制台的「資料移轉」頁面。

    前往「資料移轉」

  2. 按一下 「建立移轉作業」

  3. 在「Source type」(來源類型) 部分,「Source」(來源) 請選取「Oracle」

  4. 在「Data source details」(資料來源詳細資料) 部分執行下列操作:

    • 在「Network attachment」(網路連結) 部分選取現有的網路連結,或是點選「Create Network Attachment」(建立網路連結)
    • 在「Host」(主機) 部分,輸入資料庫的主機名稱或 IP。
    • 在「Port」(通訊埠) 部分,輸入 Oracle 資料庫用來接收傳入連線的通訊埠編號,例如 1521
    • 在「Database name」(資料庫名稱) 部分,輸入 Oracle 資料庫的名稱。
    • 在「Connection type」(連線類型) 部分,輸入連線網址類型,例如 SERVICESIDTNS
    • 在「Username」(使用者名稱) 部分,輸入啟動 Oracle 資料庫連線的使用者的名稱。
    • 在「Password」(密碼) 部分,輸入啟動 Oracle 資料庫連線的使用者密碼。
    • 在「Encryption mode」 部分,從下拉式選單中選取「FULL」(完整),在連線至 Oracle 資料庫時啟用完整 SSL 驗證。如果選取「DISABLE」(停用),就不會進行 SSL 驗證。
    • 在「Oracle objects to transfer」 部分點選「BROWSE」(瀏覽),選取要移轉至 BigQuery 目的地資料集的資料表。您也可以在這個欄位手動輸入要移轉資料的物件。

      設定 Oracle 轉移設定

  5. 在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集。

  6. 在「Transfer config name」(轉移設定名稱) 部分,「Display name」(顯示名稱) 請輸入資料移轉作業名稱。

  7. 在「Schedule options」(排程選項) 專區:

    • 在「Repeat frequency」(重複執行頻率) 清單中,選取選項,指定這項資料移轉作業的執行頻率。如要指定自訂重複頻率,請選取「Custom」(自訂)。如果選取「On-demand」(隨選),系統會在您手動觸發移轉作業時執行該作業。
    • 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
  8. 選用:在「Notification options」(通知選項) 專區,執行下列操作:

    • 如要啟用電子郵件通知,請點選「Email notification」(電子郵件通知) 切換按鈕。當您啟用此選項時,移轉管理員會在移轉作業失敗時收到電子郵件通知。
    • 如要針對這項移轉作業啟用 Pub/Sub 移轉作業執行通知,請點選「Pub/Sub notifications」(Pub/Sub 通知) 切換按鈕。您可以選取主題名稱,也可以點選「Create a topic」(建立主題) 來建立主題。
  9. 按一下「儲存」

bq

輸入 bq mk 指令並提供轉移建立標記 --transfer_config

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

其中:

  • PROJECT_ID (選用):您的 Google Cloud 專案 ID。如果未提供 --project_id 指定特定專案,系統會使用預設專案。
  • DATA_SOURCE:資料來源 — oracle
  • DISPLAY_NAME:移轉設定的顯示名稱。資料移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。
  • DATASET:移轉設定的目標資料集。
  • PARAMETERS:已建立移轉設定的 JSON 格式參數。例如:--params='{"param":"param_value"}'。以下是 Oracle 資料移轉的參數:

    • connector.networkAttachment (選用):連線至 Oracle 資料庫的網路附件名稱。
    • connector.authentication.Username:Oracle 帳戶的使用者名稱。
    • connector.authentication.Password:Oracle 帳戶密碼。
    • connector.database:Oracle 資料庫的名稱。
    • connector.endpoint.host:資料庫的主機名稱或 IP。
    • connector.endpoint.port:Oracle 資料庫用來接收傳入連線的通訊埠編號,例如 1520
    • connector.connectionType:連線網址類型,可為 SERVICESIDTNS
    • assets:Oracle 物件路徑,將會轉移至 BigQuery,格式如下: DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

舉例來說,下列指令會在預設專案中建立 Oracle 資料移轉作業,並提供所有必要參數:

bq mk
    --transfer_config
    --target_dataset=mydataset
    --data_source=oracle
    --display_name='My Transfer'
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
        "connector.authentication.username": "User1",
        "connector.authentication.password":"ABC12345",
        "connector.database":"DB1",
        "connector.endpoint.host":"192.168.0.1",
        "connector.endpoint.port":1520,
        "connector.connectionType":"SERVICE",
        "connector.networkAttachment":
        "projects/dev-project1/regions/us-central1/networkattachments/na1"}'

API

請使用 projects.locations.transferConfigs.create 方法,並提供 TransferConfig 資源的執行個體。

資料類型對應

下表將 Oracle 資料類型對應至相應的 BigQuery 資料類型。

Oracle 資料類型 BigQuery 資料類型
BFILE BYTES
BINARY_DOUBLE FLOAT
BINARY_FLOAT FLOAT
BLOB BYTES
CHAR STRING
CLOB STRING
DATE DATETIME
FLOAT FLOAT
INTERVAL DAY TO SECOND STRING
INTERVAL YEAR TO MONTH STRING
LONG STRING
LONG RAW BYTES
NCHAR STRING
NCLOB STRING
NUMBER (without precision and scale) STRING
NUMBER (with precision and scale lower than the BigQuery Numeric range) NUMERIC
NUMBER (with precision and scale lower than the BigQuery BigNumeric range) BIGNUMERIC
NUMBER (with precision and scale greater than the BigQuery BigNumeric range) STRING
NVARCHAR2 STRING
RAW BYTES
ROWID STRING
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE TIMESTAMP
UROWID STRING
VARCHAR STRING
VARCHAR2 STRING

排解轉移設定問題

如果您無法順利設定資料移轉作業,請參閱Oracle 移轉問題

定價

在這項功能預覽期間,將 Oracle 資料移轉至 BigQuery 不需額外付費。

後續步驟