본문 바로가기

좋아하는 것_매직IT/96.IT 핫이슈

s3sqlite - S3에 저장된 SQLite쿼리하기를 소개합니다 (github.com/litements)

반응형

s3sqlite - S3에 저장된 SQLite쿼리하기를 소개합니다 

깃허브에서는 아래와 같이 소개하고 있군요..

Query SQLite databases in S3 using s3fs

APSW SQLite VFS. This VFS enables reading databases from S3 using s3fs. This only supports reading operations, any operation that tries to modify the DB file is ignored.

Inspired by sqlite-s3vfs and sqlite-s3-query.

한마디로, S3에 저장된 SQLite쿼리에 대한 내용입니다.

아래는 간단한 예시코드고요..

Example usage

import s3fs
import s3sqlite
import apsw

# Create an S3 filesystem. Check the s3fs docs for more examples:
# https://s3fs.readthedocs.io/en/latest/
s3 = s3fs.S3FileSystem(
    key="somekey",
    secret="secret",
    client_kwargs={"endpoint_url": "http://..."},
)

s3vfs = s3sqlite.S3VFS(name="s3-vfs", fs=s3)

# Define the S3 location
key_prefix = "mybucket/awesome.sqlite3"

# Upload the file to S3
s3vfs.upload_file("awesome.sqlite3", dest=key_prefix)

# Create a database and query it
with apsw.Connection(
    key_prefix, vfs=s3vfs.name, flags=apsw.SQLITE_OPEN_READONLY
) as conn:

    cursor = conn.execute("...")
    print(cursor.fetchall())

그리고 설치는 아래와 같이 진행하시면 됩니다.

Installation

python3 -m pip install s3sqlite

이어서, s3sqlite 의 특징을 간단하게 정리하자면 아래와 같습니다. 

  • APSW(Another Python SQLite wrapper) 로 만든 s3fs(VFS)
  • 읽기 오퍼레이션만 가능
  • DB는 WAL이 아닌 Journal모드로 되어있어야 동작
    • WAL로 생성한 DB를 Jounal모드로 바꿔서 S3에 업로드 하는 것은 문제 없음

 

자세한 내용은 아래 웹페이지를 참고하시면 좋을것 같네요...

오늘의 블로그는 여기까지고요..
항상믿고 봐주셔서 감사합니다.

728x90
300x250