週刊Railsウォッチ(20190402-2/2後編)Apache Arrowとは何か、prop drillingはアンチパターン、Node-REDほか

こんにちは、hachi8833です。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください ⚓週刊Railsウォッチ「公開つっつき会」第9回開催のお知らせ エントリ先: 週刊Railsウォッチ 公開つっつき会 第9回|IT勉強会ならTECH PLAY[テックプレイ] 次回の公開つっつき会は4/4(木)です。皆さまのお気軽なご応募をお待ちしております!🙇 RubyKaigi 2019の予習にもぜひどうぞ。 ⚓クラウド/コンテナ/インフラ/Linux/Serverless ⚓Apache Arrowとは 参考: Apache Arrow Homepage Railsdm 2019でjoker1007さんの発表に登場していたApache Arrowが気になりました。 つっつきボイス:「というわけでApache Arrowをピックアップしてみました」「Apache Arrowはこれまでも何回か取り上げてきたと思いますが☺️」 サイト: Apache Arrow Homepage arrow.apache.orgより 「Aapache Arrowは言ってみれば、大量のデータを効率良くさばくために、インメモリのアラインメント(データの並べ方)を規格化しようというのが狙いです」「おぉ?」「上の図↑はカラム指向(カラムナー: columnar)の話なんですが、そもそもデータがメモリ上に凝縮されて並んでいないとキャッシュがうまく効かないといった問題もありますし、いろんな言語やいろんなライブラリがメモリ上に好き勝手にデータを配置していると、それらの間で効率よくデータをやりとりできないという問題が元々あるわけです」「ふむふむ」 columnar: {形} : 円柱(状)の、〔紙面レイアウトが〕縦欄式になった 「たとえばRで作ったデータをPythonで読み込みたいとすると、従来は下の図↓の左みたいにいちいちストリームをファイルに書き出してデータ形式を変換して読み込み直して、みたいなかったるいことをやらないといけなかったわけです」「あー😳」「現状では処理系が違えばデータの持ち方も違うので、そういうのをいったん何らかの中間形式に吐き出してそれを読み込むみたいなことをせざるを得ない😢」 arrow.apache.orgより 「Apache Arrowはメモリ上のアラインメントも含めて規格を揃えようというスタンスなので、Shared Memory的な方式でそれらがデータをやりとりできる😎: つまりmmapするだけでできるイメージ」「おぉー、いわゆるシェルでパイプでつなぐみたいなのを…」「いえ、そういうのとはまるで違います🧐: プロセス間でメモリを共有するからめちゃくちゃ高速✈️」「あっそうか!これ以上速いものがありませんね」「言い換えればやりとりでデータコピーがまったく発生しない😋」「そうだったのか〜😅」 参考: 共有メモリ - Wikipedia 参考: Man page of … Continue reading 週刊Railsウォッチ(20190402-2/2後編)Apache Arrowとは何か、prop drillingはアンチパターン、Node-REDほか