本文使用的csv文件从这个链接里下载:
http://grouplens.org/datasets/movielens/latest/
SAP HANA XS) enables you to create database schema, tables, views, and sequences as design-time files in the repository.
这个练习里,我们将会使用SAP HANA Extended Application Services (XS)提供的database schema,tables和views来实现数据导入的效果。
The HDBtable syntax is a collective term which includes the different configuration schema for each of the various design-time data artifacts, for example: schema (.hdbschema), sequence (.hdbsequence), table (.hdbtable), and view (.hdbview).
This is why we will be using the SAP HANA HDBtable syntax including Core Data Service (CDS) artifacts instead, which only requires the SAP HANA Web-based Development Workbench available with any SAP HANA MDC on the SAP Cloud Platform. All the objects will be created as design-time and will allow us to adapt the structure easily without reloading the data.
首先在SAP Cloud Platform Neo环境的HANA MDC实例里,打开HANA Web-based development workbench,切换到Catalog视图:
点击SQL,使用SQL语句创建一个新的user: MOVIELENS_USER
DROP USER MOVIELENS_USER CASCADE;
CREATE USER MOVIELENS_USER PASSWORD Welcome18Welcome18 NO FORCE_FIRST_PASSWORD_CHANGE;
ALTER USER MOVIELENS_USER DISABLE PASSWORD LIFETIME;
call _SYS_REPO.GRANT_ACTIVATED_ROLE ('sap.hana.ide.roles::CatalogDeveloper' ,'MOVIELENS_USER');
call _SYS_REPO.GRANT_ACTIVATED_ROLE ('sap.hana.ide.roles::Developer' ,'MOVIELENS_USER');
call _SYS_REPO.GRANT_ACTIVATED_ROLE ('sap.hana.ide.roles::EditorDeveloper' ,'MOVIELENS_USER');
call _SYS_REPO.GRANT_ACTIVATED_ROLE ('sap.hana.xs.ide.roles::CatalogDeveloper' ,'MOVIELENS_USER');
call _SYS_REPO.GRANT_ACTIVATED_ROLE ('sap.hana.xs.ide.roles::Developer' ,'MOVIELENS_USER');
call _SYS_REPO.GRANT_ACTIVATED_ROLE ('sap.hana.xs.ide.roles::EditorDeveloper' ,'MOVIELENS_USER');
GRANT EXECUTE on _SYS_REPO.GRANT_ACTIVATED_ROLE TO MOVIELENS_USER WITH GRANT OPTION;
GRANT EXECUTE on _SYS_REPO.GRANT_SCHEMA_PRIVILEGE_ON_ACTIVATED_CONTENT TO MOVIELENS_USER WITH GRANT OPTION;
GRANT EXECUTE on _SYS_REPO.GRANT_PRIVILEGE_ON_ACTIVATED_CONTENT TO MOVIELENS_USER WITH GRANT OPTION;
GRANT EXECUTE on _SYS_REPO.REVOKE_ACTIVATED_ROLE TO MOVIELENS_USER WITH GRANT OPTION;
GRANT EXECUTE on _SYS_REPO.REVOKE_SCHEMA_PRIVILEGE_ON_ACTIVATED_CONTENT TO MOVIELENS_USER WITH GRANT OPTION;
GRANT EXECUTE on _SYS_REPO.REVOKE_PRIVILEGE_ON_ACTIVATED_CONTENT TO MOVIELENS_USER WITH GRANT OPTION;
GRANT "CREATE SCHEMA" TO MOVIELENS_USER;
GRANT REPO.READ on "public" TO MOVIELENS_USER;
GRANT REPO.MAINTAIN_IMPORTED_PACKAGES on "public" TO MOVIELENS_USER;
GRANT REPO.MAINTAIN_NATIVE_PACKAGES on "public" TO MOVIELENS_USER;
GRANT REPO.EDIT_NATIVE_OBJECTS on "public" TO MOVIELENS_USER;
GRANT REPO.EDIT_IMPORTED_OBJECTS on "public" TO MOVIELENS_USER;
GRANT REPO.ACTIVATE_NATIVE_OBJECTS on "public" TO MOVIELENS_USER;
GRANT REPO.ACTIVATE_IMPORTED_OBJECTS on "public" TO MOVIELENS_USER;
执行后,该用户创建成功:
注销SYSTEM用户,使用新创建的用户登录:
切换到Editor视图:
在content节点下,右键菜单,新建一个Application:
Package维护成public.aa.movielens:
新建三个package,分别为data, hdb和service:
将之前链接里提供的csv文件导入data package内:
HANA schema是存放HANA数据库对象诸如表,视图,存储过程等的容器。
新建一个.hdbschema文件,内容如下:
schema_name="MOVIELENS":
再创建一个user.hdbrole文件:
内容如下:
role public.aa.movielens.hdb::user extends catalog role "sap.pa.apl.base.roles::APL_EXECUTE", "AFLPM_CREATOR_ERASER_EXECUTE", "AFL__SYS_AFL_AFLPAL_EXECUTE"
{
schema public.aa.movielens.hdb:MOVIELENS.hdbschema: SELECT, EXECUTE, CREATE ANY;
}
这个role定义了我们创建的这个应用工作时需要的权限:
最后创建CDS artifacts:
新建一个data.hdbdd文件:
namespace public.aa.movielens.hdb;
@Schema : 'MOVIELENS'
context "data" {
@Catalog.tableType : #COLUMN
Entity LINKS {
key MOVIEID : Integer;
IMDBID : Integer;
TMDBID : Integer;
};
@Catalog.tableType : #COLUMN
Entity MOVIES {
key MOVIEID : Integer;
TITLE : String(255);
GENRES : String(255);
};
@Catalog.tableType : #COLUMN
Entity RATINGS {
key USERID : Integer;
key MOVIEID : Integer;
RATING : hana.SMALLDECIMAL;
TIMESTAMP : Integer;
};
@Catalog.tableType : #COLUMN
Entity TAGS {
key USERID : Integer;
key MOVIEID : Integer;
key TAG : String(255);
TIMESTAMP : Integer;
};
};
使用下列的SQL语句将新创建的user role分配给用户MOVIELENS_USER:
call _SYS_REPO.GRANT_ACTIVATED_ROLE ('public.aa.movielens.hdb::user','MOVIELENS_USER');
创建一个table-import配置文件,在里面指定存储于csv文件里的数据,按照怎样的逻辑写入HANA MDC的持久化对象,比如数据库表里。
hdb package里创建一个新的文件data.hdbti :
import = [
{
table = "public.aa.movielens.hdb::data.LINKS";
schema = "MOVIELENS" ;
file = "public.aa.movielens.data:links.csv";
header = true;
delimField = ",";
delimEnclosing= "\"";
},
{
table = "public.aa.movielens.hdb::data.MOVIES";
schema = "MOVIELENS" ;
file = "public.aa.movielens.data:movies.csv";
header = true;
delimField = ",";
delimEnclosing = "\"";
},
{
table = "public.aa.movielens.hdb::data.RATINGS";
schema = "MOVIELENS" ;
file = "public.aa.movielens.data:ratings.csv";
header = true;
delimField = ",";
delimEnclosing= "\"";
},
{
table = "public.aa.movielens.hdb::data.TAGS";
schema = "MOVIELENS" ;
file = "public.aa.movielens.data:tags.csv";
header = true;
delimField = ",";
delimEnclosing= "\"";
}
];
此时执行下列SQL语句,就可以成功从HANA MDC实例的数据库表里读取源自csv文件里的数据了:
select 'links' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.LINKS"
union all
select 'movies' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.MOVIES"
union all
select 'ratings' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.RATINGS"
union all
select 'tags' as "table name", count(1) as "row count" from "MOVIELENS"."public.aa.movielens.hdb::data.TAGS";
相关推荐
SAP Cloud Platform Connectivity是SAP云平台的一项关键服务,它使得云中的应用程序能够安全地访问互联网上或企业内部网络上的远程服务。这个服务是SAP云解决方案与外部系统集成的关键工具,尤其对于那些希望扩展其...
标题“17 SAP S4HANA Cloud Integration.pdf”表明这篇白皮书专注于SAP S/4HANA Cloud集成方面,是SAP在云计算集成领域的深度介绍和详解。而描述部分说明了白皮书会详细介绍SAP S/4HANA Cloud集成的景观及其各种选项...
SAP Cloud Platform还包括了SAP HANA服务(SAPHANA Service),这个服务允许用户在云中使用SAP HANA数据库,SAP HANA是一个高性能的数据库,特别适合于处理大量数据的实时分析。 整体而言,SAP Cloud Platform是一...
为了帮助开发者构建最佳的应用程序,SAP HANA Cloud Platform提供了应用程序开发的最佳实践,这些实践覆盖了从初始化和加载、数据模型和绑定、用户界面构建、应用程序结构、翻译到应用程序扩展的各个方面。...
SAP S/4HANA On-Premise和S4 HANA Cloud是SAP提供的两种不同部署方式的智能ERP解决方案,分别适用于不同需求的企业。S/4HANA On-Premise版本是一个基于SAP HANA内存数据库的ERP业务套件,允许企业在私有云或公有云上...
SAP HANA Platform 2.0 是一个先进的内存数据平台,专为实时业务分析和应用程序设计,为企业提供了高效的数据处理和分析能力。该平台利用了高性能的列式存储、并行处理和数据库内计算功能,使得企业能够进行大规模的...
SAP S/4 HANA Cloud是SAP公司推出的一套集成化的企业资源规划云解决方案,它基于S/4 HANA平台,旨在为各种规模的企业提供实时的数据处理和业务分析功能。而SAP Cloud Security & Support Framework则是SAP为了保障其...
文档描述中提到的“最新特性”可能涉及了SAP BW/4HANA的多项创新,包括了数据建模的增强、数据存储的优化、以及对实时分析的进一步支持。文档还提到了“step by step”的实现方式,说明该手册是一份实施指南,用以...
- SAP Cloud Platform提供了广泛的开发工具和服务,包括但不限于:应用开发与生命周期管理、数据管理、物联网(IoT)服务、人工智能和机器学习、移动应用支持、以及集成和API管理等。 - 用户可以利用这些功能构建...
学习如何将外部数据源(如CSV文件)导入到SFLIGHT表,或者定期更新现有数据,是理解SAP HANA数据管理的重要部分。SAP HANA提供了ETL(提取、转换、加载)工具,可以方便地进行数据导入和同步。 5. **实时报告与...
【标题】"SAP Cloud Ap.zip"项目是一个包含示例应用程序的压缩文件,它专门针对SAP Cloud Platform(SAP云平台)设计。SAP Cloud Platform是SAP提供的一个开放的、灵活的云端开发环境,旨在帮助开发者构建、运行和...
SAP BW/4 HANA是SAP公司推出的企业数据仓库解决方案,是SAP Business Warehouse(BW)的第四代产品,专为与SAP HANA数据库集成而设计。SAP HANA是一款高性能的内存计算平台,允许数据在内存中进行存储和处理,从而...
SAP HANA ODBC驱动程序使得非SAP应用,如Excel、Python或各种BI工具,能够与SAP HANA数据库进行交互,执行查询、数据导入导出、数据分析等操作。 ODBC驱动程序的工作原理是:它在应用程序和数据库之间起到桥梁作用...
9. **云集成**:随着SAP HANA的云版本越来越普及,SAP HANA Studio也支持连接到SAP HANA Cloud,使得开发和管理云上的HANA实例成为可能。 SAP HANA Studio 2.3.37版可能包含了一些更新和改进,比如性能提升、新功能...
sap press doc 解压密码:abap_developer
SAP HANA客户端是用于与SAP HANA高性能分析数据库交互的软件工具,它提供了多种方式来连接和操作数据。标题“SAP_HANA_CLIENT64”表明我们讨论的是64位版本的SAP HANA客户端,这通常适用于64位操作系统。在描述中...
4. 数据可视化:BW4HANA Content 提供了一个强大的数据可视化引擎,能够将业务数据转换为直观的图表和报表,帮助业务决策者快速了解业务情况。 BW4HANA Content 的优点包括: 1. 高性能:BW4HANA Content 能够快速...
introduce the Starter, Quality, and Production Systems of the SAP S/4 HANA Cloud solution
在本文中,我们将深入探讨SAP HANA_CLIENT Rev81 x64 for Windows,包括其核心组件、ODBC驱动程序以及安装和卸载过程。 SAP HANA是一个高性能的数据处理和分析平台,特别适合大数据量的实时分析。SAP HANA客户端...
通过以上步骤,SAP Data Services成功连接到SAP HANA,允许用户无缝地从HANA数据库中提取数据,进行清洗、转换,并将处理后的数据加载到其他系统或数据仓库中。这个过程对于实施数据治理、实现数据质量管理和进行...