便乗してSpark SQLにもPLEASE句を実装したら既に4/2だった

UTCならまだ4/1なのでセーフとする。

4/1ということもあり,こちらの記事で「MySQレ」のPLEASE句が紹介されました。

sakaik.hateblo.jp

記事中に追記されているように,様々にDBMS向けに実際に実装が進んでいる(!!)ようなので,Spark SQLにも実装してみました。

f:id:miyakelp:20210402074906p:plain

とりあえず

  • SELECTの先頭にPLEASEを許容する
  • PLEASEがない無礼なクエリは勝手にDISTINCTする

というシンプルな(?)ものにしてみました。diffはこちらです。 https://gist.github.com/miyakelp/a89c1df9e11000b709da6d0a4f372175

ANTLRのルールにPLEASEを追加して,パース処理のDISTINCTの判定条件に追加しただけのお手軽実装です。

コンパイルに時間を要することもあり少々遅刻してしまいましたが,MySQレの機能をSparkでも使えるようにしてみたお話でした。

最後に,SparkジョブをSubmitする際は感謝の気持ちを忘れないことを誓って終わりたいと思います。

Galera Clusterのwsrep_OSU_method='RSU'の動きを確認する

MySQLのALTER TABLEの話を聞く機会があり*1,Galera ClusterのRolling Schema Upgrade(特にパーティションまわりの変更)を試しておきたい気持ちになったので,備忘録的に記録を残しておきます。

wsrep_OSU_method='RSU'でスキーマ変更を実行すると,その変更は実行したノードにのみ反映されます。また,実行中は他のノードとの同期が停止し,変更完了後に差分を適用して追いつきます。

ドキュメントにもある通り,スキーマの互換性を保っていれば問題なさそう*2なので,更新止まってる間の差分とgcacheのサイズに気をつけておけば大丈夫だとは思いますが,気になるので適当なパーティションを作って試してみます。

なおこの記事は所属組織とは関係なく個人的興味によるものなので,念の為。

続きを読む

MySQL - VirtualBoxのホスト共有フォルダをdatadirにしたらはまった

ことの発端

これはWindows上のVirtualBoxのお話。

datadirがVirtualBoxのホスト共有フォルダに「なってしまっていた」。 必要なファイルをまとめてホストにおいてまるっとDockerで適当にマウントしたのが諸悪の根源だったりする。

気になるので非Docker環境で試してみた。

2020-01-17T13:59:10.540801Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 b
ecause file system for /vagrant/mysql/ is case insensitive
2020-01-17T13:59:11.246091Z 0 [ERROR] [MY-012592] [InnoDB] Operating system error number 95 in 
a file operation.
2020-01-17T13:59:11.246215Z 0 [ERROR] [MY-012596] [InnoDB] Error number 95 means 'Operation not
 supported'
2020-01-17T13:59:11.246374Z 0 [ERROR] [MY-012646] [InnoDB] File ./undo_001: 'Linux aio' returne
d OS error 195. Cannot continue operation
2020-01-17T13:59:11.246445Z 0 [ERROR] [MY-012981] [InnoDB] Cannot continue operation.

^q^

(ログのタイムスタンプはUTCだから仕事サボってたわけじゃないよ)

対策

innodb_use_native_aio=0 で回避可能。

細かい話は続きから。

続きを読む

MySQL - 自作ストレージエンジンで初音ミクさんに歌っていただきましょう

この記事は MySQL Advent Calendar 2019 - Qiita 14日目の記事です。

三行で

  • 初音ミク
  • かわいい
  • ポケットミクを制御するストレージエンジンを作った
続きを読む

既に流行っていないAmazon Dash ButtonとESP8266でリモコンをつくった

自宅の照明が赤外線リモコン式で,布団に入ってからリモコンを忘れたことに気が付いてキレたので,Dash Buttonで操作できるようにした。

この記事はなに

電子工作でよく用いられるWi-Fiモジュール ESP8266(ESP-WROOM-02) とAmazon Dash Buttonを使って,赤外線リモコンで操作可能な照明を操作します。 ESP8266側でDash Buttonのブロードキャストを検出し,赤外線LEDを駆動します。

In this article, I am using ESP8266 (ESP-WROOM-02) Wi-Fi module and Amazon Dash Button to control IR LED. ESP8266 observes broadcasts sent by Dash Button and send 38kHz IR signal.

github.com

続きを読む