將 ServiceNow 資料載入 BigQuery
您可以使用 BigQuery 資料移轉服務的 ServiceNow 連接器,將資料從 ServiceNow 載入 BigQuery。您可以使用 BigQuery 資料移轉服務,安排週期性移轉工作,將 ServiceNow 的最新資料新增至 BigQuery。
限制
ServiceNow 資料移轉作業會受到下列限制:
- ServiceNow 連接器僅支援 ServiceNow 資料表 API。
- 我們不建議在同一個 ServiceNow 執行個體上,同時執行多筆資料轉移作業。這可能會導致 ServiceNow 執行個體負載過重,進而造成延遲或失敗。
- 建議您錯開轉移作業的開始時間,避免轉移作業重疊。
- 為提升資料移轉效能,建議每次移轉的資產數量不要超過 20 項。
- 週期性資料轉移作業之間的最短間隔時間為 15 分鐘。 預設的週期性轉移間隔為 24 小時。
- 單一移轉設定在特定時間只能支援一次資料移轉作業。如果排定在第一次資料轉移完成前執行第二次資料轉移,則系統只會完成第一次資料轉移,並略過任何與第一次轉移重疊的資料轉移。
- 為避免在單一轉移設定中略過轉移作業,建議您設定「重複頻率」,增加大型資料轉移作業之間的時間間隔。
事前準備
建立 ServiceNow 資料移轉作業前,請先為 ServiceNow 和 BigQuery 執行下列操作。
ServiceNow 必備條件
- 如要存取 ServiceNow API,請建立 OAuth 憑證。
您必須在 ServiceNow 執行個體中啟用下列所有 ServiceNow 應用程式:
如要啟動 ServiceNow 轉移作業,您必須具備正確的憑證,才能連線至 ServiceNow 執行個體。
- 如要取得 ServiceNow 開發人員執行個體的憑證,請登入 ServiceNow 開發人員入口網站。你可以使用「管理執行個體密碼」頁面中列出的使用者名稱和密碼。如要瞭解如何重設 ServiceNow 密碼,請參閱「Password Reset」(密碼重設)
- 如要取得 ServiceNow 實際工作環境或子實際工作環境執行個體的憑證,請與 ServiceNow 客戶管理員聯絡,要求提供使用者名稱和密碼。
BigQuery 必要條件
- 完成啟用 BigQuery 資料移轉服務的一切必要動作。
- 建立 BigQuery 資料集來儲存資料。
- 如要為 Pub/Sub 設定移轉作業執行通知,請確認您擁有
pubsub.topics.setIamPolicy身分與存取權管理 (IAM) 權限。如果您只設定電子郵件通知,則不需要 Pub/Sub 權限。詳情請參閱 BigQuery 資料移轉服務執行通知。
必要的 BigQuery 角色
如要取得建立 BigQuery 資料移轉服務資料移轉作業所需的權限,請要求管理員授予您專案的 BigQuery 管理員 (roles/bigquery.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色包含建立 BigQuery 資料移轉服務資料移轉作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立 BigQuery 資料移轉服務資料移轉作業,您必須具備下列權限:
-
BigQuery 資料移轉服務權限:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
BigQuery 權限:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
詳情請參閱「授予 bigquery.admin 存取權」。
設定 ServiceNow 資料移轉作業
如要將 ServiceNow 資料新增至 BigQuery,請使用下列任一方法設定轉移設定:
控制台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下 「建立轉移作業」。
在「Source type」(來源類型) 部分,「Source」(來源) 請選取「ServiceNow」。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- (選用) 在「Network attachment」(網路連結) 部分,從下拉式選單中選取網路連結,或是點選「Create Network Attachment」(建立網路連結)。
- 選取網路附件,將資料移轉設定為使用單一且一致的 IP 位址。如果 ServiceNow 執行個體設為僅接受來自特定 IP 位址的流量,您可以使用這個選項。
- 如要進一步瞭解如何在 ServiceNow 中定義 IP 位址,請參閱「定義允許的 ServiceNow 內部 IP 位址」一文。
- 在「Instance ID」(執行個體 ID) 輸入 ServiceNow 執行個體 ID。您可以從 ServiceNow 網址取得這組 ID,例如
https://INSTANCE_ID.service-now.com。 - 在「Username」(使用者名稱) 輸入要用於連線的 ServiceNow 使用者名稱。
- 在「Password」(密碼) 輸入 ServiceNow 密碼。
- 在「Client ID」(用戶端 ID) 輸入 OAuth 憑證中的用戶端 ID。如要產生憑證,請參閱建立 OAuth 憑證的相關說明。
- 在「Client secret」(用戶端密鑰) 輸入 OAuth 憑證中的用戶端密鑰。
- 在「ServiceNow tables to transfer」(要移轉的 ServiceNow 資料表),輸入要移轉的 ServiceNow 資料表名稱,或是點選「Browse」(瀏覽) 並選取要移轉的資料表。
- 在「Value type」(值類型) 選取下列其中一個選項:
- 如要移轉資料庫中儲存的資料值,請選取「Actual」(實際)。
- 如要移轉資料欄的顯示值,請選取「Display」(顯示)。
在「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。 如未指定專案 ID,系統會使用預設專案。DATA_SOURCE:資料來源 (例如servicenow)。DISPLAY_NAME:移轉設定的顯示名稱。資料移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。DATASET:移轉設定的目標資料集。PARAMETERS:已建立移轉設定的 JSON 格式參數。例如:--params='{"param":"param_value"}'。以下是 ServiceNow 資料移轉的參數:ServiceNow 參數 必要或選填 說明 connector.instanceId必填 ServiceNow 執行個體的執行個體 ID connector.authentication.username必填 憑證的使用者名稱 connector.authentication.password必填 憑證密碼 connector.authentication.oauth.clientId必填 產生的 OAuth 用戶端 ID connector.authentication.oauth.clientSecret必填 產生的 OAuth 用戶端密鑰 connector.valueType選用 Actual或Display(預設值:Actual)connector.networkAttachment選用 指定網路連結,將這項資料轉移作業設定為使用單一且一致的 IP 位址。如果 ServiceNow 執行個體已受到保護,只接受來自特定 IP 位址的流量,您可以使用這個選項。如要進一步瞭解如何在 ServiceNow 中定義 IP 位址,請參閱「定義允許的 ServiceNow 內部 IP 位址」。 舉例來說,下列指令會在預設專案中建立 ServiceNow 資料移轉作業,並提供所有必要參數:
bq mk --transfer_config --target_dataset=mydataset --data_source=servicenow --display_name='My Transfer' --params='{"connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345", "connector.authentication.username":"user1", "connector.authentication.password":"abcdef1234", "connector.instanceId":"https://dev-instance.service-now.com", "connector.networkAttachment": "projects/dev-project1/regions/us-central1/networkattachments/na1"}'
API
請使用 projects.locations.transferConfigs.create 方法,並提供 TransferConfig 資源的執行個體。
如要手動執行資料轉移 (不在正常排程內),可以啟動回填作業。
資料類型對應
下表說明 ServiceNow 資料轉移作業中的資料類型對應方式:
| ServiceNow 資料類型 | BigQuery 資料類型 |
|---|---|
decimal |
FLOAT64 |
integer |
INTEGER |
boolean |
BOOLEAN |
glide_date |
DATE |
glide_date_time |
DATETIME |
glide_time |
INT64 |
reference |
STRING |
currency |
STRING |
sys_class_name |
STRING |
domain_id |
STRING |
domain_path |
STRING |
guid |
STRING |
translated_html |
STRING |
journal |
STRING |
string |
STRING |
排解轉移程序的相關問題
下列各節詳細說明設定 ServiceNow 資料移轉時的常見問題。
詳情請參閱「排解移轉設定問題」。
啟用 ServiceNow 導致轉移失敗
如果未在 ServiceNow 中啟用「採購」、「產品目錄」或「合約管理」應用程式,就會發生問題,導致資料移轉失敗。如要修正這個問題,請啟用下列三個應用程式:
轉移作業執行期間發生問題
發生問題,導致系統無法如預期建立移轉作業。如要解決這個問題,請按照下列步驟操作:
- 確認 ServiceNow 帳戶憑證 (例如「使用者名稱」、「密碼」、「用戶端 ID」和「用戶端密鑰」值) 有效。
- 確認執行個體 ID 是 ServiceNow 執行個體的有效 ID。
其他錯誤
如要瞭解 ServiceNow 資料移轉期間發生的其他錯誤,請參閱「ServiceNow 移轉問題」一文。
定價
如要瞭解 ServiceNow 移轉作業的定價資訊,請參閱「資料移轉服務定價」。
後續步驟
- 如需 BigQuery 資料移轉服務的總覽,請參閱 BigQuery 資料移轉服務簡介。
- 如要瞭解如何使用移轉作業,包括取得移轉設定、列出移轉設定以及查看移轉設定的執行記錄,請參閱使用移轉功能一文。
- 瞭解如何透過跨雲端作業載入資料。