使用 SAP HANA Virtual Table 连接外部数据源
Access Remote Sources with SAP HANA Database Explorer
遠程源(Remote sources)是與其他數據庫的連接。 虛擬表使用遠程源創建指向存儲在另一個數據庫中的數據的本地表。 聯合查詢使用虛擬和非虛擬表。
為了說明這些概念,將在遠程數據庫中創建一個表,其中包含來自給定酒店附近的一些頂級旅游景點的虛構評論數據。 酒店住宿與客戶訪問附近旅游景點或餐廳的愿望之間可能存在相關性。
有關 SAP HANA 智能數據訪問 (SAP HANA smart data access,SDA) 和 SAP HANA 智能數據集成 (SAP HANA Smart Data Integration,SDI) 的更多詳細信息,請參閱將 SAP HANA 云連接到遠程數據源和使用 SAP HANA 云進行數據訪問。
要從 SAP HANA 快速版創建遠程源到 SAP HANA Cloud,請從 SAP HANA 快速版打開 SAP HANA 數據庫瀏覽器。
指定服務器、端口、額外的適配器屬性和憑據(User1、Password1)。
當然也可以執行通過執行 sql 語句來完成遠程數據源的添加:
CREATE REMOTE SOURCE REMOTE_HC_TRIAL ADAPTER "hanaodbc" CONFIGURATION 'ServerNode=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.hana.trial-XXXX.hanacloud.ondemand.com:443;driver=libodbcHDB.so;dml_mode=readwrite;sslTrustStore="-----BEGIN CERTIFICATE-----MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQkCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=-----END CERTIFICATE-----"' WITH CREDENTIAL TYPE 'PASSWORD' USING 'user=User1;password=Password1';可以通過選擇操作 > 復制 > SQL 端點從 SAP HANA Cloud Central 復制 ServerNode。
執行create remote source SQL語句后,在Remote Sources文件夾中可以看到結果,如下圖。 您可能需要按刷新按鈕。
下一步,將在 SAP HANA 快速版中創建名為 vt_tourist_reviews 的虛擬表。 這將允許訪問在 SAP HANA Cloud 中創建的 Tourist_reviews 表。 這可以可視化如下:
從 SAP HANA 快速版打開 SAP HANA 數據庫資源管理器。 如果需要,創建 HOTEL 模式和可以訪問該模式的用戶。
CREATE USER USER1 PASSWORD Password1 no force_first_password_change; CREATE SCHEMA HOTEL; GRANT ALL PRIVILEGES ON SCHEMA HOTEL TO USER1;右鍵單擊名為 REMOTE_HC_TRIAL 的遠程源并選擇 Open。
選中 TOURIST_REVIEWS 復選框并按下 Create Virtual Object(s) 按鈕。
將對象名稱設置為 VT_TOURIST_REVIEWS,將 schema 設置為 HOTEL。
按創建按鈕。
或者使用 SQL 語句創建 virtual table:
CREATE VIRTUAL TABLE HOTEL.VT_TOURIST_REVIEWS AT "REMOTE_HC_TRIAL"."HC_HDB_Trial"."HOTEL"."TOURIST_REVIEWS";打開創建好的數據庫表,發現其類型為 VIRTUAL:
下面的 SQL 語句演示了對本地表和遠程表執行查詢,并執行包含本地和遠程表的聯合查詢。
SELECT * FROM HOTEL.RESERVATION; SELECT * FROM HOTEL.CUSTOMER; SELECT * FROM HOTEL.VT_TOURIST_REVIEWS; SELECT C.NAME, TR.REVIEW, REVIEW_DATE FROMHOTEL.RESERVATION AS R JOINHOTEL.VT_TOURIST_REVIEWS AS TRON TR.REVIEW_DATE = R.ARRIVAL JOINHOTEL.CUSTOMER AS CON C.CNO = R.CNO;從執行時間我們不難發現,從遠程表讀取數據,花費的時間明顯多于從本地表讀取:
Connect from SAP HANA Cloud to SAP HANA Cloud, data lake IQ
SAP HANA Cloud,data lake 可用于存儲大量不常訪問的數據。 以下步驟在 SAP HANA Cloud、data lake IQ 中創建表 Tourist_reviews 并從關聯的 SAP HANA Cloud 實例訪問該表。
如果需要,在 SAP HANA Cloud Central 中,通過選擇操作: 添加數據湖,將 SAP HANA 云數據湖實例添加到您的 SAP HANA 云實例。
執行以下SQL,在數據湖IQ中創建一個名為tourist_reviews的表。
CREATE TABLE TOURIST_REVIEWS (REVIEW_ID INTEGER PRIMARY KEY,REVIEW_DATE DATE NOT NULL,DESTINATION_ID INTEGER,DESTINATION_RATING INTEGER,REVIEW VARCHAR(500) NOT NULL );INSERT INTO TOURIST_REVIEWS(REVIEW_ID, REVIEW_DATE, DESTINATION_ID, DESTINATION_RATING, REVIEW) VALUES(1, '2019-03-15', 1, 5, 'We had a great day swimming at the beach and exploring the beach front shops. We will for sure be back next summer.'); INSERT INTO TOURIST_REVIEWS(REVIEW_ID, REVIEW_DATE, DESTINATION_ID, DESTINATION_RATING, REVIEW) VALUES(2, '2019-02-02', 1, 4, 'We had an enjoyable meal. The service and food was outstanding. Would have liked to have slightly larger portions');在 SAP HANA 數據庫連接中,創建從 HANA 數據庫到數據湖 IQ 的遠程源。 請務必替換主機和密碼值。
CREATE REMOTE SOURCE HC_DL_TrialADAPTER "IQODBC"CONFIGURATION 'Driver=libdbodbc17_r.so;host=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.iq.hdl.trial-XXXX.hanacloud.ondemand.com:443;ENC=TLS(tls_type=rsa;direct=yes)'WITH CREDENTIAL TYPE 'PASSWORD'USING 'user=HDLADMIN;password=myPassword1';刷新之后,就看到一個名為 HC_DL_TRIAL 的 remote source 了:
右鍵單擊 HC_DL_TRIAL 并選擇打開。 在 SAP HANA Cloud 中的架構 HOTEL 中創建一個名為 VT_DL_TOURIST_REVIEWS 的虛擬表,該表映射到 SAP HANA Cloud 數據湖 IQ 中新創建的表。
示意圖如下:
請注意,遠程數據源是可更新的。 數據存儲在 SAP HANA Cloud 中,數據湖存儲在磁盤上,與內存存儲相比具有成本優勢。 SAP HANA Cloud,數據湖也可用于存儲大量數據。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的使用 SAP HANA Virtual Table 连接外部数据源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP HANA Database Ex
- 下一篇: java中分页查询的实现_java中分页