2024-09-12|閱讀時間 ‧ 約 22 分鐘

Python 解鎖 - 資料匯入 Snowflake

Snowflake 是一家基於雲端運算的數據庫公司,提供「data warehouse-as-a-service」的雲端數據存儲和分析服務。透過 Snowflake,用戶可以使用雲端硬體和軟體存儲及分析資料。本教學將介紹如何使用 Python 將不同平台上的資料上傳至 Snowflake。

將 Excel 資料匯入 Snowflake

步驟:

  1. 定義 Excel 檔案的路徑。
  2. 讀取指定路徑的資料。
  3. 設定 Snowflake 的連線。
  4. 刪除 Snowflake 目標資料表的內容。
  5. 將資料插入到 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.connectorpandaspypyodbc

步驟:

  1. 定義從 SQL Server 提取資料的腳本。
  2. 設定 MS SQL Server 的連線。
  3. 設定 Snowflake 的連線。
  4. 刪除 Snowflake 目標資料表的內容。
  5. 將資料插入到 Snowflake 的目標資料表中。

完整的 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.connectorpandasteradata

步驟:

  1. 定義從 Teradata 提取資料的腳本。
  2. 設定 Teradata 的連線。
  3. 設定 Snowflake 的連線。
  4. 刪除 Snowflake 目標資料表的內容。
  5. 將資料插入到 Snowflake 的目標資料表中。

完整的 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,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.