资讯详情

使用 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
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的原创文章,尽在:“汪子熙”:

标签: fv1连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台