国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從多個數(shù)據(jù)源中提取數(shù)據(jù)進行ETL處理并導(dǎo)入數(shù)據(jù)倉庫

這篇具有很好參考價值的文章主要介紹了從多個數(shù)據(jù)源中提取數(shù)據(jù)進行ETL處理并導(dǎo)入數(shù)據(jù)倉庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  • ?? 個人網(wǎng)站:【海擁】【摸魚游戲】【神級源碼資源網(wǎng)】
  • ?? 前端學(xué)習(xí)課程:??【28個案例趣學(xué)前端】【400個JS面試題】
  • ?? 想尋找共同學(xué)習(xí)交流、摸魚劃水的小伙伴,請點擊【摸魚學(xué)習(xí)交流群】

ETL(Extract, Transform, Load)是一種廣泛應(yīng)用于數(shù)據(jù)處理和數(shù)據(jù)倉庫建設(shè)的方法論,它主要用于從各種不同的數(shù)據(jù)源中提取數(shù)據(jù),經(jīng)過一系列的處理和轉(zhuǎn)換,最終將數(shù)據(jù)導(dǎo)入到目標系統(tǒng)中。本文將介紹如何使用Python進行ETL數(shù)據(jù)處理的實戰(zhàn)案例,包括從多個數(shù)據(jù)源中提取數(shù)據(jù)、進行數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)加載的完整流程。

一、數(shù)據(jù)來源

在本次實戰(zhàn)案例中,我們將從三個不同的數(shù)據(jù)源中提取數(shù)據(jù)進行處理,包括:

  1. MySQL數(shù)據(jù)庫中的銷售數(shù)據(jù)表,其中包括訂單ID、產(chǎn)品名稱、銷售額、銷售日期等信息。
  2. MongoDB數(shù)據(jù)庫中的用戶行為數(shù)據(jù)集合,其中包括用戶ID、行為類型、行為時間等信息。
  3. Excel文件中的客戶數(shù)據(jù),其中包括客戶ID、客戶名稱、聯(lián)系方式等信息。

我們需要從這三個數(shù)據(jù)源中提取數(shù)據(jù),并將其導(dǎo)入到數(shù)據(jù)倉庫中進行進一步的分析和處理。

二、數(shù)據(jù)提取

數(shù)據(jù)提取是ETL過程的第一步,我們需要從源數(shù)據(jù)中獲取需要的數(shù)據(jù)。在本次實戰(zhàn)案例中,我們使用Python的pandas庫和pymongo庫來讀取MySQL數(shù)據(jù)庫、MongoDB數(shù)據(jù)庫和Excel文件中的數(shù)據(jù),并將其轉(zhuǎn)換為DataFrame對象,如下所示:

import pandas as pd
import pymongo
import pymysql
import xlrd

# 連接MySQL數(shù)據(jù)庫
conn_mysql = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='sales')
sql = 'SELECT * FROM sales_data'
df_mysql = pd.read_sql(sql, con=conn_mysql)

# 連接MongoDB數(shù)據(jù)庫
conn_mongo = pymongo.MongoClient('mongodb://localhost:27017/')
db_mongo = conn_mongo['user_behavior']
col_mongo = db_mongo['user_actions']
df_mongo = pd.DataFrame(list(col_mongo.find()))

# 讀取Excel文件中的數(shù)據(jù)
df_excel = pd.read_excel('customer_data.xlsx')

通過上述代碼,我們成功將MySQL數(shù)據(jù)庫中的銷售數(shù)據(jù)表、MongoDB數(shù)據(jù)庫中的用戶行為數(shù)據(jù)集合和Excel文件中的客戶數(shù)據(jù)讀取為DataFrame對象,并可以使用pandas提供的各種方法進行數(shù)據(jù)處理和轉(zhuǎn)換。

三、數(shù)據(jù)轉(zhuǎn)換

數(shù)據(jù)轉(zhuǎn)換是ETL過程的核心步驟,它將原始數(shù)據(jù)轉(zhuǎn)換為目標格式,以便于后續(xù)的處理和分析。在本次實戰(zhàn)案例中,我們需要對從三個數(shù)據(jù)源中提取的數(shù)據(jù)進行一些處理和轉(zhuǎn)換,包括:

  1. 將MySQL數(shù)據(jù)庫中的銷售日期轉(zhuǎn)換為日期類型,并提取出銷售額的前兩位作為銷售分類。
  2. 將MongoDB數(shù)據(jù)庫中的行為時間轉(zhuǎn)換為日期類型,并提取出日期、小時、分鐘等信息作為新的列。
  3. 對Excel文件中的客戶數(shù)據(jù)進行清洗和整理,去除重復(fù)項,并將客戶名稱轉(zhuǎn)換為大寫字母格式。

