Есть ли способ загрузить данные из Snowflake с помощью Python? - PullRequest
0 голосов
/ 05 ноября 2019

Я пытался загрузить данные из Snowflake на свой локальный диск с Python. До сих пор я не добился успеха, потому что не могу получить вывод и не могу загрузить данные. У меня нет доступа к корзине S3, поэтому я использовал xlsx writer в Pandas для получения выходного файла.

Я делюсь своим кодом ниже:

from sqlalchemy import create_engine
from snowflake.sqlalchemy import URL

from shutil import copy
import pandas as pd
import xlsxwriter as xw
import glob
import smtplib
import sys
import os
import datetime
import json
from cryptography.fernet import Fernet

key_file = './config/key.txt'
config_file = './config/encrypted'

snowpass = open("C:/Users/z476026/OneDrive - US Foods/Documents/SnowflakePassPy.txt", "r")
password = snowpass.read()

def check():
    with open(key_file, 'rb') as k:
        key = k.read()

    with open(config_file, 'rb') as f:
        data = f.read()

    fernet = Fernet(key)
    decrypted = fernet.decrypt(data)
    config = json.loads(decrypted)

engine = create_engine(
    URL(account='XXXX',
        user='XXXX',
        password= password,
        database='XXXX',
        schema='XXXX',
        warehouse='XXXX',
        role='XXXXX',
        numpy=True))

staging_directory = open("G:/Logistics/Logistics Data Central/Admin/txt import/Secondary PFV Setups.csv")
output_directory = 'G:\Logistics\Admin\Drop_Box\Snowflake'

query = """Select PROD.div_nbr,
PROD.prod_nbr,
PROD.MFR_PROD_NBR,
PROD.PRCH_FROM_VNDR_NBR,
PROD.SCND_PRCH_FROM_VNDR_NBR_1,
PROD.SCND_PRCH_FROM_VNDR_NBR_2,
PROD.SCND_PRCH_FROM_VNDR_NBR_3

from gold.xdmadm.prod_corp PROD

where prod.inact_dt is null
and PROD.SCND_PRCH_FROM_VNDR_NBR_1 > 0

group by PROD.div_nbr,
PROD.prod_nbr,
PROD.MFR_PROD_NBR,

PROD.PRCH_FROM_VNDR_NBR,
PROD.SCND_PRCH_FROM_VNDR_NBR_1,
PROD.SCND_PRCH_FROM_VNDR_NBR_2,
PROD.SCND_PRCH_FROM_VNDR_NBR_3;"""

connection = engine.connect()

# Create a Pandas dataframe from the data.
df = pd.DataFrame({'Data': [query]})
OutputDataSet = df

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Close the Pandas Excel writer and output the Excel file.
writer.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...