Mysql

將 NoSQL 數據關聯到 RDMBS 的最佳實踐

  • February 11, 2022

我希望將 NoSQL 解決方案(Redis、Mongo 等)與 mySQL/Laravel 應用程序一起使用。我這樣做的原因是我需要一個無模式的鍵值儲存來處理我的關係數據。我可以輕鬆地在 mySQL 中創建鍵值儲存,但我認為這是 NoSQL 可以大放異彩的一個案例,我寧願不採取簡單的方法。除了來這裡尋求幫助,就是這樣。

我有點模糊的是如何將這兩者聯繫在一起。一個範例場景是我有 2 個生成潛在客戶的表單。一種表格包含電子郵件、最佳通話時間和出生日期。另一個有電子郵件,你穿褲子嗎?是否像在我的 NoSQL 表中儲存數據一樣簡單,如下所示:

{ 'lead_id':3829, 'email': '3829@test.com' }
{ 'lead_id':3829, 'best_time': 'evening' }
{ 'lead_id':3829, 'dob': '1980-07-01' }
{ 'lead_id':3830, 'email': '3830@test.com' }
{ 'lead_id':3829, 'pants': 'off' }

然後我的 mySQL Lead 表可能如下所示:

id   | form_id | timestamp
3829 | 1       | 2014-09-18 11:02:32  
3830 | 2       | 2014-09-18 09:12:10

由於這將是我的第一次 NoSQL 遊覽,我也不確定我的 NoSQL 數據可用的功能。是否仍然可以根據我的lead_id 檢索數據並按特定鍵排序?例如,通過包含按送出日期排序的“foo”的電子郵件過濾表單#2 結果?

MySQL shell 可以將 JSON 和 BSON 數據(請參閱https://mysqlserverteam.com/importing-data-from-mongodb-to-mysql-bson-data-types/ )批量插入JSON 列。從那裡您可以使用 MySQL 的 JSON 函式或使用生成的列將 JSON 值提取到它們自己的列中。

我有兩種方法可以解決這個問題。

1.) 將 Mongo 中的 json 轉儲到tmp_retrieval_tableMySQL 中的 a 中,然後編寫相應的 db 函式,以您認為合適的方式對所選模式執行解析/ETL。

2.) 利用 MySQL 的分區功能。您實際上可以按特定鍵或時間戳對記錄進行排序。

MySQL 分區

引用自:https://dba.stackexchange.com/questions/76994