下面是針對這些數(shù)據(jù)轉(zhuǎn)換需求的代碼實現(xiàn):

# 將MySQL中的銷售日期轉(zhuǎn)換為日期類型,并提取銷售額的前兩位作為銷售分類
df_mysql['sales_date'] = pd.to_datetime(df_mysql['sales_date'], format='%Y-%m-%d')
df_mysql['sales_category'] = df_mysql['sales_amount'].apply(lambda x: str(x)[:2])

# 將MongoDB中的行為時間轉(zhuǎn)換為日期類型,并提取日期、小時、分鐘等信息作為新的列
df_mongo['action_time'] = pd.to_datetime(df_mongo['action_time'], unit='ms')
df_mongo['action_date'] = df_mongo['action_time'].dt.date
df_mongo['action_hour'] = df_mongo['action_time'].dt.hour
df_mongo['action_minute'] = df_mongo['action_time'].dt.minute

# 對Excel中的客戶數(shù)據(jù)進行清洗和整理,去除重復(fù)項,并將客戶名稱轉(zhuǎn)換為大寫字母格式
df_excel.drop_duplicates(subset=['customer_id'], inplace=True)
df_excel['customer_name'] = df_excel['customer_name'].str.upper()

通過上述代碼,我們成功將MySQL數(shù)據(jù)庫中的銷售數(shù)據(jù)、MongoDB數(shù)據(jù)庫中的用戶行為數(shù)據(jù)和Excel文件中的客戶數(shù)據(jù)轉(zhuǎn)換為了目標格式,并且可以繼續(xù)使用pandas提供的各種方法進行數(shù)據(jù)處理和分析。

四、數(shù)據(jù)加載

數(shù)據(jù)加載是ETL過程的最后一步,它將轉(zhuǎn)換后的數(shù)據(jù)導(dǎo)入到目標系統(tǒng)中進行存儲和分析。在本次實戰(zhàn)案例中,我們將轉(zhuǎn)換后的數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫中的數(shù)據(jù)倉庫中進行存儲和分析。下面是將轉(zhuǎn)換后的數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫中的代碼實現(xiàn):

import pymysql

# 連接MySQL數(shù)據(jù)庫
conn_mysql = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='data_warehouse')

# 將MySQL中的銷售數(shù)據(jù)插入到數(shù)據(jù)倉庫中的sales表中
df_mysql.to_sql(name='sales', con=conn_mysql, if_exists='append', index=False)

# 將MongoDB中的用戶行為數(shù)據(jù)插入到數(shù)據(jù)倉庫中的user_actions表中
df_mongo.to_sql(name='user_actions', con=conn_mysql, if_exists='append', index=False)

# 將Excel中的客戶數(shù)據(jù)插入到數(shù)據(jù)倉庫中的customers表中
df_excel.to_sql(name='customers', con=conn_mysql, if_exists='append', index=False)

通過上述代碼,我們使用pandas提供的to_sql()方法將轉(zhuǎn)換后的數(shù)據(jù)插入到MySQL數(shù)據(jù)庫的數(shù)據(jù)倉庫中。其中,參數(shù)if_exists='append’表示如果表已經(jīng)存在,則將新數(shù)據(jù)追加到已有數(shù)據(jù)的末尾,而不是覆蓋原有數(shù)據(jù)。

五、總結(jié)

本文介紹了如何使用Python進行ETL數(shù)據(jù)處理的實戰(zhàn)案例,包括從多個數(shù)據(jù)源中提取數(shù)據(jù)、對數(shù)據(jù)進行清洗和轉(zhuǎn)換,以及將轉(zhuǎn)換后的數(shù)據(jù)加載到目標系統(tǒng)中進行存儲和分析。在實際工作中,ETL是數(shù)據(jù)處理的重要環(huán)節(jié),它可以幫助我們從多個數(shù)據(jù)源中提取、清洗和整理數(shù)據(jù),以便進行更好的數(shù)據(jù)分析和業(yè)務(wù)決策。

