python量化交易——金融數據管理最佳實踐——使用qteasy大批量自動拉取金融數據

文章目錄

  • 使用數據獲取渠道自動填充數據
    • QTEASY數據拉取功能
    • 數據拉取接口`refill_data_source()`
    • 數據拉取API的功能特性
      • 多渠道拉取數據
      • 實現下載流量控制
      • 實現錯誤重試
      • 日志記錄
      • 其他功能

qteasy是一個功能全面且易用的量化交易策略框架, Github地址在這里。使用它,能輕松地獲取歷史數據,創建交易策略并完成回測和優化,還能實盤運行。 項目文檔在這里。

使用qteasy,您可以非常容易地在本地(本地電腦或者NAS服務器上)創建一個金融數據源,并自動從網上拉取大量金融數據保存在其中,以管理您的金融數據。這是一篇系列文章,前幾篇文章的鏈接在這里:

  • 創建本地數據源
  • 管理本地數據源

這篇文章介紹如何自動從網絡拉取金融數據。

使用數據獲取渠道自動填充數據

前面介紹過DataSource對象的基本操作方法,但是在實際使用中,我們需要往DataSource對象中填充大量數據,如果使用前面章節介紹的DataSource.update_table_data()方法手動填充數據,這樣的工作量是非常大的。

這里我們介紹如何使用數據獲取渠道自動填充數據。

QTEASY數據拉取功能

QTEASY數據管理模塊:

在這里插入圖片描述

如上圖所示,qteasy的數據功能分為三層,第一層包括多種數據下載接口,用于從網絡數據提供商獲取數據,這個過程稱為DataFetching

數據拉取接口refill_data_source()

qteasy提供了一個自動化數據下載接口qteasy.refill_data_source(),可以從多個不同的網絡數據提供商拉取多種金融數據,滿足不同用戶的使用習慣。qteasy提供的數據拉取API具備強大的多線程并行下載、數據分塊下載、下載流量控制和錯誤延時重試功能,以適應不同數據供應商各種變態的流量限制,同時數據拉取API可以方便地定期自動運行完成數據批量下載任務,不用擔心錯過高頻數據。

下面先用一個例子解釋如何使用qteasy.refill_data_source()接口自動填充數據。我們先創建一個不含數據的DataSource對象,并向其中填充最基本的數據。

