演習 - HDInsight でデータをアップロードしてクエリを実行する
これでストレージ アカウントと対話型クエリ クラスターをプロビジョニングしたので、次は、不動産データをアップロードし、いくつかのクエリを実行します。 アップロードするデータは、ニューヨーク市の不動産データです。 これには、住所、販売価格、面積、および簡単にマッピングするためにジオコード化された場所の情報を含む、28,000 個を超える物件レコードが含まれます。 不動産投資会社ではこの情報を使用し、以前に販売された物件の販売価格に基づいて、市場に出る新しい物件に適した面積の価格を決定します。
データをアップロードしてクエリを実行するには、Data Analytics Studio を使用します。これは、対話型クエリ クラスターを作成したときに使用した、スクリプト操作でインストールされた Web ベースのアプリケーションです。 Data Analytics Studio を使ってデータを Azure Storage にアップロードし、設定したデータ型と列名を使用してデータを Hive テーブルに変換してから、HiveQL を使ってクラスターのデータに対してクエリを実行することができます。 Data Analytic Studio に加え、Spark & Hive Tools for Visual Studio Code などの、任意の ODBC/JDBC 準拠のツールを使用し、Hive を使ってデータを操作することができます。
次に、Zeppelin Notebook を使用して、データの傾向をすばやく視覚化します。 Zeppelin Notebook を使用すると、クエリを送信し、多くのさまざまな定義済みグラフで結果を表示できます。 対話型クエリ クラスターにインストールされている Zeppelin Notebook には、Hive ドライバーを使用する JDBC インタープリターがあります。
不動産データをダウンロードする
- https://github.com/Azure/hdinsight-mslearn/tree/master/Sample%20data に移動し、データ セットをダウンロードして、propertysales.csv ファイルをご利用のコンピューターに保存します。
Data Analytics Studio を使用してデータをアップロードする
- 次は、https://servername.azurehdinsight.net/das/ という URL を使用して、インターネット ブラウザーで Data Analytics Studio を開きます。servername は、使用したクラスターの名前に置き換えます。
ログインするためのユーザー名は admin で、パスワードは作成したパスワードです。
エラーが発生した場合は、Azure portal でクラスターの [概要] タブに移動し、確実に状態が [実行中] に設定され、クラスターの種類と HDI バージョンは [Interactive Query 3.1 (HDI 4.0)] に設定されているようにします。
- Data Studio Analytics がインターネット ブラウザーで起動します。
- 左側のメニューの [データベース] をクリックしてから、緑色の縦の省略記号ボタンをクリックします。次に、[データベースの作成] をクリックします。
データベースに "newyorkrealestate" という名前を付けてから、[作成] をクリックします。
データベース エクスプローラーで、データベース名のボックスをクリックし、[newyorkrealestate] を選択します。
- データベース エクスプローラーで、[+] をクリックしから、[テーブルの作成] をクリックします。
- 新しいテーブルに "propertysales" という名前を付けてから、[Upload table](テーブルのアップロード) をクリックします。 テーブル名には、小文字と数字のみを含める必要があります。特殊文字は含めないでください。
- ページの [ファイル形式の選択] 領域で次のようにします。
- 確実にファイル形式を csv にする
- [Is first row header?](最初の行はヘッダーですか?) ボックスをオンにします。
- ページの [Select File Source]\(ファイル ソースの選択\) 領域で次のようにします。
- [Upload from Local](ローカルからアップロードする) を選択します。
- [Drag file to upload or click browse](ファイルをドラッグしてアップロードまたは参照をクリック) をクリックして、propertysales.csv ファイルに移動します。
- [列] セクションで、緯度と経度のデータ型を [文字列] に変更し、販売日を [日付] に変更します。
- 上にスクロールし、[テーブルのプレビュー] セクションを調べ、列見出しが正しく表示されていることを確認します。
- 一番下までスクロールし、[作成] をクリックして、newyorkrealestate データベースに Hive テーブルを作成します。
- 左側のメニューで、[作成] をクリックします。
- 次の Hive クエリを試して、確実にすべてが予期したとおりに動作するようにする。
SELECT `ADDRESS`, `ZIP CODE`, `SALE PRICE`, `SQUARE FOOTAGE`
FROM newyorkrealestate.propertysales;
- 出力は次のようになるはずです。
- 左側のメニューの [クエリ] をクリックしてから、先ほど実行した SELECT
ADDRESS
,ZIP CODE
,SALE PRICE
,SQUARE FOOTAGE
FROM newyorkrealestate.propertysales クエリを選択して、クエリのパフォーマンスを確認します。
パフォーマンスに関する推奨事項がある場合は、ツールにその推奨事項が表示されます。 このページには、実行された実際の SQL クエリも表示され、クエリの視覚的な説明が提供されます。また、クエリの実行時に Hive によって推測される構成の詳細が示され、クエリの各部分の実行にかかった時間を示すタイムラインが提供されます。
Zeppelin Notebook を使用して Hive テーブルを探索する
- Azure portal の [概要] ページで、[クラスター ダッシュボード] ボックスの [Zeppelin Notebook] をクリックします。
- [新しいメモ] をクリックし、メモに Real Estate Data という名前を付けてから、[作成] をクリックします。
- Zeppelin ウィンドウで次のコード スニペットをコマンド プロンプトに貼り付け、再生アイコンをクリックします。
%jdbc(hive)
show databases;
select * from newyorkrealestate.propertysales limit 10 ;
クエリの出力がウィンドウに表示されます。 最初の 10 件の結果が返されていることがわかります。
- 次は、Zeppelin で使用できる視覚化およびグラフ機能の一部を使用する、より複雑なクエリを起動します。 コマンド プロンプトに次のクエリをコピーして、クリックします。
%jdbc(hive)
select `sale price`, `square footage` from newyorkrealestate.propertysales
where `sale price` < 20000000 AND `square footage` < 50000;
既定では、クエリの出力は表形式で表示されます。 代わりに、[散布図] を選択して、Zeppelin Notebook で提供されるビジュアルの 1 つを表示します。