サンプルデータの照会

Prev Next

VPC環境で利用できます。

データボックスの作成時に検索、ショッピング関連データサンプルが提供されます。データ供給の申し込み後は外部ネットワークとの通信がブロックされるため、外部ネットワークとの通信がブロックされる前にサンプルデータを活用して分析環境をプリセットできます。Cloud Hadoopでサンプルデータを照会する方法と Ncloud TensorFlow Serverでサンプルデータを照会する方法について説明します。データの詳細な説明は、提供データの詳細説明をご参照ください。

Cloud Hadoopでサンプルデータを照会

参考

Big Data & Analyticsの NIMOROサービスで Cloud Data Boxのデータを照会する場合、NAVERデータを Hadoop HDFSのパスにアップロードする必要があります。

1. サンプルデータ位置を確認

サンプルデータは Hadoop HDFSの以下のパスにアップロードされます。
/user/ncp/sample

2. HDFSでファイルを確認

Connectサーバからウェブブラウザで Hueにアクセスし、HDFSにアップロードされたサンプルファイルを確認できます。

  • Hueアクセスアドレス https://엣지노드IP:8443/hue
    databox-sample-00

3. Hive Externalテーブルを作成してデータを照会

Hueにアクセスした後、Hive Query Editorでサンプルデータファイルを活用して Hive Externalテーブルを作成できます。

  • 以下のスクリプトで hdfs://hadoop-000-000は Hadoopクラスタ名に変更した後、スクリプトを実行します。Hadoopクラスタ名はデータボックスの [詳細] ボタンをクリックした後、 [インフラ] タブで確認できます。
  • サンプルデータで提供するデータの種類や、スキーマとデータ供給時に提供される検索とショッピングデータの種類やスキーマが同じなので、データ供給の申し込み後に以下のスクリプトでデータベースとデータアップロードパスを変更するだけで、実際のデータに対するテーブルを作成できます。
  • テーブル作成が完了した後、MSCK REPAIR TABLEコマンドを実行すると、テーブルがありませんというエラーが発生することがあります。この場合、しばらくしてから MSCK REPAIR TABLEコマンドを再度実行してください。
-- サンプルデータ用データベースを作成
CREATE DATABASE sample;

-- 1. 検索クリックテーブルを作成 
CREATE EXTERNAL TABLE sample.search_click (
      `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `keyword`  STRING
    , `area`  STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`     varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/search/click/";  -- サンプルデータがアップロードされた場所。Hadoopクラスタ名に変更して使用

-- 2. 検索クリックして共起テーブルを作成
CREATE EXTERNAL TABLE sample.search_click_cooccurrence (
     `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `keyword1`  STRING
    , `area1`  STRING
    , `keyword2`  STRING
    , `area2`  STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`     varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/search/click_cooccurrence/";

-- 3. アクセス先別検索キーワードテーブルを作成
CREATE EXTERNAL TABLE sample.search_click_location (
     `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `keyword`  STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`     varchar(10)
    , `hour`    varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/search/click_location/";

-- 4. 商品クリックテーブルを作成
CREATE EXTERNAL TABLE sample.shopping_click (
     `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `keyword`  STRING
    , `cat`  STRING
    , `brand` STRING
    , `item` STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`     varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/shopping/click/";

-- 5. 商品購入テーブルを作成
CREATE EXTERNAL TABLE sample.shopping_purchase (
     `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `cat`  STRING
    , `brand` STRING
    , `item` STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`     varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/shopping/purchase/";

-- 6. 商品クリック共起テーブルを作成
CREATE EXTERNAL TABLE sample.shopping_click_cooccurrence (
     `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `keyword1`  STRING
    , `cat1`  STRING
    , `keyword2`  STRING
    , `cat2`  STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`     varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/shopping/click_cooccurrence/";

-- 7. 商品購入共起テーブルを作成
CREATE EXTERNAL TABLE sample.shopping_purchase_cooccurrence (
     `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `cat1`  STRING
    , `cat2`  STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`     varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/shopping/purchase_cooccurrence/";

-- 8. Pro Option検索クリックテーブルを作成
CREATE EXTERNAL TABLE sample.pro_search_click (
     `user`  STRING
    , `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `keyword`  STRING
    , `area`  STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`   varchar(10)
    , `hour`  varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/pro_search/click/";

-- 9. Pro Option商品クリックテーブルを作成
CREATE EXTERNAL TABLE sample.pro_shopping_click (
     `user`  STRING
    , `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `keyword`  STRING
    , `brand` STRING
    , `item` STRING
    , `cat`  STRING
    , `count`  BIGINT
) PARTITIONED BY (
     `date`   varchar(10)
    , `hour`  varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/pro_shopping/click/";

-- 10. Pro Option商品購入テーブルを作成
CREATE EXTERNAL TABLE sample.pro_shopping_purchase (
     `user`  STRING
    , `age`  STRING
    , `loc1`  STRING
    , `loc2`  STRING
    , `cat`  STRING
    , `brand` STRING
    , `item` STRING 
    , `count`  BIGINT
) PARTITIONED BY (
     `date`   varchar(10)
    , `hour`  varchar(10)
    , `device`  varchar(10)
    , `gender`  varchar(10)
) ROW FORMAT delimited fields TERMINATED BY ','
STORED AS PARQUET LOCATION "hdfs://hadoop-000-000/user/ncp/sample/pro_shopping/purchase/";

上記スクリプトを実行した後は、次のように Hueで Hiveテーブルのデータが照会されることが確認できます。

SET hive.resultset.use.unique.column.names = false;

SELECT * FROM sample.search_click LIMIT 10;

SELECT *  FROM sample.search_click 
WHERE `date` = '2021-01-01' and device = 'mobile' and gender = 'f' and `count` > 10 LIMIT 10;

image

4. Zeppelinでサンプルデータを照会

Zeppelinにアクセスし、Cloud Hadoopにアップロードされた Parquetファイルデータを照会できます。

  • Zeppelin: ambariサービスリンクを利用、または https://엣지노드IP:9996

以下のスクリプトで hdfs://nv0xxx-hadoopは Hadoopクラスタ名に変更した後、スクリプトを実行します。Hadoopクラスタ名はデータボックスの [詳細] ボタンをクリックした後、 [インフラ] タブで確認できます。

%spark2
val df = spark.read.parquet("hdfs://nv0xxx-hadoop/user/ncp/sample/shopping/click")
println(df.count())
df.show()

databox-sample-021

前のステップで作成した Hiveテーブルのデータを確認できます。

%jdbc(hive)
SET hive.resultset.use.unique.column.names = false;
SELECT * FROM sample.search_click LIMIT 10;

clouddatabox-sample_02

Ncloud TensorFlow Serverでサンプルデータを照会

Ncloud TensorFlow Serverでサンプルデータを照会する方法は、次の通りです。

  1. Ncloud TensorFlow Serverの下記パスでサンプルデータを確認します。

    • /home/ncp/workspace/sample
    • サンプルデータは Read-onlyで提供されます。
  2. Jupyterにアクセスし、必要なモジュールをインストールします。

    !pip install -U pyarrow
    
  3. 以下のように提供されたサンプルファイルデータを確認します。

    import pandas as pd
    import pyarrow.parquet as pq
    from collections import OrderedDict
    source = "/home/ncp/workspace/sample/search/click/date=2021-01-01/device=pc/gender=m"
    d = pq.read_table(source=source).to_pydict() 
    df1 = pd.DataFrame( OrderedDict( d ) )
    

    databox-sample-03