さわってみよう watsonx.data #1 ~初めの一歩編~ Part 3

**Part 3の内容**
「さわってみよう watsonx.data #1 ~初めの一歩編~ Part 3」となる当記事では、
下記のうち

・watsonx.dataへのログイン
・インフラストラクチャー・マネージャー(3階層コンポーネントを知る)
・データ・マネージャー(データの探索)
・照会ワークスペース(データの照会)
・照会履歴(照会の監査(過去に実行されたSQLの表示))
**・スキーマの作成**
**・データの取り込み(都内WiFiスポットの緯度、経度が記録されたCSVファイル)**
**・データの照会(地理空間関数で東京駅に近い都内WiFiスポットの件数を調べる)**
・アクセス制御(インフラとデータに対するユーザー単位での制御)

太字部分の
**・スキーマの作成**
**・データの取り込み(都内WiFiスポットの緯度、経度が記録されたCSVファイル)**
**・データの照会(地理空間関数で東京駅に近い都内WiFiスポットの件数を調べる)**
を取り上げます。

**スキーマの作成**

ここからはスキーマを作り、その後、ローカルPCにあるCSVファイルを読み込み、表を作成します。その後、そのデータを照会してみます。
スキーマの作成はデータ・マネージャーで行います。
”SQL”アイコンのすぐ上のアイコンをクリックするとデータ・マネージャーが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/18a9af05-3a0e-a7eb-9145-40d017aaff6a.png)

データ・マネージャーの画面で青文字の”作成”をクリックし、”図形の作成”を選択します(ここでは図式=スキーマの意味です)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/0c0a846e-3cd6-9b73-b957-b3bb82015771.png)

カタログが“iceberg_data”になっていることを確認し、スキーマ名を入力します。
英数字であること、任意のもので構いません(この例ではuser01)。
”作成”ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/12eae9b2-55ae-c37d-1c1d-f0f7e81a79c9.png)

**データの取り込み**
データ取り込み用のCSVファイルをファイル名"TokyoWiFi.csv"でローカルPCに作成してください。
この時、区切り文字はコンマ(,)で作成し、１行名は列名NO, LATITUDE, LONGITUDEにしておきます。
このCSVファイルには、都内WiFiスポットの緯度(LATITUDE)、経度(LONGITUDE)が記録されているという想定です。
"TokyoWiFi.csv"のデータサンプル(こちらをコピーしてください)
```
NO	LATITUDE	LONGITUDE
71	35.672683	139.763619
72	35.672418	139.763633
73	35.672278	139.76312
77	35.678054	139.763734
78	35.673851	139.760934
95	35.680225	139.765465
119	35.6823669	139.7647158
130	35.674029	139.761086
131	35.67783	139.763609
134	35.672519	139.763535
171	35.67332	139.762627
198	35.677963	139.764955
199	35.678296	139.762831
200	35.680619	139.764145
205	35.679529	139.771492
207	35.675017	139.762686
```

データ・マネージャーの画面で青文字の”作成”をクリックし、”ファイルから表を作成する”を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/677c90fe-7600-e3e1-bd94-8dd7ce74fe83.png)

点線で囲まれたエリア”ファイルをドラッグ・アンド・ドロップするか、クリックしてアップロードする”をクリックして、事前にローカルPCで作成しておいたCSVファイルをアップロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/092ad984-273a-98cc-1469-b11db1ceee6e.png)

CSVファイルのアップロードに成功すると、画面下部に読み込んだCSVファイルの列定義とデータが表示されます。画面をスクロールしてご覧ください。
列LATITUDEと列LONGITUDEのデータタイプがrealになっていますが、 次のステップでdoubleへ変更します(この後利用する地理空間関数と互換性のあるデータタイプにする必要があるためです)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/3c04ff5e-421b-6e62-3a54-697ec9e3fbb7.png)

まず、列LATITUDEのデータタイプをdoubleへ変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/c578cd95-213f-5baa-6634-1a1511e5a32c.png)

次に、列LONGITUDEのデータタイプをdoubleへ変更します。
それぞれ変更したら、”次へ”ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/674d0c42-be53-44a4-2976-d1a1fbbc87a8.png)

カタログが”iceberg_data”になっていることを確認します。
“スキーマの作成”で作成したスキーマを指定し、表の名前を記入します。 英数字であること、スキーマ名.表名がハンズオン環境内で固有であれば、任意のもので構いません (ご自分の名前に座席番号を加える、など)。
”次へ”ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/73fb49c0-3bf5-6ae6-8492-989087e4b15f.png)


画面をプルダウンすると、CREATE TABLE文が確認できます。”NO”列以外の列データタイプがdoubleになっていることを確認してください。問題なければ”作成”ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/7ea8bafb-1d79-80d7-8fa2-21dc50a2fe08.png)

取り込んだデータをデータ・マネージャー画面で確認してみます。表を選択し、”データ・サンプル”タブから表データを確認できます。
前述のデータサンプルを利用された場合、下記のスクリーン・ショットと表示結果は異なります。(データサンプルが表示されていれば問題ありません。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/7a99ae27-85fa-132e-62ca-1dbe69e0eab2.png)

**データの照会**
取り込んだデータを照会ワークスペースで照会してみます。取り込んだのは都内のWiFiスポットの緯度、経度データなので、東京駅から1000m以内にあるスポット数をSELECT文で記述し、実行し、調べてみましょう。
データの照会で利用するSQL：この画面からSQLをコピーしてご利用ください.
ただし、
スキーマ名のuser01は、前述のステップで作成されたスキーマ名に変更してください。
表名のuser01_wifiは、前述のステップでデータを取り込む際に指定した表名に変更してください。
```
SELECT count(*)
FROM iceberg_data.user01.user01_wifi 
WHERE ST_Distance(
to_spherical_geography(ST_POINT(139.767, 35.681)), 
to_spherical_geography(ST_POINT(longitude, latitude))
) <=1000
; 
```

上記のSQLのスキーマ名、表名部分を前のステップで実際に作成したものにそれぞれ変更し、変更後のSQLを照会ワークスペースで実行してみましょう。
照会ワークスペースは”SQL”アイコンで呼び出すことができます。実行は青ボタンです。
結果は”14”になりましたか？
今回ご紹介した地理空間関数は、シンプルなものですが、距離などと関係するビジネス・データは多いので（例：最寄駅からの距離と不動産価格との関係など）セールス、マーケティングの商圏分析などにも地理空間関数を応用いただけます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3295277/fa3c8090-8232-889f-48c5-3addc4a76b39.png)

**Part 3のまとめ**
・データ・マネージャーでスキーマを作成しました。
・データ・マネージャーでファイルからCSVファイルを取り込み、その際に表も作成しました。
・データ・マネージャーでデータを取り込む際、データタイプを変更できることを学びました。
・照会ワークスペースにて、地理空間関数を使った照会(SELECT文)を実行しました。

Part 4(最終回)に続きます。
https://qiita.com/ibm_tk/items/8c103c0984568c02fef8