Upload files to "/"
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import sys
|
||||
import time
|
||||
import datetime
|
||||
import argparse
|
||||
import os.path
|
||||
from influxdb import InfluxDBClient
|
||||
import pandas as pd
|
||||
import pymssql
|
||||
from sqlalchemy import create_engine, MetaData, Table, select
|
||||
from datetime import date, timedelta
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Sync MSSQL for PowerBI with InfluxDB database')
|
||||
parser.add_argument('--influxhost', type=str, required=False, default='itmetricsdb.mathworks.com',
|
||||
help='hostname of InfluxDB http API')
|
||||
parser.add_argument('--influxport', type=int, required=False, default=8086,
|
||||
help='port of InfluxDB http API')
|
||||
parser.add_argument('--mssqlhost', type=str, required=False, default='itmr-00-ah.mathworks.com',
|
||||
help='hostname of Microsoft SQL server holding PowerBI data')
|
||||
parser.add_argument('--mssqldb', type=str, required=False, default='ASPM',
|
||||
help='MSSQL Table Name of data to be synced from InfluxDB')
|
||||
parser.add_argument('--mssqltable', type=str, required=False, default='ApdexScore',
|
||||
help='MSSQL Table Name of data to be synced from InfluxDB')
|
||||
parser.add_argument('--days', type=str, required=False, default=1,
|
||||
help='Number of days to sync - will go from midnight UTC prior day back this many days')
|
||||
return parser.parse_args()
|
||||
|
||||
# Main
|
||||
def main(influxhost, influxport):
|
||||
yesterday = str(date.today() - timedelta(90))
|
||||
today = str(date.today())
|
||||
# create a configuration
|
||||
# Set influxDB data and connect
|
||||
influxuser = 'CMWrite'
|
||||
influxpass = 'CMWrite'
|
||||
mssqluser = 'apdex'
|
||||
mssqlpass = 'apdex'
|
||||
databasename = mssqldb
|
||||
client = InfluxDBClient(host=influxhost, port=influxport, username=influxuser, password=influxpass, database=databasename)
|
||||
query = "select * from ApdexScore where time >= \'" + yesterday + "\' and time < \'" + today + "\'"
|
||||
points = client.query(query, chunked=True, chunk_size=10000).get_points()
|
||||
df = pd.DataFrame(points)
|
||||
print df
|
||||
## instance a python db connection object- same form as psycopg2/python-mysql drivers also
|
||||
engine = create_engine('mssql+pyodbc://apdex:apdex@' + 'itmr-00-ah' + '/' + 'apdex?driver=SQL+Server+Native+Client+11.0')
|
||||
conn = engine.connect()
|
||||
df.to_sql(con=engine, name='apdex', if_exists='replace')
|
||||
|
||||
# grab arguments
|
||||
if __name__ == '__main__':
|
||||
args = parse_args()
|
||||
main(influxhost=args.influxhost, influxport=args.influxport, mssqlhost=args.mssqlhost, mssqltable=args.mssqltable, days=args.days, mssqldb=args.mssqldb)
|
||||
Reference in New Issue
Block a user