Technical Articles
Free Trialではじめる SAP HANA Cloud: テーブル作成とデータロード (v3)
本ブログでは、SAP HANA Cloud (以下、「HANA Cloud」) を初めて使われる方を対象に、Free Trial 環境を使用した操作手順を解説します。
本内容は「DBエンジニア」向けの内容になります。
今回は「テーブルを作成し、データをロードする」方法についてご紹介します。
操作の手順は下記の通りです。
・テーブルの作成
・CSV データのロード
サンプルのスクリプトやCSVデータは下記のサイトからダウンロードしてください。
使用するファイルは下記になります。
・CUSTOMERS.hdbtable
・ORDERS.hdbtable
・PRODUCTS.hdbtable
・Customers.csv
・Orders.csv
・Products.csv
テーブルを作成する
それでは、BASを使ってテーブルを作成します。まずは、今まで多くのDBエンジニアの皆様が作成していた、「xxxxxx.sql」というSQLのスクリプトにあたるファイルを作成します。
GLOBAL-DWHプロジェクト内のdbフォルダ配下のsrc フォルダを選択した後、画面上部メニューの「View」から「Find Command…」を選択します。
検索ボックスで「HANA」と入力し、表示されたリストの中から「SAP HANA Create SAP HANA Database Artifact」を選択します。
この「Artifact (アーティファクト)」は「モノ、オブジェクト」に近いニュアンスの言葉で、要は「テーブルやインデックス、シノニムなど、諸々のDBオブジェクトをこれから作ります」という意味になります。
まず、ファイルを配置するフォルダが「/home/user/projects/global-dwh/db/src」になっていることを確認してください。もし、選択されていない場合はフォルダアイコンをクリックして、当該フォルダを選択してください。
今回はテーブルを作成しますが、ファイル名の拡張子が「Artifact」毎に決まっています。
リストから「.hdbtable」を選択してください。検索ボックスに「table」と入力するとリスト表示されます。
まずはCUSTOMERS (顧客マスター)テーブルを作成しますのでArtifact Nameには 「CUSTOMERS」と入力し、「Create」ボタンをクリックしてファイルを作成します。
左のツリーから「CUSTOMERS.hdbtable」を選択し、ダウンロードした「CUSTOMERS.hdbtable」ファイルを開いて内容をコピー & ペーストします。
※ ファイルの内容はAuto Saveされます。
-- CUSTOMERS テーブルの作成
COLUMN TABLE "CUSTOMERS" (
"CUSTOMERID" INTEGER
, "CITYID" INTEGER
, "COUNTRYID" INTEGER
, "REGIONID" INTEGER
, "CUSTOMER" NVARCHAR(50)
, "CITYNAME" NVARCHAR(50)
, "COUNTRYNAME" NVARCHAR(50)
, "REGIONNAME" NVARCHAR(50)
, PRIMARY KEY ("CUSTOMERID")
)
次にこのCUSTOMERS テーブルを「Deploy」します。「Deploy」という言葉は少し難しいのですが、DBに対してテーブルを作成する操作です。
画面左下にある同名の「CUSTOMERS.hdbtable」を選択し、「Deploy」アイコンをクリックします。
「Deploy」が成功したら、テーブルがDBに作成されているか確認しましょう。
Database Connections から、「global-dwh-hdi」を選択し、DBに接続するためのアイコン(Open HDI container) をクリックし、別のタブ/ウインドウが開いて、Database Explorer が起動します。
ツリーから「Tables」を選択します。CUSTOMERS テーブルが「GLOBAL_DWH」スキーマ内に作成されたことが確認できると思います。
コピー & ペーストしたテーブルを作成する命令文がSQL文に似ていたものの、「CREATE TABLE」文の「CREATE」がなかったことに違和感を覚えたDBエンジニアの方も多いかと思います。
BASを使ったテーブル作成では、この定義ファイルに列を追加したり、削除したり、データ型の桁数を増やしてから「Deploy」するとテーブルにその変更が反映されます。
要するに「ALTER TABLE」文を発行しなくてもテーブルの属性変更ができます。
これが「HDI」の良いトコロです。
ただし、データ型の変換ができないパターンもあるので、「ALTER TABLE文でできないことは基本的にできない」と憶えておいてください。
それでは、同じ手順で「PRODUCTS (製品マスター)」 テーブルと「ORDERS (オーダー)」テーブルも作成しましょう。
新規作成するファイル名、及び定義文のコピー元のファイルは、それぞれ「PRODUCTS.hdbtable」と「ORDERS.hdbtable」になります。
-- PRODUCTS テーブルの作成
COLUMN TABLE "PRODUCTS" (
"PRODUCTID" INTEGER
, "CATEGORYID" INTEGER
, "LINEID" INTEGER
, "PRODUCTNAME" NVARCHAR(50)
, "PRODUCTDESCRIPTION" NVARCHAR(50)
, "CATEGORYNAME" NVARCHAR(50)
, "CATEGORYDESCRIPTION" NVARCHAR(50)
, "LINENAME" NVARCHAR(50)
, "LINEDESCRIPTION" NVARCHAR(50)
, "DISCONTINUED" INTEGER
, PRIMARY KEY ("PRODUCTID")
)
-- ORDERS テーブルの作成
COLUMN TABLE "ORDERS" (
"ORDERID" INTEGER
, "PRODUCTID" INTEGER
, "CUSTOMERID" INTEGER
, "EMPLOYEEID" INTEGER
, "ORDERPERIODID" INTEGER
, "REQUIREDPERIODID" INTEGER
, "SHIPPEDPERIODID" INTEGER
, "SHIPPERID" INTEGER
, "UNITPRICE" INTEGER
, "QUANTITY" INTEGER
, "DISCOUNT" INTEGER
, "UNITSALES" BIGINT
, "NETSALES" BIGINT
, "UNITCOST" INTEGER
, "COST" INTEGER
, PRIMARY KEY ("ORDERID", "PRODUCTID")
)
CSVデータをロードする
CSVデータを利用したデータローディングはDatabase Explorer を利用します。
まずは「CUSTOMERS 」テーブルから始めます。
Database Explorerから対象のテーブルを選択します。
テーブルを右クリックしてメニューから「Import Data」を選択します。
「自分のPC上にあるファイル」を意味する「Local」を選択し、事前にダウンロードしておいたファイルから、対象CSVファイル(Customers.csv)を選択し、テーブル定義情報などを確認してからデータをロードします。
データがロードされたか確認してみましょう。
それでは、同じ手順で「PRODUCTS (製品マスター)」 テーブルと「ORDERS (オーダー)」テーブルに対してもデータをロードしてみましょう。
CSV ファイルは、各々「Products.csv」と「Orders.csv」になります。
いかがでしたでしょうか ?
さて、次はいよいよ、モデリングの本題である「Calculation View (HANA View) の作成」です。
では、次回もお楽しみに !!
次回 : Calculation View (HANA View)を作成する
参考 : SAP Analytics CloudとSAP HANA Cloudとの連携