どのようにデータをインポートするには、SAPクラウドプラットフォームHANA MDCに含まれているCSV

:本明細書で使用する場合、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.movi​​elens:


三つの新しいパッケージ、それぞれ、データ、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.movi​​elens.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」に注意を払います:

おすすめ

転載: www.cnblogs.com/sap-jerry/p/12453839.html