Storytelling with Data
import configparser
import pymysql
import csv
import boto3
# Config faylini oqish
parser = configparser.ConfigParser()
parser.read("pipeline.conf")
# MySQL ulanish malumotlarini olish
hostname = parser.get("mysql_config", "hostname")
port = parser.get("mysql_config", "port")
username = parser.get("mysql_config", "username")
dbname = parser.get("mysql_config", "database")
password = parser.get("mysql_config", "password")
# MySQL bazasiga ulanish
conn = pymysql.connect(
host=hostname,
user=username,
password=password,
db=dbname,
port=int(port)
)
if conn is None:
print("Error connecting to the MySQL database")
else:
print("MySQL connection established!")
# Orders jadvalidan malumotlarni olish va CSV faylga yozish
m_query = "SELECT * FROM Orders;"
local_filename = "order_extract.csv"
m_cursor = conn.cursor()
m_cursor.execute(m_query)
results = m_cursor.fetchall()
with open(local_filename, 'w') as fp:
csv_w = csv.writer(fp, delimiter='|')
csv_w.writerows(results)
fp.close()
m_cursor.close()
conn.close()
# S3 ga yuklash uchun AWS credentials malumotlarini olish
parser = configparser.ConfigParser()
parser.read("pipeline.conf")
access_key = parser.get("aws_boto_credentials", "access_key")
secret_key = parser.get("aws_boto_credentials", "secret_key")
bucket_name = parser.get("aws_boto_credentials", "bucket_name")
# S3 bilan ulanish
s3 = boto3.client(
's3',
aws_access_key_id=access_key,
aws_secret_access_key=secret_key
)
# CSV faylni S3 ga yuklash
s3_file = local_filename
s3.upload_file(local_filename, bucket_name, s3_file)
599 ·