IoTやAIのユースケースがますます増えているのなか、ビッグデータをリアルタイムにSQLでクエリする需要が高まっている。こちらを実現するソリューションとして、Apache Hive と Druid の組合せが魅力です。 Apache Hive と Druid とも実績の高いオープンソースソフトウェア(OSS)。 両方とも非常に大量のデータでも対応できるスケールアウト・アーキテクチャ。 Apache Hive と Druid 自体や依存コンポネント全ては、Apache Ambariを使ってGUIウィーザーでインストール可能。 簡単な設定だけで連携可能。 今回はApache HiveとDruidを使ったリアルタイムSQL処理を、サンプルみながら説明する。 Apache Hive 2とは Apache HiveはHadoop上のSQLデータ・ウェアハウスです。最新のHive 2.2は新しいLLA
※当ブログではアフィリエイト広告を利用しています。 Presto をさわり始めたのでプログラミング言語から簡単に操作したいと思い色々見てみたところ、Python では PyHive というパッケージがありました。 PyHive を使って Hive カタログのテーブルに Presto クエリを実行するまでをメモします。 Hiveテーブルの準備 適当にテーブルを作成しレコードを入れておきます。今回はhogeテーブルからvalue1を取得することが目標です。 hive> CREATE TABLE hoge > (fuga string); hive> INSERT INTO TABLE hoge VALUES('value1'); hive> SELECT * FROM hoge; OK value1 PyHiveのインストール 以下のオフィシャル GitHub PyHive リポジトリのドキュ
Jupyter から Hive を使うのに PyHive + ipython-sql が便利だった。 PyHive PyHive は Hive の Thrift クライアントを DB-API 2.0 (PEP 249) 準拠の API でラップするライブラリだ。DB-API は Python でデータベースにアクセスするための標準的なインターフェースで、Perl の DBI や Java の JDBC に相当する。 PyHive と pandas.read_sql があれば、とりあえず SQL の結果を pandas に読み込むことはできるようになる。 ipython-sql 世の中には「SQL を書くのは最初だけで、pandas に読み込んでからが本番」という仕事をしている人もいるんだろうけど、私の場合は SQL 上でいろいろすることのほうが多いので ipython-sql も使っている
HiveServerはThriftプロトコルをしゃべる*1ので、おなじくThriftで接続すると任意のクエリを発行できたりして大変便利。ということで、やったので、そのメモ。 準備 まずHiveServerだけど、hiveコマンドを叩いてクエリが実行できる状態なら以下のコマンドで起動する。*2 $ hive --service hiveserver ただしあらゆるデータ投入などをThrift経由でやるのは正直めんどくさい。hiveと叩けば起動するHive CLIでもデータ操作はしたい。なので conf/hive-default.xml にMetastoreの設定をする。今回は手元のMySQLに hive データベースを作り、それを使うようにした。このあたりが大変参考になった。 HiveのmetastoreをMySQLを使ってLocal Metastore形式で利用する - blog.kats
Hive Hacksあれこれ。内容はほぼO’REILLY Hadoop Hacksからの引用そのまんま。ただの個人メモなのだが、ずうずうしく公開させてもらいます。いろんなところに記録しておいてもすぐに「あれ、あのメモどこやったっけ」となるのでここに書くのが一番なんだよね。書いたからって理解できるわけでもないんだが… (初めに書いておくと、この投稿長いです) 基本原則的なこと。 ●UPDATEは回避する 処理速度が遅延するため、UPDATEを多数含むようなSQLをHiveSQLに変換することは避けるべき ●MapReduceタスクのオーバーヘッド Hiveは「高スループットを目指す処理には向いているが、低レンテンシを目指す処理には向いていない」というMapReduce処理の特徴を引き継いでいる。MapReduceタスクのオーバーヘッドが付きまとうことを念頭におく。 ●並列分散ができない処理
At Facebook, we have unique storage scalability challenges when it comes to our data warehouse. Our warehouse stores upwards of 300 PB of Hive data, with an incoming daily rate of about 600 TB. In the last year, the warehouse has seen a 3x growth in the amount of data stored. Given this growth trajectory, storage efficiency is and will continue to be a focus for our warehouse infrastructure. There
以下の記事ではPig, Hiveなど8種類の言語でMapReduceの一番単純な例、WordCountを記述した場合のスクリプトの比較を行っています。とても興味深かったので紹介したいと思います。Pigs, Bees, and Elephants: A Comparison of Eight MapReduce Languages « Dataspora なお、今回はRSS購読しているDataSporaのブログから発見しましたが、エントリを寄稿したエンジニアの個人ブログも大変興味深いのでオススメです。 はじめにMapReduceを美しく効率的に書くために、私は様々な言語を比較しました。果たしてその勝者は!?私の個人ブログでは統計やグラフのアルゴリズムをMapReduceで記述する方法を紹介し、擬似コードによる実装を示しました。擬似コードには2つの問題点があります:誰もがその命令を理解できると
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く