:本明細書で使用する場合、CSVファイルには、このリンクからダウンロードし
http://grouplens.org/datasets/movielens/latest/
SAP HANA XS)リポジトリにデザイン時のファイルとしてデータベーススキーマ、テーブル、ビュー、およびシーケンスを作成することができます。
この演習では、我々は、インポートされたデータの効果を達成するために提供されるデータベースのスキーマを、テーブルやビューのSAP HANA拡張アプリケーションサービス(XS)を使用します。
スキーマ(.hdbschema)、配列(.hdbsequence)、テーブル(.hdbtable)、ビュー(.hdbview:HDBtable構文は、例えば、様々なデザインタイムデータアーチファクトのそれぞれについて異なる構成スキーマを含む総称であります)。
我々は唯一のSAPクラウドプラットフォーム上の任意のSAP HANA MDCで利用可能なSAP HANA Webベースの開発ワークベンチを必要とする代わりに、コアデータ・サービス(CDS)などのアーティファクトをSAP HANA HDBtable構文を使用する理由はここにあります。すべてのオブジェクトは、設計時に作成され、私たちはデータをリロードせずに、容易な構造を適応させることができるようになります。
最初のインスタンスHANA MDC SAPクラウドプラットフォームネオ環境では、オープンHANAのWebベースの開発ワークベンチ、カタログビューに切り替えます。
SQLをクリックして、SQL文を使用して、新しいユーザーを作成します。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ユーザー、新しく作成したユーザーのログインを使用しました:
エディタビューに切り替えます。
コンテンツノードでは、右クリックメニューでは、新しいアプリケーションを作成します。
パッケージのメンテナンスコストのpublic.aa.movielens:
三つの新しいパッケージ、それぞれ、データ、HDBとサービス:
リンクの前にcsvファイルは、データパッケージのインポートによって提供されました:
HANAスキーマは、テーブル、ビュー、ストアドプロシージャなど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;
}
この役割は、私たちが仕事にこのアプリケーションを作成する際に必要なアクセス許可を定義します。
最後に、CDSの成果物を作成します。
新しいファイル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;
};
};
ユーザーMOVIELENS_USERに割り当てられた新しいユーザーロールを作成し、次のSQLステートメントを使用します。
コール_SYS_REPO.GRANT_ACTIVATED_ROLE( 'public.aa.movielens.hdb ::ユーザー'、 'MOVIELENS_USER');
表インポート設定ファイルを作成し、指定されたデータは、データベーステーブルとしてどの論理に従って永続オブジェクトHANA MDCへの書き込み、内部csvファイルに格納されています。
HDBパッケージは、新しいファイル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";
もっとジェリーの元の記事については、してください公共の番号「王Zixi」に注意を払います: