Guest User

Untitled

a guest
Jun 10th, 2018
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. server_name = '10.1.2.254'
  2. username = 'rocketchat'
  3. password = 'uMdB9WAtVauyMFc'
  4. database = 'rocketchat'
  5.  
  6. import pymongo
  7. import pyodbc
  8. import pandas as pd
  9. import urllib.parse
  10. from sqlalchemy import create_engine
  11.  
  12. #query message table from mongo
  13. from pymongo import MongoClient
  14. client = MongoClient('mongodb://10.0.2.254:27017/')
  15. db = client.rocketchat
  16. collection = db.rocketchat_message
  17. cursor = collection.aggregate([{ "$project": {"ts":1, "rid":1, "msg":1, 'username':'$u.username', "_id":0}}])
  18. message = pd.DataFrame(list(cursor))
  19.  
  20. #insert into mssql
  21. connection_string = 'DRIVER={{SQL Server}};SERVER={};DATABASE={};UID={};PWD={}'.format(server_name, database, username, password)
  22. connection_string = urllib.parse.quote(connection_string, safe='')
  23. connection_string = "mssql+pyodbc:///?odbc_connect={}".format(connection_string)
  24. engine = create_engine(connection_string)
  25. #print(message)
  26.  
  27. #query room table from mongo and insert into mssql
  28. collection = db.rocketchat_room
  29. cursor = collection.find({}, {"_id":1, "t":1, "name":1, "usernames":1})
  30. room = pd.DataFrame(list(cursor))
  31. #variable != variable is a test for NaN
  32. room.loc[room['name'] != room['name'], 'name'] = room.usernames.apply(' x '.join)
  33. room.drop('usernames', axis=1, inplace=True)
  34. #print(room)
  35.  
  36. #join the message and room tables
  37. message = message.join(room.set_index('_id'), on='rid')
  38. message = message.rename(columns={'name': 'channel_name'})
  39. #print(message)
  40. message.to_sql("message", engine, if_exists="replace")
Add Comment
Please, Sign In to add comment