イクメンデータアナリストのブログ

コンサルのこと/Pythonのこと/Tableauのこと などを備忘録的に書いていこうと思います。

【Python】GドライブにSQLiteでお手軽DB構築

こんにちはbudouです!

今回は業務使用も多いと思われるGoogleドライブを使ったデータベースの共有方法を紹介したいと思います。

[ここにGドライブの中に~~.dbファイルがあるキャプション。これがGドライブの中のデータベースと吹き出しを付ける]

はじめに

スクレイピングしているデータを日々継ぎ足ししながら保存しておきたい
・ER図を描きたいけど、社内のセキュリティの関係で簡単にDBをインストールすることが出来ない

こんな時にはデータベース管理が便利です。

データのチーム共有の方法は以下の方法が一般的かと思います。

  • csv(などテキストファイル)にして共有
  • もともと持っているシステムにテーブルを作って共有
    などあるかと思いますが、今回は

  • Gドライブ上にSQLiteでデータベースを作って共有 する方法を紹介しようと思います。

<目次>

Google Colaboratoryを開く

今回はやってみると手軽に出来たのでローカルPythonではなく、Google Colaboratoryを使ってのDB構築を試みます。 ※ローカルPythonからDドライブへのアクセスももちろん出来ますが、目的に対してはGoogle Colaboratoryを使った方が早いと思いました

開き方は↓

f:id:budounomizu:20210508005518p:plain
Google Colaboratoryの開き方

①Gドライブを開く
②その他からGoogle Colaboratoryを選択

f:id:budounomizu:20210508005614p:plain
Google Colaboratory
こんな感じでNotebookが開くはず。

Google ColaboratoryでGドライブをマウントする

Gドライブをマウントします。 マウントの方法は、
①ドライブをマウントを選択
GOOGLE ドライブに接続を選択

f:id:budounomizu:20210508005725p:plain
Gドライブのマウントのやり方

f:id:budounomizu:20210508005824p:plain
マウント設定中の画面
これが出れば大丈夫なはず

または、下記のコードを貼り付けて実行しても出来ます。

from google.colab import drive
drive.mount('/content/drive')

↓その際、認証のためのURLが発行されるので、それに従い認証を行います。

f:id:budounomizu:20210508005920p:plain
Gドライブのマウントのやり方その②

SQLiteを使ってデータベースを作ろう!

これで準備は出来ましたので、DBをGドライブに作っていきましょう。

必要ライブラリのインポート

import sqlite3
from contextlib import closing
import pandas as pd

テーブル作成

「氏名」と「年齢」の絡むでテーブルを作ってみます。

create_table = '''create table sample_table (氏名 text, 年齢 integer);'''
dbname = "/content/drive/MyDrive/Colab Notebooks/sample_table.db"

with closing(sqlite3.connect(dbname)) as conn:
    c = conn.cursor()
    c.execute(create_table)

※ハイフン(-)は許されていないようです。 ハイフンを入れると ↓ [OperationalError: near "-": syntax error] のようなエラーが出て失敗します。

SQLiteを使ってデータを入れよう!

データ挿入の基本構文はこちらです。

with closing(sqlite3.connect(dbname)) as conn:
    conn.execute("insert into sample_table values(?, ?)", ['高橋花子',20])
    conn.commit()

SQLiteを使ってデータを抽出しよう!

pandasのDataFrameを使うことが多いのでpd.read_sqlで読みにいきます。

with sqlite3.connect(dbname) as conn:
    df = pd.read_sql('select * from sample_table', con=conn)

f:id:budounomizu:20210508010315p:plain
出力結果
できた~

おわりに

今回は業務使用も多いと思われるGドライブにDBを簡単に立てる方法のご紹介でした。 私も手軽にDB使いたいときに利用させてもらってます。

以上、よろしくお願いします。