DynamoDBをPythonからSQLっぽく操作する。

set up

  
pip install dql   

code

  
import dql  
import boto3  
import os  
table_name=os.environ['TABLE_NAME'] # dynamodb  
  
  
engine = dql.Engine()  
c = engine.connect(  
    region=os.environ['AWS_DEFAULT_REGION'],  
    access_key=os.environ['AWS_ACCESS_KEY_ID'],  
    secret_key=os.environ['AWS_SECRET_ACCESS_KEY'],  
    host=os.environ['HOST'],  
    port=int(os.environ['PORT']),  
    is_secure=False  
)  
print("--scan--")  
results = engine.execute(f"SCAN * FROM {table_name} LIMIT 10")  
for item in results:  
    print(dict(item))  
  
print("--delete--")  
results = engine.execute(f"DELETE FROM {table_name} WHERE tm>=1235 and tm<=1236")  
  
print("--scan--")  
results = engine.execute(f"SCAN * FROM {table_name} LIMIT 10")  
for item in results:  
    print(dict(item))  

※Selectを利用するためには設定を変更する必要あり。

その他のクエリに関しては下記を参照ください。
https://dql.readthedocs.io/en/latest/topics/queries/index.html

備忘録

DQLドキュメント
https://dql.readthedocs.io/en/latest/ref/dql.engine.html

接続の実態は、dynamo3モジュールのDynamoDBConnectionという物
https://pypi.org/project/dynamo3

動画とDocker-compose

IMAGE ALT TEXT HERE

動画内で説明している通り、Docker-compose環境も作成しました。