Сценарий ETL на Python для загрузки данных из CSV-файла другого сервера в mysql - PullRequest
0 голосов
/ 01 сентября 2018

Я работаю бизнес-аналитиком и новичком в Python. В одном из моих проектов я хочу извлечь данные из CSV-файла и загрузить эти данные в мою базу данных MySQL (Staging). Может кто-нибудь подсказать мне пример кода и фреймворков, которые мне следует использовать?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Простая программа для создания sqllite. Вы можете прочитать файл CSV и использовать dynamic_entry для вставки в желаемую таблицу целей.

import sqlite3
import time
import datetime
import random

conn = sqlite3.connect('test.db')
c = conn.cursor()

def create_table():
    c.execute('create table if not exists stuffToPlot(unix REAL, datestamp TEXT, keyword TEXT, value REAL)')

def data_entry():
    c.execute("INSERT INTO stuffToPlot VALUES(1452549219,'2016-01-11 13:53:39','Python',6)")
    conn.commit()
    c.close()
    conn.close()

def dynamic_data_entry():
    unix = time.time();
    date = str(datetime.datetime.fromtimestamp(unix).strftime('%Y-%m-%d %H:%M:%S'))
    keyword = 'python'
    value = random.randrange(0,10)
    c.execute("INSERT INTO stuffToPlot(unix,datestamp,keyword,value) values(?,?,?,?)",
              (unix,date,keyword,value))
    conn.commit()

def read_from_db():
    c.execute('select * from stuffToPlot')
    #data = c.fetchall()
    #print(data)

    for row in c.fetchall():
        print(row)

read_from_db()

c.close()
conn.close()

Вы можете перебирать данные в CSV и загружать в sqllite3. Пожалуйста, обратитесь по ссылке ниже.

0 голосов
/ 03 сентября 2018

Если это правильно отформатированный CSV-файл, вы можете использовать команду MySQL LOAD DATA INFILE, и вам не понадобится Python. Затем, после загрузки в промежуточную область (без обработки), вы можете продолжить преобразование, используя инструмент выбора sql / etl.

https://dev.mysql.com/doc/refman/8.0/en/load-data.html

Проблема в том, что вам нужно добавить все столбцы, но даже если у вас есть данные, которые вам не нужны, вы, возможно, предпочтете загрузить все в стадии подготовки.

...