本文使用的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 S/4 HANA Cloud Integration white paper. state the landscape of the integration and options.
SAP_HANA_Cloud_Platform 详细的介绍了SAP4 HANA的开发过程
SAP_HANA_Platform_2.0 SPS_05_050_complete_doc_set_en 关于HANA管理、开发的手册(英文版)
而对于SAP S/4HANA Cloud版本来说:它最适合业务模式简单稳定,开发定制少,Cloud标准功能涵盖其业务场景的企业。与此同时企业不必操心系统层级的运维和服务器的搭建。非常适合那些希望信息化预算不高而且业务能够随...
sap press doc 解压密码:abap_developer
introduce the Starter, Quality, and Production Systems of the SAP S/4 HANA Cloud solution
SAP HANA Cloud Platform 全面支持集成服务、企业移动化、协作以及商务分析。作为唯一基于 SAP HANA 的云平台,SAP HANA Cloud Platform能为企业提供功能强大的实时应用程序,助力企业在当今商业环境中获得成功。
如何使用SAP业务数据服务将数据导入SAPHANA实例中;如何使用SAPHANA内置的应用服务器(XS引擎)来创建网络应用程序。本书面向的是任何想要开始使用SAPHANA创建报表软件、企业内联网或互联网应用的人。
AP Security, Privacy, and Compliance in the Cloud and the service SAP can offer
2. SAP HANA 架构:SAP HANA架构主要包括SAP HANA Database和SAP HANA 应用两部分。SAP HANA Database是基于列存储的关系数据库,能够高效地存储和处理大量数据。SAP HANA 应用则提供了多种应用模式,例如报表、分析...
SAP HANA Platform 2.0 SPS 00 Document Version: 1.0 – 2016-11-30 from: https://help.sap.com/doc/364de745e9344f799348925eb354913d/2.0.00/en-us/sap_hana_developer_quick_start_guide_en.pdf The SAP HANA...
当在SAP Cloud Platform上构建与SAP解决方案和服务(例如SAP S / 4HANA,SAP SuccessFactors等)集成的并行扩展应用程序时,SDK可以减少您的开发工作。 寻找文件? 在我们的上查看我们的和指南。 目录 配套 该项目...
基本工具包括SAP Transformation Navigator、针对SAP S/4HANA的下一代业务场景建议、面向SAP S/4HANA的SAP Readiness Check、维护规划工具、系统转换和停机时间、ABAP工具和自定义代码、全新实施项目的数据迁移工具...
sap hana SFLIGHT样例数据
最新BW4HANA建模手册,涵盖了最新特性,以及如何实现这些最新特性的step by step,为新项目实施提供标准参考
This book is designed to be self-contained, and by the time you reach the end, you will be provided with all the information you need to procure the software discussed
系统并且完整介绍了 SAP BW/4 HANA 基础框架,并且有详实步骤操作
sap hana studio SAP HANA 数据库连接工具 及安装方式
SAP HANA运维工具 自动化脚本 备份工具 SAP HANA运维工具 自动化脚本 备份工具
星型结构是SAP HANA中的一种数据模型,它可以将多个表关联起来,提供快速的数据分析和报表生成能力。 3. 使用SAP HANA Studio SAP HANA Studio是一个基于图形用户界面的开发工具,能够提供实时的数据分析和报表生成...