將 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 主控台僅支援使用
NORMAL
Oracle 使用者角色,將 Oracle 連接至 BigQuery 資料移轉服務。您必須使用 BigQuery CLI 搭配SYSDBA
和SYSOPER
Oracle 使用者角色進行連線。 - 每週 Oracle 轉移作業之間的最短間隔時間為 15 分鐘。週期性轉移作業的預設間隔為 24 小時。
- 如果您設定的網路附件和虛擬機器 (VM) 執行個體位於不同區域,從 Oracle 傳輸資料時,可能會發生跨區域資料移轉。
事前準備
下列各節將說明建立 Oracle 轉移作業前,您需要採取的步驟。
Oracle 先決條件
- 在 Oracle 資料庫中建立使用者憑證。
- 將
Create Session
系統權限授予使用者,以便建立工作階段。 - 為使用者帳戶指派表空間。
建立 Oracle 轉移作業時,您也必須提供下列 Oracle 資料庫資訊。
參數名稱 | 說明 |
---|---|
database |
資料庫名稱。 |
host |
資料庫的主機名稱或 IP 位址。 |
port |
資料庫的通訊埠號碼。 |
username |
用來存取資料庫的使用者名稱。 |
password |
存取資料庫的密碼。 |
connectionType |
連線類型。這可以是 |
encryptionMode |
加密模式。在連線至 Oracle 資料庫時,可以將此值設為 |
oracleObjects |
要移轉的 Oracle 物件清單。 |
BigQuery 先決條件
- 確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。
- 請建立 BigQuery 資料集來儲存您的資料。
- 如果您想要為 Pub/Sub 設定移轉執行通知,請確認您具有
pubsub.topics.setIamPolicy
身分與存取權管理 (IAM) 權限。如果您只想設定電子郵件通知,則不需要擁有 Pub/Sub 權限。詳情請參閱 BigQuery 資料移轉服務執行通知一文。
必要的 BigQuery 角色
如要取得建立移轉作業所需的權限,請向管理員索取 BigQuery 管理員 (roles/bigquery.admin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色包含建立轉移作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立移轉作業,必須具備下列權限:
-
bigquery.transfers.update
使用者 -
bigquery.datasets.get
在目標資料集上 -
bigquery.datasets.update
在目標資料集上
將 Oracle 資料載入 BigQuery
如要將 Oracle 資料新增至 BigQuery,您可以使用下列任一選項設定 Oracle 資料移轉作業:
主控台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下
「建立移轉作業」。在「Source type」(來源類型) 部分,「Source」(來源) 請選取「Oracle」。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- 在「Network attachment」(網路連結) 部分選取現有的網路連結,或是點選「Create Network Attachment」(建立網路連結)。
- 在「Host」(主機) 部分,輸入資料庫的主機名稱或 IP。
- 在「Port」(通訊埠) 部分,輸入 Oracle 資料庫用來接收傳入連線的通訊埠編號,例如
1521
。 - 在「Database name」(資料庫名稱) 部分,輸入 Oracle 資料庫的名稱。
- 在「Connection type」(連線類型) 部分,輸入連線網址類型,例如
SERVICE
、SID
或TNS
。 - 在「Username」(使用者名稱) 部分,輸入啟動 Oracle 資料庫連線的使用者的名稱。
- 在「Password」(密碼) 部分,輸入啟動 Oracle 資料庫連線的使用者密碼。
- 在「Encryption mode」 部分,從下拉式選單中選取「FULL」(完整),在連線至 Oracle 資料庫時啟用完整 SSL 驗證。如果選取「DISABLE」(停用),就不會進行 SSL 驗證。
在「Oracle objects to transfer」 部分點選「BROWSE」(瀏覽),選取要移轉至 BigQuery 目的地資料集的資料表。您也可以在這個欄位手動輸入要移轉資料的物件。
在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集。
在「Transfer config name」(轉移設定名稱) 部分,「Display name」(顯示名稱) 請輸入資料移轉作業名稱。
在「Schedule options」(排程選項) 專區:
- 在「Repeat frequency」(重複執行頻率) 清單中,選取選項,指定這項資料移轉作業的執行頻率。如要指定自訂重複頻率,請選取「Custom」(自訂)。如果選取「On-demand」(隨選),系統會在您手動觸發移轉作業時執行該作業。
- 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
選用:在「Notification options」(通知選項) 專區,執行下列操作:
- 如要啟用電子郵件通知,請點選「Email notification」(電子郵件通知) 切換按鈕。當您啟用此選項時,移轉管理員會在移轉作業失敗時收到電子郵件通知。
- 如要針對這項移轉作業啟用 Pub/Sub 移轉作業執行通知,請點選「Pub/Sub notifications」(Pub/Sub 通知) 切換按鈕。您可以選取主題名稱,也可以點選「Create a topic」(建立主題) 來建立主題。
按一下「儲存」。
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
:連線網址類型,可為SERVICE
、SID
或TNS
。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 不需額外付費。
後續步驟
- 如需 BigQuery 資料移轉服務的總覽,請參閱 BigQuery 資料移轉服務簡介。
- 如要瞭解如何使用移轉作業,包括取得移轉設定、列出移轉設定以及查看移轉設定的執行記錄,請參閱使用移轉功能一文。
- 瞭解如何透過跨雲端作業載入資料。