CentOS上でsqlite3+JDBCでプログラムを書いて、Arm+Ubuntuに実装したら、予期せぬエラーでまくり、あたふたしてしまいました。結局原因はダウンロードしてきたJDBCドライバにあったのですが、正しいドライバをDLしても、速度がめっちゃ遅い。
nativeではなく、pure-javaモードで動くのが原因でした。
■参考ページ:http://blog.livedoor.jp/tak_bon/archives/6684312.html
参考ページに従って、sqlite3のドライバをビルドしようとしましたが、
結局5時間くらいかかったので、メモ。
makeで詰まったところ
1.docker,podmanがないといわれた(初耳)。結局インストールできず、あきらめた
2.python3コマンドがない。lnで作成
3.wgetがこけていて、手動でダウンロードして、リンク
2219 wget http://www.sqlite.org/sqlite-amalgamation-3_7_2.zip
2220 ls -al
2221 rm sqlite-3.7.2-amal.zip
2222 ln -s sqlite-amalgamation-3_7_2.zip sqlite-3.7.2-amal.zip
4.pom.xmの編集
<version>に適当な名前を振る
<parent>ブロックをコメントアウト
5.メソッドをオーバーライドせよと怒られる。nullをreturnするメソッドを追加書き込み。
2041 vi src/main/java/org/sqlite/SQLiteDataSource.java
6.mvnがソースをDLできない
Unexpected error: java.security.InvalidAlgorithmParameterException
1.8のjavaにはsecurityが空
→Windowsからjdk1.9のlib/securityをまるごとコピー
→JAVA_HOME上に置いたが、mvnが見ているのは別のディレクトリだったので、さらにコピー
2236 mvn -version
7.make成功
長かった。nullをリターンするメソッドのところ、かなり無理やり感がありましたが、なんとかjarファイルできてくれました。例外起こさなければきっと大丈夫!
300万件のレコードから、10件だけ取得するテストプログラムで試したところ、期待する結果を得ることができました。
■time java -cp .:sqlite-jdbc-3.7.2.jar Test
real 0m15.929s
user 0m7.954s
sys 0m0.979s
■time java -cp .:sqlite-jdbc-3.7.2-arm7.jar Test
real 0m3.533s
user 0m2.406s
sys 0m0.313s
参考ページ様、ありがとうございます。