スキップしてメイン コンテンツに移動

Apache-Drillを利用してData Scientistになろう!初級編!

何も知らない人のための講座になります。

まずはApache Drillをインストールしましょう。

https://drill.apache.org/

Apache Drillを自分のパソコンにインストールしましょう!
下記のファイルをまずダウンロード!

ダウンロード:https://drill.apache.org/download/
JDKが要ります:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
もしUnzipが必要なら:https://www.7-zip.org/download.html

インストールマニュアル:https://drill.apache.org/docs/installing-drill-on-windows/

インストール時チェック事項
・JAVA_HOME設定しました?
・Drill UDFフォルダを作成しました?
・Drill UDFフォルダに権限を与えました?

ではダウンロードしたDrillを起動しましょう!

圧縮を解凍するとフォルダができます。

apachi-drill-.....

この中にbinフォルダに入ります。

apache-drill-embedded.bat を実行します。

しばらく待ったらプロンプトが出ます。

apache drill>

と表示されたらOKです!

プロンプトでもSQLの実行ができますが
見やすいWebUIを提供してくれるので
ブラウザを立ち上げます。

localhost:8047

に接続すると
何か出ました!

Queryをクリックしましょう。

Queryを入力する画面に早速自分のデータを入れてみましょう!

UTF-8で保存したCSVファイルを用意しましょう。

今回はtest01.csvと名付けました

select * from dfs.`C:\lwwork\test01.csv` limit 10;

と入力して実行!(ctrl + enter)

CSVデータがウェブ上に表示されたら成功です!

ここでいくつかのTipをだすと、
基本的にCSVのフィールド名は無視されます。
Column[0], Column[1] のように入力する必要があります。
よく使うファイルの場合先に名付けをしましょう

select   columns[0] as ProcDt   , columns[1] as ProcStat   , columns[2] as ProcFreq   , columns[3] as ServiceName   , columns[4] as JobName   , columns[5] as ApplyLink   , columns[6] as OutFileName   , columns[7] as OutSheetName   , columns[8] as StHeader   from dfs.`C:\lwwork\test01.csv` limit 10;

このように名付けたら活用しやすくなります。

Apache-DrillはInsertとUpdateはできません。
しかし!

Create Table As Select

を利用して調合した内容を新しいテーブルとして入れられます!
この場合ちゃんとColumnsじゃなくコラム名を入力することができます!
このようにCreate Table asをうまく使うと過去の結果の再活用もできて
より早く便利に使えます!
ちなみにCreate Tableで作られたデータは最初のdfsという設定に入ります
(中身は見れません。)

そして、Oracle、MySQL、Sql ServerなどのRDBMSとMongoDB、HadoopなどのNoSQLとの照会が直接にできます。
ちなみに、MySQLのテーブルとOracleのテーブルをJoinしてGoogle AnalyticsからダウンロードしたCSVを入れてユーザーのサービス統計などの取得ができます。

基本的にUTF-8で処理ができるのでANSIまたはShift_JISなどのフォーマットは文字化けになります。WebUIで色々試してみましたが、元のファイルをUTF-8に落としてからやったほうが楽でした。

作業フォルダとかファイルフォーマットなどを定義できます。

http://localhost:8047/storage

ストレージ(Storage)メニューをクリックして
Enabled Storage Pluginsのところを修正するか
dfsのところをUpdateを押してソースJSONデータをコピーし、
Createを押して
自分の好みに合わせて
再作成したJSONを入れると fromのところを好みに合わせていじれます。

外のRDBMSなどの接続に関してのご説明は

https://github.com/LowyShin/KB-KnowledgeBaseHome/wiki/Apache-Drill

考えによって色んな分野で使えるので是非お試しを!




コメント

このブログの人気の投稿

コピペができないときチェックすべきこと! :: よく迷うUiPathのコツ

