Python 解鎖 - 資料匯入 Snowflake

更新 發佈閱讀 1 分鐘

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

留言
avatar-img
DigNo Ape 數遊原人
60會員
138內容數
我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。
DigNo Ape 數遊原人的其他內容
2025/01/15
根據 h1bdata info 整理的資料顯示,雇主於2024 提交H1B簽證所包含的薪資訊息,以關鍵字Data Analyst 的1700多條紀錄為例: - 薪資中位數是$85000. - 約有2%介於$150K到$200K - 21% 介於$100K到$150K - 以中位數來看近三年數
2025/01/15
根據 h1bdata info 整理的資料顯示,雇主於2024 提交H1B簽證所包含的薪資訊息,以關鍵字Data Analyst 的1700多條紀錄為例: - 薪資中位數是$85000. - 約有2%介於$150K到$200K - 21% 介於$100K到$150K - 以中位數來看近三年數
2024/12/03
- 圖片去背 - 圖片Mirror
Thumbnail
2024/12/03
- 圖片去背 - 圖片Mirror
Thumbnail
2024/11/27
使用Python 於valuesider網站爬取巴菲特(波克夏 海瑟威)13F報告,並製作成動態barchart,數據更新至FY24Q3。
Thumbnail
2024/11/27
使用Python 於valuesider網站爬取巴菲特(波克夏 海瑟威)13F報告,並製作成動態barchart,數據更新至FY24Q3。
Thumbnail
看更多
你可能也想看
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
牽涉到的工具:wsl2 + anaconda + jupyter-nootbook
Thumbnail
牽涉到的工具:wsl2 + anaconda + jupyter-nootbook
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
教大家如何使用 google colab 讀取雲端硬碟中的資料
Thumbnail
教大家如何使用 google colab 讀取雲端硬碟中的資料
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News