我正在寻找构建一个Rails应用程序,它将拥有一些超过5亿行的超大表.为了让事情变得活泼,我目前正在研究如何将大表拆分为更易于管理的块.我看到,从MySQL 5.1开始,有一个分区选项,这是一个可能的选项,但我不喜欢确定分区的列必须是表中主键的一部分的方式.
我真正想做的是根据写入的值拆分AR模型写入的表,但据我所知,没有办法做到这一点 - 是否有人对如何实现这一点有任何建议或任何替代策略?
谢谢
Arfon
我有一个庞大的用户数据库(~200,000),我正在从ASP.NET应用程序转移到Ruby on Rails应用程序.我真的不想要求每个用户重置密码,所以我试图在Ruby中重新实现C#密码散列函数.
旧功能是这样的:
public string EncodePassword(string pass, string saltBase64)
{
byte[] bytes = Encoding.Unicode.GetBytes(pass);
byte[] src = Convert.FromBase64String(saltBase64);
byte[] dst = new byte[src.Length + bytes.Length];
Buffer.BlockCopy(src, 0, dst, 0, src.Length);
Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
HashAlgorithm algorithm = HashAlgorithm.Create("SHA1");
byte[] inArray = algorithm.ComputeHash(dst);
return Convert.ToBase64String(inArray);
}
Run Code Online (Sandbox Code Playgroud)
示例哈希密码和盐是(并且使用的密码是"密码"):
哈希密码:"weEWx4rhyPtd3kec7usysxf7kpk ="盐:"1ptFxHq7ALe7yXIQDdzQ9Q =="密码:"密码"
现在使用以下Ruby代码:
require "base64"
require "digest/sha1"
password = "password"
salt = "1ptFxHq7ALe7yXIQDdzQ9Q=="
concat = salt+password
sha1 = Digest::SHA1.digest(concat)
encoded = Base64.encode64(sha1)
puts encoded
Run Code Online (Sandbox Code Playgroud)
我没有得到正确的密码哈希(我得到"+ BsdIOBN/Vh2U7qWG4e + O13h3iQ ="而不是"weEWx4rhyPtd3kec7usysxf7kpk =").任何人都可以看到问题可能是什么?
非常感谢 …
我正在对GitHub上的一些开源项目进行k-means聚类活动,并尝试使用Seaborn Scatterplot Matrix将结果与聚类质心一起绘制.
我可以成功绘制聚类分析的结果(示例下面的tsv输出)
user_id issue_comments issues_created pull_request_review_comments pull_requests category
1 0.14936519790888722 2.0100502512562812 0.0 0.60790273556231 Group 0
1882 0.11202389843166542 0.5025125628140703 0.0 0.0 Group 1
2 2.315160567587752 20.603015075376884 0.13297872340425532 1.21580547112462 Group 2
1789 36.8185212845407 82.91457286432161 75.66489361702128 74.46808510638297 Group 3
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我也希望能够在矩阵图上绘制聚类的质心.目前我的绘图脚本如下所示:
import seaborn as sns
import pandas as pd
from pylab import savefig
sns.set()
# By default, Pandas assumes the first column is an index
# so it will be skipped. In our case it's the user_id
data = pd.DataFrame.from_csv('summary_clusters.tsv', …Run Code Online (Sandbox Code Playgroud)