Snowflake 是一家基於雲端運算的數據庫公司,提供「data warehouse-as-a-service」的雲端數據存儲和分析服務。透過 Snowflake,用戶可以使用雲端硬體和軟體存儲及分析資料。本教學將介紹如何使用 Python 將不同平台上的資料上傳至 Snowflake。
將 Excel 資料匯入 Snowflake
步驟:
完整的 Python 程式碼:
import snowflake.connector
import pandas as pd
# 定義 Excel 檔案路徑
path = "C:\\Users\\newegg_excel.xlsx"
# 讀取 Excel 檔案中的資料
file = pd.ExcelFile(path)
df = pd.read_excel(file, sheet_name='Sheet1')
# 設定 Snowflake 連線
snowflake.connector.paramstyle = 'qmark'
ctx = snowflake.connector.connect(
user='snowflake_passcode',
password='snowflake_passcode',
account='snowflake_account'
)
cs = ctx.cursor()
# 刪除目標資料表中的內容
cs.execute("DELETE FROM schema.python_import;")
# 將資料插入到 Snowflake
for row in df.to_records(index=False):
cs.execute("INSERT INTO schema.python_import (model, item, price) VALUES (?, ?, ?)", (str(row[0]), str(row[1]), str(row[2])))
print("資料上傳成功")
將 MS SQL Server 資料匯入 Snowflake
所需套件: snowflake.connector
、pandas
、pypyodbc
步驟:
完整的 Python 程式碼:
import snowflake.connector
import pandas as pd
import pypyodbc
# SQL Server 查詢程式碼
script = """SELECT * from DB.dbo.newegg"""
# 設定 MS SQL Server 連線
connection = pypyodbc.connect("Driver={SQL Server Native Client 11.0}; server=Server_Name; database=DB; uid=MSSQL_UserID; pwd=MSSQL_Passcode")
cursor = connection.cursor()
# 讀取 SQL Server 資料
df_sql = pd.read_sql(script, connection)
# 設定 Snowflake 連線
snowflake.connector.paramstyle = 'qmark'
ctx = snowflake.connector.connect(
user='snowflake_passcode',
password='snowflake_passcode',
account='snowflake_account'
)
cs = ctx.cursor()
# 刪除目標資料表中的內容
cs.execute("DELETE FROM schema.python_import;")
# 將資料插入到 Snowflake
for row in df_sql.to_records(index=False):
cs.execute("INSERT INTO schema.python_import (model, item, price) VALUES (?, ?, ?)", (str(row[0]), str(row[1]), str(row[2])))
print("資料上傳成功")
將 Teradata 資料匯入 Snowflake
所需套件: snowflake.connector
、pandas
、teradata
步驟:
完整的 Python 程式碼:
import snowflake.connector
import pandas as pd
import teradata
# Teradata 查詢腳本
script = """SELECT * from Datalab.newegg"""
# 設定 Teradata 連線
udaExec = teradata.UdaExec(appName='${appName}', version='${version}', logConsole='${logConsole}')
with udaExec.connect('${dataSourceName}') as session:
df_td = pd.read_sql(script, session)
# 設定 Snowflake 連線
snowflake.connector.paramstyle = 'qmark'
ctx = snowflake.connector.connect(
user='snowflake_passcode',
password='snowflake_passcode',
account='snowflake_account'
)
cs = ctx.cursor()
# 刪除目標資料表中的內容
cs.execute("DELETE FROM schema.python_import;")
# 將資料插入到 Snowflake
for row in df_td.to_records(index=False):
cs.execute("INSERT INTO schema.python_import (model, item, price) VALUES (?, ?, ?)", (str(row[0]), str(row[1]), str(row[2])))
print("資料上傳成功")
這些範例展示了如何使用 Python 將資料從不同平台(如 MS Excel、MS SQL Server 和 Teradata)匯入到 Snowflake。每個步驟的核心流程包括定義資料路徑或查詢腳本、設定來源資料庫和 Snowflake 的連線,並將資料插入到 Snowflake 中的目標資料表。
謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的Threads,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!