UiPath( https://uipath.com )はMicrosoft社のWWFを改良した製品なのでVisual Studioより初心者向けに使いやすくなっている。 しかし、初心者がそのまま使うにはかなりのハドルがある。 理由は基本開発者向けの開発ツールを無理やり便利に作ってみたとしても開発の概念と考え方がないと結構躓くことが多い。 そのなかで私もよく迷ったりしていることの一つを整理しとく。 基本Activityはすぐコピぺができるので多数のUiPath Studioを開いて開発してたりする。 ここでコピペをしても反応ないときがよくある。 この場合はこれをチェックすること! 1.Sequenceがなく一つのActivityしかないところにはペーストできないのが多い。 例えば、ifの処理ボックスにはSequenceが最初はない。 そのボックスに一つのActivityはペーストできるのに2個目からはなぜか反応ない。 それで分からないまま新しいActivityを追加してたりしたが、 あそこにSequenceを入れたら解決ができるのだ! 2.正常にペーストできるはずのところに反応ない。 この場合はPackageが合わなくペーストが効かないケースが多い。 DESIGN>Manage Packagesをクリックしてコピー元のパッケージにインストールされているのにコピー先にインストールされてないパッケージを探す! パッケージを一々見るのが難しい!と思ったら メモ帳からファイルがあるフォルダにあるproject.jsonファイルを開いてみる! あそこにJSONの形式でインストールされたパッケージが見えるので比較しやすくなる! ちなみにコピペをすると変数の宣言が大変だと思うが、 そこでもコツがあるのだ! 変数の宣言はなるべく細かくしてSequence単位で管理できるようにする。 全てに影響がある変数はしょうがないから一番広く宣言するけど。 初心者向けの説明だと、 Variablesというところをクリックして変数を開いたらScopeという範囲が見える! 大体Sequenceボックスの名前を変えてないのでSequenceがすらりと表示されてるはずが、Sequenceボックスの名前を付けてたら見やすくなる。 あ...

英語をより楽に勉強できる方法

英語ができなくて良い機会が失われた経験があるでしょう。 GoogleさんもMicrosoftさんも英語で面接をしてます。 私がエンジニアですが技術より言語の学びが優先だと思います。 知り合いの中で技術は低いが英語が上手い人が私より良い道を歩いてます。 それは会話ができなければ技術も通じないとのことでしょう。 それで色々お試ししましたところ 情報を公開しようとしてます! まず、 Khan Academy( https://www.khanacademy.org/ )に入会! これはSalman Khanという人が自分の親戚に数学を教えるために試したやり方が色んな人が参加してグーグルさんとマイクロソフトさんが投資をした 完全無料教育サービス です。 しかし、これは英語でしか話してないので初心者の方には無理があるでしょう。 それでも、この記事をお読みになられた方は基本的な文法は学んだ方だと考えときます。 そして TEDアプリ( https://www.ted.com/ ) をダウンロード。 日本語の字幕がある映像の中で自分の好みの映像を選んでください。 有名なスピーカが話したことが多いので話し方など良い勉強になります。 次は MeetUp( https://www.meetup.com/ja-JP/ ) でしょ。 英会話グループを探して加入。 自分のレベルに合わせて参加してら良い友達もできるし勉強にもなります。 電車で単語ばっかり暗記している方が見つかりますが、 それも悪くは無いけど効率はどうかと思います。 やはり勉強は楽しく!自分の好みでは無いと! 映画も良いしドラマも良いです。それともゲームとか旅行もあるでしょう。 自分の趣味から始めるのが大切だと思います。 もしドロンが趣味だとしたらわざわざググってみる。 そして英語のページから探すんです。 最初は無理があるけど好きなイメージなどが見つかったら読みたいでしょ? そのページをスクリーンショットかプリントでも良いです。 その文書の単語を探して読んでみるのが第一歩ですね。 最初は辛いでしょ。 私の場合には最初には単語10個だけ探しました。 1日10個だけ辞書から探して残りは捨てる。 さらに10個をその場で暗記してそれで終わり。 翌日3~4個し...

UiPath - Excelのシート名が存在した場合の処理

UiPath.Excel Activityは活用方法によってかなり強力ですが、隠れて探せない項目が多すぎて困ったりします。 公式ドキュメントもいまいちだし…。 Excelを自動化するには協力なUiPathの機能の中でSheetの判断処理を残します。 今まではシートがあったら何とかしようとしたら見つける方法が分からなく、ErrorのExceptionで判断したりしましたが、 workbook.GetSheets.Contains("<sheet name>") があったのをいまさら見つけました; 早速試してみましたが、 messageboxにworkbookとか書いてみても出てこない…。 これはExcel Application Scopeを利用しなければなりませんでした! まずExcel Application ScopeにExcelファイルを登録! Excel Application Scope Activityの属性にOutputにwbを入力して変数に入れます。 変数に入れてからMessageBoxに wb.GetSheet.Contains("Sheet1") を入力してみると成功! 「wb.」をおした時点でいっぱい出てきましたね。 ググってみても詳しく出て着なかったのでここにまず記録 giip - Free UiPath and Rpa Integrated Orchestration Service https://giipasp.azurewebsites.net