Python 解鎖 - 資料匯入 Snowflake

更新於 2024/09/12閱讀時間約 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
31會員
59內容數
我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
DigNo Ape 數遊原人 的其他內容
在MS SQL Server 環境下,如何將sales_unpivot (表1)轉成 sales_pivot (表2)? 再將表2轉回表1?
請在表1查找每個月份和國家的交易數量及其總金額、已批准交易的數量及其總金額(如表2),結果可以以任何順序返回。 請使用下列三種語法查找: 1. MS SQL Server 查詢 2. MySQL 查詢 3. Pandas 查詢
zip()是 Python 的一個內建函數,用於將多個可迭代物件中的元素配對成元素組,本篇我們會來討論zip() 的主要用法。
Notion 是一款強大的生產力工具,幫助我們紀錄、組織和管理訊息,並把這些訊息存取至資料庫(Notion 解鎖 - Threads 串文資料庫)。 當我們需要對這些數據進行進一步的分析時,有沒有什麼程式工具是我們可以使用,進一步釋放Notion的潛力呢? 在本篇文章中,我將介紹我如何在Not
購物籃分析(Basket Analysis)是一種常見的資料探勘技術,可以幫助企業了解哪些產品經常被消費者一起購買,從而優化產品組合和促銷策略。 表1是將公司每筆訂單內容轉換為訂單號-SKU的組合,請使用SQL來進行購物籃分析,找出最常被一起下訂的產品組合。
下表中包含了20筆訂單的營業額數據。現在需要篩選出營業額大於 $1,000,000 的訂單,並根據金額從高到低進行排序。請使用下列軟體工具分別找出答案
在MS SQL Server 環境下,如何將sales_unpivot (表1)轉成 sales_pivot (表2)? 再將表2轉回表1?
請在表1查找每個月份和國家的交易數量及其總金額、已批准交易的數量及其總金額(如表2),結果可以以任何順序返回。 請使用下列三種語法查找: 1. MS SQL Server 查詢 2. MySQL 查詢 3. Pandas 查詢
zip()是 Python 的一個內建函數,用於將多個可迭代物件中的元素配對成元素組,本篇我們會來討論zip() 的主要用法。
Notion 是一款強大的生產力工具,幫助我們紀錄、組織和管理訊息,並把這些訊息存取至資料庫(Notion 解鎖 - Threads 串文資料庫)。 當我們需要對這些數據進行進一步的分析時,有沒有什麼程式工具是我們可以使用,進一步釋放Notion的潛力呢? 在本篇文章中,我將介紹我如何在Not
購物籃分析(Basket Analysis)是一種常見的資料探勘技術,可以幫助企業了解哪些產品經常被消費者一起購買,從而優化產品組合和促銷策略。 表1是將公司每筆訂單內容轉換為訂單號-SKU的組合,請使用SQL來進行購物籃分析,找出最常被一起下訂的產品組合。
下表中包含了20筆訂單的營業額數據。現在需要篩選出營業額大於 $1,000,000 的訂單,並根據金額從高到低進行排序。請使用下列軟體工具分別找出答案
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
你是否曾使用Python進行網上爬蟲、撈取資料、分析,並將結果存進雲端資料庫? 你知道這一切可以全部發生在Google Drive裡嗎?而且,全部都是免費的!
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
AWS DataSync 是一種線上資料移動和探索服務,可簡化並加速向 AWS 的資料遷移,以及在內部部署儲存、邊緣節點、其他雲端和 AWS 儲存服務移入和移出資料[1]。 在某些架構上會,使用該服務會需要安裝 DataSync Agent 來傳輸檔案 您需要 DataSync Agen
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
你是否曾使用Python進行網上爬蟲、撈取資料、分析,並將結果存進雲端資料庫? 你知道這一切可以全部發生在Google Drive裡嗎?而且,全部都是免費的!
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
AWS DataSync 是一種線上資料移動和探索服務,可簡化並加速向 AWS 的資料遷移,以及在內部部署儲存、邊緣節點、其他雲端和 AWS 儲存服務移入和移出資料[1]。 在某些架構上會,使用該服務會需要安裝 DataSync Agent 來傳輸檔案 您需要 DataSync Agen
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為