在本次實戰(zhàn)案例中,我們使用了pandaspymongopymysql等Python庫,它們提供了豐富的數(shù)據(jù)處理和數(shù)據(jù)庫操作方法,幫助我們完成了數(shù)據(jù)ETL的整個過程。同時,我們還介紹了ETL的三個關(guān)鍵步驟:數(shù)據(jù)提取、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)加載,這些步驟對于實際的數(shù)據(jù)處理非常重要。

總之,ETL是數(shù)據(jù)處理過程中不可或缺的一環(huán),它能夠幫助我們從多個數(shù)據(jù)源中提取、清洗和整理數(shù)據(jù),使得數(shù)據(jù)分析和業(yè)務(wù)決策變得更加高效和準確。在實際工作中,我們可以結(jié)合具體業(yè)務(wù)需求和數(shù)據(jù)處理工具,使用Python等編程語言進行數(shù)據(jù)ETL處理,以滿足業(yè)務(wù)上的需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-421448.html

到了這里,關(guān)于從多個數(shù)據(jù)源中提取數(shù)據(jù)進行ETL處理并導(dǎo)入數(shù)據(jù)倉庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot+mybatis+pgsql多個數(shù)據(jù)源配置

    SpringBoot+mybatis+pgsql多個數(shù)據(jù)源配置

    jdk環(huán)境:1.8 配置了雙數(shù)據(jù)源springboot+druid+pgsql,application.properties配置修改如下: 主數(shù)據(jù)庫注入 從數(shù)據(jù)庫Java代碼: ? ? ?這里就就不一一貼代碼了,主要是接口對應(yīng)mybatis xml配置文件。項目文件接口如下: 創(chuàng)建成以上目錄就可以了,分別是dao接口、Java數(shù)據(jù)源配置、mybatis映射

    2024年02月11日
    瀏覽(27)
  • ElasticSearch多數(shù)據(jù)源配置,連接多個ES集群

    開發(fā)時遇到需要連接多個ES的需求,類似于連接多個MySQL數(shù)據(jù)庫一樣。 Elasticsearch Java API有四類client連接方式 TransportClient RestClient Jest Spring Data Elasticsearch ????????其中TransportClient和RestClient是Elasticsearch原生的api。TransportClient可以支持2.x,5.x版本,TransportClient將會在Elasticsea

    2023年04月14日
    瀏覽(17)
  • 數(shù)據(jù)分析法寶,一個 SQL 語句查詢多個異構(gòu)數(shù)據(jù)源

    數(shù)據(jù)分析法寶,一個 SQL 語句查詢多個異構(gòu)數(shù)據(jù)源

    隨著企業(yè)數(shù)據(jù)量呈現(xiàn)出爆炸式增長,跨部門、跨應(yīng)用、跨平臺的數(shù)據(jù)交互需求越來越頻繁,傳統(tǒng)的數(shù)據(jù)查詢方式已經(jīng)難以滿足這些需求。同時,不同數(shù)據(jù)庫系統(tǒng)之間的數(shù)據(jù)格式、查詢語言等都存在差異,直接進行跨庫查詢十分困難。 雖然 MySQL、Oracle、PostgreSQL 等數(shù)據(jù)庫系統(tǒng)都

    2024年02月05日
    瀏覽(21)
  • Doris1.1.1多種異構(gòu)數(shù)據(jù)源數(shù)據(jù)導(dǎo)入方案

    Doris1.1.1多種異構(gòu)數(shù)據(jù)源數(shù)據(jù)導(dǎo)入方案

    ????????Apache Doris 是一個基于 MPP 架構(gòu)的高性能、實時的分析型數(shù)據(jù)庫,以極速易用的特點被人們所熟知,僅需亞秒級響應(yīng)時間即可返回海量數(shù)據(jù)下的查詢結(jié)果,不僅可以支持高并發(fā)的點查詢場景,也能支持高吞吐的復(fù)雜分析場景?;诖?,Apache Doris 能夠較好的滿足報表

    2024年02月03日
    瀏覽(18)
  • grafana-zabbix基礎(chǔ)操作篇------導(dǎo)入數(shù)據(jù)源

    grafana-zabbix基礎(chǔ)操作篇------導(dǎo)入數(shù)據(jù)源

    今天,我們給大家講解一下grafana監(jiān)控zabbix的基本操作。 網(wǎng)址:https://grafana.com/grafana/download https://localhost:3000 賬號密碼都是admin 進去之后重置密碼 搜索zabbix插件時會發(fā)現(xiàn)沒有此插件,這時我們?nèi)rafana官網(wǎng)去找一找所需要的插件 grafana 插件官網(wǎng) https://grafana.com/grafana/plugins/ 返回

    2024年02月12日
    瀏覽(24)
  • SpringBoot第27講:SpringBoot集成MySQL - MyBatis 多個數(shù)據(jù)源

    SpringBoot第27講:SpringBoot集成MySQL - MyBatis 多個數(shù)據(jù)源

    本文是SpringBoot第27講,在某些場景下,Springboot需要使用多個數(shù)據(jù)源,以及某些場景會需要多個數(shù)據(jù)源的動態(tài)切換。本文主要介紹上述場景及 SpringBoot+MyBatis實現(xiàn)多個數(shù)據(jù)源的方案和示例 需要了解多數(shù)據(jù)源出現(xiàn)的場景和對應(yīng)的多數(shù)據(jù)源集成思路。 1.1、什么場景會出現(xiàn)多個數(shù)據(jù)源

    2024年02月09日
    瀏覽(22)
  • springboot-ES多數(shù)據(jù)源鏈接\Spring-Data-ES 連接多個ES集群

    springboot-ES多數(shù)據(jù)源鏈接Spring-Data-ES 連接多個ES集群 本文為文章轉(zhuǎn)載;原文地址已經(jīng)置于文章尾部 一、背景 二、創(chuàng)建原理 三、核心類 四、實際代碼 1、配置文件application.properties 2、集群1:配置類C1ElasticsearchProperties 3、集群1:創(chuàng)建ES連接的類C1ElasticsearchAutoConfiguration 4、集群

    2024年02月10日
    瀏覽(23)
  • 【FLINK】Kafka數(shù)據(jù)源通過Flink-cdc進行實時數(shù)據(jù)同步

    【FLINK】Kafka數(shù)據(jù)源通過Flink-cdc進行實時數(shù)據(jù)同步

    CDC是Change Data Capture的縮寫,中文意思是 變更數(shù)據(jù)獲取 ,flink-cdc的作用是,通過flink捕獲數(shù)據(jù)源的事務(wù)變動操作記錄,包括數(shù)據(jù)的增刪改操作等,根據(jù)這些記錄可作用于對目標端進行實時數(shù)據(jù)同步。 下圖是flink-cdc最新支持的數(shù)據(jù)源類型: kafka的數(shù)據(jù)源要通過flink-cdc進行實時數(shù)

    2024年02月12日
    瀏覽(36)
  • Spark大數(shù)據(jù)處理講課筆記4.2 Spark SQL數(shù)據(jù)源 - 基本操作

    Spark大數(shù)據(jù)處理講課筆記4.2 Spark SQL數(shù)據(jù)源 - 基本操作

    ? 目錄 零、本講學(xué)習(xí)目標 一、基本操作 二、默認數(shù)據(jù)源 (一)默認數(shù)據(jù)源Parquet (二)案例演示讀取Parquet文件 1、在Spark Shell中演示 2、通過Scala程序演示 三、手動指定數(shù)據(jù)源 (一)format()與option()方法概述 (二)案例演示讀取不同數(shù)據(jù)源 1、讀取房源csv文件 2、讀取json,保

    2024年02月09日
    瀏覽(26)
  • Spring Boot+Atomikos進行多數(shù)據(jù)源的分布式事務(wù)管理詳解和實例

    Spring Boot+Atomikos進行多數(shù)據(jù)源的分布式事務(wù)管理詳解和實例

    背景: 一直零散的使用著Spring Boot 的各種組件和特性,從未系統(tǒng)性的學(xué)習(xí)和總結(jié),本次借著這個機會搞一波。共同學(xué)習(xí),一起進步。哈哈 Atomikos是一個易用、可靠、開放源碼的事務(wù)管理器,它可以用于管理分布式事務(wù),尤其在微服務(wù)架構(gòu)中非常實用。它支持JTA(Java Transacti

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包