>>> import qteasy as qt
>>> ds = qt.DataSource()
# 檢查數據源中是否有數據
>>> ds.overview()
Analyzing local data source tables... depending on size of tables, it may take a few minutes
[########################################]104/104-100.0%  A...zing completed!
Finished analyzing datasource: 
file://csv@qt_root/data/
3 table(s) out of 104 contain local data as summary below, to view complete list, print returned DataFrame
===============================tables with local data===============================Has_data Size_on_disk Record_count Record_start Record_end
table                                                                    
trade_calendar   True       1.8MB         70K          CFFEX        SZSE 
stock_basic      True       852KB          5K           None        None 
stock_daily      True      98.8MB        1.3M       20211112    20241231 

我們可以看到,DataSource對象中已經有了一些數據表,為了進行下面的測試,我們將首先刪除trade_calendar以及stock_daily兩張數據表中的數據,然后再使用數據拉取接口自動填充它們。

首先刪除兩張數據表,為了刪除數據表,首先將數據源的allow_drop_table屬性設置為True,然后再刪除數據表。

>>> ds.allow_drop_table = True
>>> ds.drop_table_data('trade_calendar')
>>> ds.drop_table_data('stock_daily')
>>> ds.allow_drop_table = False
>>> overview = ds.overview()
Analyzing local data source tables... depending on size of tables, it may take a few minutes
[########################################]104/104-100.0%  A...zing completed!
Finished analyzing datasource: 
file://csv@qt_root/data/
1 table(s) out of 104 contain local data as summary below, to view complete list, print returned DataFrame
===============================tables with local data===============================Has_data Size_on_disk Record_count Record_start Record_end
table                                                                 
stock_basic   True       852KB         5K          None        None   

可以看到,trade_calendarstock_daily兩張數據表中的數據已經被刪除。

接下來,我們使用qteasy.refill_data_source()接口自動填充數據,代碼很簡單,只有一行,剩下的工作qteasy會自動完成。

>>> qt.refill_data_source(tables='stock_daily',  # 指定要填充的數據表:股票日K線數據channel='tushare',  # 指定數據下載渠道data_source=ds,  # 指定需要填充的數據源對象start_date='20210101',  # 指定數據下載的起始日期end_date='20211231',  # 指定數據下載的結束日期
)Filling data source file://csv@qt_root/data/ ...
into 2 table(s) (parallely): {'stock_daily', 'trade_calendar'}
[########################################]243/243-100.0%  <stock_daily> 2398764 wrtn in about 16 sec                 
[########################################]7/7-100.0%  <trade_calendar> 70054 wrtn in about 1 sec                     Data refill completed! 2468818 rows written into 2/2 table(s)!

拉取并填充數據后,可以檢查數據已經下載成功了:

>>> ds.read_table_data('stock_daily', shares='000001.SZ, 000002.SZ', start='20211111', end='20211131')open   high    low  close  pre_close  change  pct_chg  \
ts_code   trade_date                                                           
000001.SZ 2021-11-11  17.35  18.43  17.32  18.35      17.40    0.95   5.4598   2021-11-12  18.31  18.63  18.11  18.27      18.35   -0.08  -0.4360   2021-11-15  18.35  18.63  18.20  18.43      18.27    0.16   0.8758   2021-11-16  18.36  18.54  18.17  18.22      18.43   -0.21  -1.1394   2021-11-17  18.15  18.30  17.98  18.11      18.22   -0.11  -0.6037   2021-11-18  18.09  18.12  17.73  17.80      18.11   -0.31  -1.7118   2021-11-19  17.80  18.24  17.70  18.15      17.80    0.35   1.9663   2021-11-22  18.03  18.25  17.90  18.12      18.15   -0.03  -0.1653   2021-11-23  18.11  18.35  17.68  17.88      18.12   -0.24  -1.3245   2021-11-24  17.77  17.95  17.66  17.87      17.88   -0.01  -0.0559   2021-11-25  17.74  17.79  17.63  17.68      17.87   -0.19  -1.0632   2021-11-26  17.62  17.67  17.52  17.58      17.68   -0.10  -0.5656   2021-11-29  17.41  17.57  17.36  17.51      17.58   -0.07  -0.3982   2021-11-30  17.54  17.68  17.35  17.44      17.51   -0.07  -0.3998   
000002.SZ 2021-11-11  18.95  20.84  18.89  20.79      18.98    1.81   9.5364   2021-11-12  20.50  20.50  19.41  19.76      20.79   -1.03  -4.9543   2021-11-15  19.56  19.59  19.12  19.40      19.76   -0.36  -1.8219   2021-11-16  19.29  19.57  19.21  19.24      19.40   -0.16  -0.8247   2021-11-17  19.23  19.53  19.09  19.46      19.24    0.22   1.1435   2021-11-18  19.35  19.40  18.98  19.09      19.46   -0.37  -1.9013   2021-11-19  19.01  20.28  18.92  19.90      19.09    0.81   4.2431   2021-11-22  19.90  19.95  19.19  19.22      19.90   -0.68  -3.4171   2021-11-23  19.19  19.44  19.10  19.24      19.22    0.02   0.1041   2021-11-24  19.12  19.38  19.00  19.30      19.24    0.06   0.3119   2021-11-25  19.22  19.35  19.07  19.22      19.30   -0.08  -0.4145   2021-11-26  19.15  19.15  18.95  18.99      19.22   -0.23  -1.1967   2021-11-29  18.75  18.87  18.35  18.46      18.99   -0.53  -2.7909   2021-11-30  18.44  18.66  18.16  18.26      18.46   -0.20  -1.0834   vol       amount  
ts_code   trade_date                           
000001.SZ 2021-11-11  2084729.00  3752413.858  2021-11-12   957546.46  1753072.716  2021-11-15   655089.99  1203764.095  2021-11-16   601110.48  1099113.409  2021-11-17   664640.38  1203859.180  2021-11-18   799843.77  1430058.311  2021-11-19   786371.56  1414506.380  2021-11-22   738617.80  1337768.172  2021-11-23  1235977.96  2213817.590  2021-11-24   741310.84  1316774.397  2021-11-25   603532.70  1068221.304  2021-11-26   694499.88  1219937.312  2021-11-29   512594.71   895105.981  2021-11-30   733616.06  1280384.552  
000002.SZ 2021-11-11  3151015.76  6352746.112  2021-11-12  2065924.12  4100076.111  2021-11-15   959331.52  1852352.374  2021-11-16   593989.40  1149085.955  2021-11-17   623749.71  1205064.294  2021-11-18   609995.75  1168010.581  2021-11-19  1308293.09  2570652.947  2021-11-22   877584.30  1697701.639  2021-11-23   563435.65  1083646.252  2021-11-24   827366.98  1587246.249  2021-11-25   518123.06   995473.890  2021-11-26   504023.33   959331.064  2021-11-29   718595.81  1334479.867  2021-11-30   713092.22  1305310.857

數據拉取API的功能特性

分析數據拉取的過程,我們可以看到,qteasy自動完成了下面的工作:

  • 自動查找依賴表 —— 雖然我們只指定了stock_daily數據表,但是qteasy自動檢測到trade_calendar數據表也是空的,且stock_daily表依賴交易日歷表,所以也自動填充了trade_calendar數據表。
  • 下載進度可視化 —— qteasy提供了下載進度可視化,可以看到每個數據分塊的下載進度,以及總體下載進度,過程中可以顯示剩余時間,方便用戶查看數據下載的情況。
  • 大數據量自動分塊 —— 上面的代碼下載了2021年全年所有股票的日K線數據,這些數據量共有239萬行,不管從任何數據渠道,這么大量的數據都不可能一次性下載下來,因此,qteasy自動將數據分塊,每一塊只有一天的數據,可以看到整年的數據被分成了243塊,數據分塊下載顯著降低了每次網絡申請的數據量,提高成功率且降低了被阻斷的風險。
  • 多線程并行下載 —— 實行數據分塊下載后,qteasy自動使用多線程并行下載,加快數據下載速度,243個數據分塊并行下載總共耗時僅16秒。

有了上面這些特性,qteasy的數據拉取功能可以滿足幾乎所有用戶的數據獲取需求,不管是下載大量數據,還是下載高頻數據,qteasy都能提供高效的數據下載服務。

當然,除了上面提到的這些特性之外,qteasy還提供了更多的功能特性,以針對下載過程中出現的各種狀況,這些功能特性我們在后面會逐步介紹:

  • 多渠道下載 —— qteasy提供了多種數據下載渠道,很多數據表可以從多個不同的渠道下載,而且隨著版本更新,數據拉取渠道也在不斷增加。
  • 流量控制 —— 有些數據渠道對數據下載有流量限制,qteasy提供了流量控制功能,可以限制數據下載的速度,即下載一定分塊數量的數據后,可以暫停一段時間,例如每下載300個分塊的數據,就暫停一分鐘,避免被數據渠道封禁。
  • 錯誤重試 —— 有些數據渠道下載數據時,可能會出現網絡錯誤,qteasy提供了錯誤重試功能,可以在下載失敗后,自動重試下載,如果重試不成功,會延長重試等待時間再試,直到下載成功或超過重試次數并報錯。
  • 日志記錄 —— qteasy提供了數據下載日志記錄功能,可以記錄每次數據下載的詳細信息,包括下載的數據量、下載的時間、下載的速度等,方便用戶查看數據下載的情況。

多渠道拉取數據

qteasy提供了多種數據下載渠道,很多數據表可以從多個不同的渠道下載,而且隨著版本更新,數據拉取渠道也在不斷增加。

refill_data_source()接口的channel參數可以指定數據下載渠道,如果不指定,qteasy會自動選擇一個默認的數據下載渠道tushare,但是用戶也可以手動指定數據下載渠道,例如 :

下面的代碼嘗試從eastmoney數據渠道下載stock_daily數據表從2025年最初兩個月的日K線數據:

>>> qt.refill_data_source(tables='stock_daily', channel='eastmoney',   # 指定數據下載渠道為東方財經data_source=ds, start_date='20250101', end_date='20250301',
)Filling data source file://csv@qt_root/data/ ...
into 2 table(s) (parallely): {'stock_daily', 'stock_basic'}
[########################################]11078/11078-100.0%  <stock_daily> 131264304 wrtn in about 17 min           
[----------------------------------------]0/1-0.0%  <stock_basic> can't be fetched from channel:eastmoney!Data refill completed! 131264304 rows written into 1/2 table(s)!

驗證一下數據是否下載成功:

>>> ds.read_table_data('stock_daily', shares='000001.SZ, 000002.SZ', start='20250101', end='20250103')open   high    low  close  pre_close  change  pct_chg  \
ts_code   trade_date                                                           
000001.SZ 2025-01-13  11.25  11.26  11.08  11.20      11.30   -0.10  -0.8850   2025-01-14  11.20  11.40  11.19  11.38      11.20    0.18   1.6071   2025-01-15  11.38  11.58  11.36  11.48      11.38    0.10   0.8787   2025-01-16  11.55  11.59  11.47  11.57      11.48    0.09   0.7840   2025-01-17  11.53  11.55  11.42  11.45      11.57   -0.12  -1.0372   2025-01-20  11.50  11.52  11.40  11.42      11.45   -0.03  -0.2620   2025-01-21  11.45  11.45  11.32  11.33      11.42   -0.09  -0.7881   2025-01-22  11.32  11.33  11.08  11.09      11.33   -0.24  -2.1183   2025-01-23  11.17  11.40  11.17  11.32      11.09    0.23   2.0739   2025-01-24  11.32  11.39  11.22  11.34      11.32    0.02   0.1767   2025-01-27  11.38  11.55  11.38  11.47      11.34    0.13   1.1464   
000002.SZ 2025-01-13   6.60   6.77   6.55   6.76       6.69    0.07   1.0463   2025-01-14   6.76   6.93   6.75   6.91       6.76    0.15   2.2189   2025-01-15   6.88   6.96   6.79   6.86       6.91   -0.05  -0.7236   2025-01-16   6.90   7.07   6.84   6.88       6.86    0.02   0.2915   2025-01-17   6.58   6.65   6.45   6.63       6.88   -0.25  -3.6337   2025-01-20   6.60   6.94   6.48   6.85       6.63    0.22   3.3183   2025-01-21   6.84   7.54   6.82   7.36       6.85    0.51   7.4453   2025-01-22   7.27   7.36   6.98   7.02       7.36   -0.34  -4.6196   2025-01-23   7.15   7.70   7.08   7.36       7.02    0.34   4.8433   2025-01-24   7.33   7.54   7.21   7.39       7.36    0.03   0.4076   2025-01-27   7.38   7.56   7.22   7.27       7.39   -0.12  -1.6238   vol       amount  
ts_code   trade_date                          
000001.SZ 2025-01-13   934966.0  1044904.416  2025-01-14   824629.0   934467.766  2025-01-15  1031631.0  1185403.653  2025-01-16   872964.0  1007689.274  2025-01-17   689765.0   791230.419  2025-01-20   832029.0   953092.179  2025-01-21   902069.0  1024879.174  2025-01-22  1347129.0  1504818.607  2025-01-23  1514920.0  1715172.472  2025-01-24   944944.0  1069899.088  2025-01-27  1151935.0  1324270.607  
000002.SZ 2025-01-13   911147.0   611005.036  2025-01-14  1116454.0   765177.082  2025-01-15   887294.0   608363.557  2025-01-16  1110545.0   771648.218  2025-01-17  3620283.0  2369977.993  2025-01-20  2988167.0  2009728.944  2025-01-21  5849397.0  4290640.172  2025-01-22  3448728.0  2457396.391  2025-01-23  4416581.0  3245710.622  2025-01-24  2555024.0  1885566.128  2025-01-27  2151753.0  1580357.769  

數據下載顯然也是成功的。分析上面的下載過程,可以發現幾個特點:

  • 不同渠道下載的數據格式是相同的,這是qteasy的設計原則,不同的數據下載渠道下載的數據會經歷相同的清洗過程,這樣用戶可以方便地切換不同的數據下載渠道,而不用擔心數據格式不同導致的數據處理問題。
  • 不同的渠道下載分塊方式不同,導致下載速度不同,eastmoney數據渠道下載速度較慢,需要約17分鐘才能下載完成。這是由于不同下載渠道的特殊限制決定的。
  • 不同渠道的下載可以下載的數據表也不同,有些數據表無法通過某些渠道下載,可能是因為權限限制或者其他因素導致的,如果某個數據表無法下載,qteasy會自動跳過這個數據表,不會影響其他數據表的下載。

因此,用戶需要根據自身的情況選擇不同的渠道拉取數據。

實現下載流量控制

qteasyrefill_data_source提供了流量控制功能,可以限制數據下載的速度,即下載一定分塊數量的數據后,可以暫停一段時間,例如每下載300個分塊的數據,就暫停一分鐘,避免被數據渠道封禁。

這個功能通過refill_data_source()接口的download_batch_sizedownload_batch_interval兩個參數實現:

  • download_batch_size參數指定每次下載的數據分塊數量,如果設置為300,則在下載300個數據分塊后,會暫停一段時間。
  • download_batch_interval參數指定每次下載數據分塊后的暫停時間,默認為0,即不暫停。

下面的代碼演示了如何使用download_batch_sizedownload_batch_interval參數實現下載流量控制:

>>> qt.refill_data_source(tables='stock_daily',channel='tushare',data_source=ds, start_date='20250101', end_date='20250301', download_batch_size=300,  # 每次下載300個數據分塊download_batch_interval=60,  # 每次下載300個數據分塊后暫停60秒
)

如果是用流量控制,當然下載時間會變長,但是對于某些數據渠道,這是必須的,否則可能會被封禁或報錯導致下載失敗。

實現錯誤重試

需要注意的是,數據下載過程中出錯,qteasy會自動重試下載,重試機制如下:

  • 第一次下載失敗后重試之前會等待一段時間,默認等待時間為1.0秒
  • 每次重試失敗后,等待時間都會增加,默認等待時間增加為2倍,即第一次等待1.0秒,第二次等待2.0秒,第三次等待4.0秒,以此類推。
  • 重試超過最大限額后停止重試并報錯,默認情況下最多重復7次。

以上三個錯誤重試參數都是通過qteasy的配置文件在設定的,用戶可以通過qt.config()接口查看或修改這些參數,也可以在qteasy的初始配置文件中修改這些參數。

  • hist_dnld_retry_cnt - 最大重試次數,默認為7次
  • hist_dnld_retry_wait - 第一次重試等待時間,默認為1.0秒
  • hist_dnld_backoff - 重試等待時間增加倍數,默認為2.0

關于如何修改配置文件,或者使用qteasy的初始配置文件,請參考qteasy的配置文件章節。

日志記錄

qteasy提供了數據下載日志記錄功能,可以記錄每次數據下載的詳細信息,包括下載的數據量、下載的時間、下載的速度等,方便用戶查看數據下載的情況。

其他功能

qteasyrefill_data_source()接口還提供了其他一些功能,例如:

  • 限制下載數據的范圍,可以通過start_dateend_date參數限制下載數據的時間范圍,通過shares參數限制下載數據的股票范圍。
  • 設置是否并行下載,可以通過parallel參數設置是否并行下載,如果設置為False,則會串行下載,否則會并行下載。
  • 設置是否下載依賴表,可以通過download_dependent參數設置是否下載依賴表,如果設置為False,則不會下載依賴表,否則會下載依賴表。
  • 設置是否強制更新交易日歷表。

其他更多關于該接口的解釋,請參見qteasy的API文檔。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71437.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71437.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71437.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

后端架構模式之-BFF(Backend-For-Frontend)

Backend-for-Frontend&#xff08;BFF&#xff09; 的概念與意義 1. 什么是 Backend-for-Frontend&#xff08;BFF&#xff09;&#xff1f; Backend-for-Frontend&#xff08;簡稱 BFF&#xff09;是一種后端架構模式&#xff0c;它為特定的前端應用&#xff08;Web、移動端…

upload-labs靶場 1-21通關

目錄 1.Pass-01 前端繞過 分析 解題 2.Pass-02 服務器端檢測--修改IMME 分析 解題 3.Pass-03 黑名單繞過 分析 解題 4.Pass-04 .htaccess繞過 分析 解題 5.Pass-05 . .繞過和.user.ini繞過 分析 解題 6.Pass-06 大小寫繞過 分析 解題 7.Pass-07 空格繞過 分…

信貸風控系統架構設計

設計一個信貸風控系統需要綜合考慮業務需求、技術架構、數據治理、合規安全等多個維度。以下是從頂級Java架構師視角的系統設計方案&#xff0c;分模塊詳細說明&#xff1a; 一、系統架構設計原則 高可用性&#xff1a;7x24小時服務&#xff0c;多機房容災。低延遲&#xff1a…

Ubuntu20.04 在離線機器上安裝 NVIDIA Container Toolkit

步驟 1.下載4個安裝包 Index of /nvidia-docker/libnvidia-container/stable/ nvidia-container-toolkit-base_1.13.5-1_amd64.deb libnvidia-container1_1.13.5-1_amd64.deb libnvidia-container-tools_1.13.5-1_amd64.deb nvidia-container-toolkit_1.13.5-1_amd64.deb 步…

【工具】COME對比映射學習用于scRNA-seq數據的空間重構

介紹 單細胞RNA測序&#xff08;scRNA-seq&#xff09;能夠在單細胞分辨率下實現高通量轉錄組分析。固有的空間位置對于理解單細胞如何協調多細胞功能和驅動疾病至關重要。然而&#xff0c;在組織分離過程中&#xff0c;空間信息常常丟失。空間轉錄組學&#xff08;ST&#xf…

Idea配置注釋模板

一、配置類注釋模板 打開IDEA&#xff0c;打開settings(快捷鍵&#xff1a;Ctrl Alt s)&#xff0c;選擇Editor&#xff0c;找到File and Code Templates 這里以設置class文件為例&#xff0c;點擊Class&#xff0c;在右側配置以下內容 #if (${PACKAGE_NAME} && $…

pytorch高可用的設計策略和集成放大各自功能

在使用 PyTorch 編寫模型時,為確保模型具備高可用性,可從模型設計、代碼質量、訓練過程、部署等多個方面采取相應的方法,以下為你詳細介紹: 模型設計層面 模塊化設計 實現方式:將模型拆分成多個小的、獨立的模塊,每個模塊負責特定的功能。例如,在一個圖像分類模型中,可…

從開源大模型工具Ollama存在安全隱患思考企業級大模型應用如何嚴守安全紅線

近日&#xff0c;國家網絡安全通報中心通報大模型工具Ollama默認配置存在未授權訪問與模型竊取等安全隱患&#xff0c;引發了廣泛關注。Ollama作為一款開源的大模型管理工具&#xff0c;在為用戶提供便捷的同時&#xff0c;卻因缺乏有效的安全管控機制&#xff0c;存在數據泄露…

初識Qt · 信號與槽 · 基礎知識

目錄 前言&#xff1a; 信號和槽初識 兩個問題 前言&#xff1a; 本文我們正式開始介紹信號與槽這個概念&#xff0c;在談及Qt中的信號與槽這個概念之前&#xff0c;我們不妨回顧一下Linux中的信號&#xff0c;比如發生了除0錯誤&#xff0c;OS就會給該進程發送一個信號&am…

Kotlin 5種單例模式

在Kotlin中實現單例模式有多種方法&#xff0c;以下是幾種常見的方法&#xff1a; 餓漢式 餓漢式是最簡單的一種實現方式&#xff0c;在類加載時就完成了實例的初始化。 //餓漢式 object Singleton1 {fun printMessage() {println("餓漢式")} }懶漢式 懶漢式是延遲…

探秘基帶算法:從原理到5G時代的通信變革【一】引言

文章目錄 一、引言1.1 研究背景與意義1.2 研究目的與方法1.3 研究內容與創新點 本博客為系列博客&#xff0c;主要講解各基帶算法的原理與應用&#xff0c;包括&#xff1a;viterbi解碼、Turbo編解碼、Polar編解碼、CORDIC算法、CRC校驗、FFT/DFT、QAMtiaozhi/解調、QPSK調制/解…

C/C++輸入輸出(1)

1.getchar和putchar 1.1getchar() 函數原型&#xff1a; 1 int getchar(void); getchar()函數返回用戶從鍵盤輸入的字符&#xff0c;使用時不帶有任何參數。 程序運行到這個命令就會暫停&#xff0c;等待用戶從鍵盤輸入&#xff0c;等同于使用cin或scanf()方法讀取一個字符…

【消息隊列】數據庫的數據管理

1. 數據庫的選擇 對于當前實現消息隊列這樣的一個中間件來說&#xff0c;具體要使用哪個數據庫&#xff0c;是需要稍作考慮的&#xff0c;如果直接使用 MySQL 數據庫也是能實現正常的功能&#xff0c;但是 MySQL 也是一個客戶端服務器程序&#xff0c;也就意味著如果想在其他服…

飛機大戰lua迷你世界腳本

-- 迷你世界飛機大戰 v1.2 -- 星空露珠工作室制作 -- 最后更新&#xff1a;2024年1月 ----------------------------- -- 迷你世界API適配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…

圖解MOE大模型的7個核心問題并探討DeepSeekMoE的專家機制創新

原文地址:https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts #mermaid-svg-FU7YUSIfuXO6EVHa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FU7YUSIfuXO6EVHa .error-icon{fill…

【智能機器人開發全流程:硬件選型、軟件架構與ROS實戰,打造高效機器人系統】

文章目錄 1. 硬件層設計(1) 傳感器選型(2) 計算平臺 2. 軟件架構設計(1) 核心模塊劃分(2) 通信框架 3. 關鍵實現步驟(1) 硬件-軟件接口開發(2) SLAM與導航實現(3) 仿真與測試 4. 典型框架示例基于ROS的移動機器人分層架構 5. 優化與擴展6. 開源項目參考 1. 硬件層設計 (1) 傳感…

React Native v0.78 更新

這個版本在 React Native 中引入了 React 19&#xff0c;并帶來了一些重要的新功能&#xff0c;例如 Android 矢量圖&#xff08;Vector Drawables&#xff09;的原生支持 以及 iOS 更好的 Brownfield 集成。 亮點 React 19 集成更小更快的發布節奏可選擇在 Metro 中啟用 Jav…

機器學習數學通關指南

? 寫在前面 &#x1f4a1; 在代碼的世界里沉浸了十余載&#xff0c;我一直自詡邏輯思維敏捷&#xff0c;編程能力不俗。然而&#xff0c;當我初次接觸 DeepSeek-R1 并領略其清晰、系統的思考過程時&#xff0c;我不禁為之震撼。那一刻&#xff0c;我深刻意識到&#xff1a;在A…

MySQL 實驗1:Windows 環境下 MySQL5.5 安裝與配置

MySQL 實驗1&#xff1a;Windows 環境下 MySQL5.5 安裝與配置 目錄 MySQL 實驗1&#xff1a;Windows 環境下 MySQL5.5 安裝與配置 一、MySQL 軟件的下載二、安裝 MySQL三、配置 MySQL 1、配置環境變量2、安裝并啟動 MySQL 服務3、設置 MySQL 字符集4、為 root 用戶設置登錄密…

煙花燃放安全管控:智能分析網關V4煙火檢測技術保障安全

一、方案背景 在中國諸多傳統節日的繽紛畫卷中&#xff0c;煙花盛放、燒紙祭祀承載著人們的深厚情感。一方面&#xff0c;煙花璀璨&#xff0c;是對節日歡慶氛圍的熱烈烘托&#xff0c;寄托著大家對美好生活的向往與期許&#xff1b;另一方面&#xff0c;裊裊青煙、點點燭光&a…