关于sap:使用-SAP-HANA-Virtual-Table-连接外部数据源

46次阅读

共计 4497 个字符,预计需要花费 12 分钟才能阅读完成。

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
FROM
    HOTEL.RESERVATION AS R JOIN
    HOTEL.VT_TOURIST_REVIEWS AS TR
    ON TR.REVIEW_DATE = R.ARRIVAL JOIN
    HOTEL.CUSTOMER AS C
  ON 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_Trial
    ADAPTER "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 中新创建的表。

示意图如下:

SELECT * FROM HOTEL.VT_DL_TOURIST_REVIEWS;

请留神,近程数据源是可更新的。数据存储在 SAP HANA Cloud 中,数据湖存储在磁盘上,与内存存储相比具备老本劣势。SAP HANA Cloud,数据湖也可用于存储大量数据。

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

正文完
 0