Lambdaの活用事例プログラミング2024.05.01データベースを利用するアプリケーション開発において、SQLクエリの管理と実行は重要な課題です。Lambdaのようなサーバーレス環境で開発を行う場合、効率的な開発と検証プロセスが求められます。Lambda上での実行を効率化する方法を紹介します。Serverlessは、MySQLと互換性のあるサーバーレスのデータベースです。DBサーバーを自分で構築する手間が省けるので、検証には最適と言えます。検証であれば、無料で使える枠が用意されています。Lambda上で直接開発を行うことは、以下のような理由から非効率的です。Lambda関数の実行にはコストがかかるLambda上での開発ツールは、ローカル環境ほど充実していないLambda上でのデバッグとテストは時間がかかるそのため、SQLクエリの検証はローカル環境で行うことをお勧めします。ローカル環境では、充実した開発ツールを使ってクエリの動作を確認し、必要な修正を加えることができます。Lambda関数にも無料枠はあります。工夫をしなければLambda関数上での開発は非効率です。コードとSQLの分離によるメリット本事例では、SQLクエリをPythonコードから分離し、combined_queries.sqlというファイルで管理しています。このファイルを用いた開発方法は、次の記事をご覧ください。SQL】SQL文の管理と実行を最適化するための手法を徹底解説。ORMと直接SQLの比較、パフォーマンス改善のコツ、実践的なテクニックなど、効率的なSQL文の扱い方を学んで、今すぐ開発に活かそう!self-development.info2024.04.29この方法には、以下のようなメリットがあります。SQLクエリの再利用性が向上するコードの可読性とメンテナンス性が向上するローカル環境とLambda関数間でのクエリの共有が容易になるローカル環境で検証したSQLクエリを、Lambda関数にデプロイする際は、combined_queries.sqlファイルを更新するだけで済みます。これにより、開発と検証のプロセスが大幅に効率化されます。ローカル環境でのSQL検証ローカル環境でSQLクエリを検証するには、以下のPythonコードを使用します。main()get_query関数でcombined_queries.sqlからクエリを取得し、execute_query関数でTiDBに接続してクエリを実行しています。ローカル環境では、TiDBの接続情報をdb_config変数で管理する形となります。具体的には、.envファイルに設定情報を登録しています。その.envをpython-dotenvで読み込んでいるということです。【初心者OK】python-dotenvで環境設定ファイルを読み込む初心者向けにpython-dotenvの基本をわかりやすく解説。python-dotenvのインストールから環境設定ファイルの読み込み方法を学び、Pythonプロジェクトの設定管理を簡単かつ効率的に行うためのステップを紹介します。self-development.info2024.02.11このコードを使って、ローカル環境でSQLクエリの動作を確認し、必要な修正を加えます。database」を利用しています。MySQLのサンプルデータベースをダウンロードして利用する「SQLの基礎を学びたい」このような場合には、この記事の内容が参考になります。この記事は、MySQLの初心者向けとなっています。主な内容は、サンプルデータベースの作り方です。このサンプルデータベースを用いて、SQLの基礎を学ぶことができます。Serverlessの管理画面で次のように確認できます。Lambda関数へのデプロイローカル環境で検証したSQLクエリをLambda関数で使用するには、以下の手順を実行します。combined_queries.sqlファイルをLambda関数のデプロイパッケージに含めるLambda関数のコードを更新するLambda関数のコードは、以下のようになります。}Lambda関数では、TiDBの接続情報を環境変数から取得しています。TiDBへの接続にはPyMySQLライブラリを利用しています。【PyMySQL】PythonでMySQL(MariaDB)に接続するPythonでMySQL(MariaDB)に接続するために、PyMySQLライブラリを利用します。PyMySQLを使えば、簡単にデータベースに接続できます。この記事では、PyMySQLに関して解説しています。インストールから動作確認(INSERT文でのデータ登録)まで、コピペで実践できます。LambdaへのPythonライブラリのインストールは、以下の記事が参考になります。LambdaでPythonライブラリを簡単にインストールする方法を解説。依存関係の管理、パッケージ化、アップロードの手順から実践例まで、初心者向けに詳しく説明します。self-development.info2024.01.21まとめPythonとTiDBを使ってSQLクエリを管理する方法を紹介しました。SQLクエリをコードから分離することで、再利用性と可読性が向上します。その結果、ローカル環境とLambda関数間でのクエリの共有が容易になります。ローカル環境でSQLクエリを検証することで、開発と検証のプロセスを大幅に効率化できます。Lambdaを使ったデータベースアプリケーションの開発と運用の生産性が向上するでしょう。ちなみに、各環境における検証コードの実行結果は以下となります。secondsLambda関数は、かなり高速です。ServerlessはAWSの東京リージョンで動いていることが判明しています。Lambda関数も東京リージョンで動かしています。ServerlessとLambda関数はかなり近所である可能性はありますね。コピーself_developmentをフォローするself_developmentジコログ関連記事プログラミングPyTorchの簡単過ぎるインストール【Pythonで機械学習】PyTorchの勢いを知っていますか?Chainerがなくなった今、PyTorchがTensorFlowを追い越そうかという勢いです。この記事では、PyTorchの現状とインストール方法を解説しています。簡単にインストールして、気軽にPyTorchを試すことができます。生命科学を研究する上で役に立つ(今後は必須でしょう)BioPythonのインストール方法について解説しています。生命科学を学ぶPython初心者が、わからないまま進めるのではなく理解してBioPythonをインストールできるように説明しています。「プログラムを利用して、TikTokでアカウント検索を行いたい」「自動的にTikTokでハッシュタグ検索を行いたい」「TikTokを利用したシステム開発を行いたい」このような場合には、TikTokApiがおススメです。この記事では、TikTokApiについて解説しています。プログラミングZeroMQをインストールして疎結合のシステム開発を目指す疎結合という言葉が好きですか?システム開発において、疎結合を実現するためにはZeroMQが役に立ちます。ZeroMQは非同期メッセージングを可能にします。この記事では、ZeroMQを疎結合の側面から説明して、インストール方法まで解説しています。機械学習の初心者には、そのようなイメージがあると思います。実際、私はそのようなイメージでした。ディープラーニングから、機械学習に興味を持った人間です。3.10.1がリリースされました。3.10.1にアップグレードする手順を解説しています。プログラミングPythonでWAVファイルの情報を最も簡単に取得する方法PythonでWAVファイルのサンプリングレートや再生時間を取得するのは、簡単なはずなのに面倒になっています。Pydubを使う方法が紹介されているケースもあるでしょう。そんなライブラリは必要ありません。なんと、Pythonの標準モジュールで対応できるのです。「ブラウザの操作を自動化したい」「Chromeの拡張機能を自作したい」「スクレイピングをJavaScriptで行いたい」このような場合は、Tampermonkeyがオススメです。この記事では、Tampermonkeyについて解説しています。DiffusionのNSFWコンテンツ対策を無効化する方法2022.08.262022.09.30PyTorchのインストール失敗時にチェックすべきこと2022.03.082022.03.22self_developmentプロフィールself_developmentをフォローするタイトルとURLをコピーしました。