主要内容

分析大数据在数据库使用MapReduce

这个例子中确定的延误意味着大量的飞行数据存储在数据库中。您可以访问使用一个大型数据集databaseDatastore对象与数据库工具箱™。在创建一个DatabaseDatastore对象,您可以编写一个MapReduce算法,定义了数据分块和减少。或者,您可以使用一个高数组在大型数据集上运行算法。

DatabaseDatastore对象不支持使用并行池与并行计算工金宝app具箱™安装。使用高阵列分析数据或运行MapReduce算法,设置全局执行环境是当地的MATLAB®会话。

这个例子使用一个预先配置的JDBC数据源创建数据库连接。有关更多信息,请参见configureJDBCDataSource函数。

创建DatabaseDatastore对象

设置全局执行环境是当地的MATLAB®会话。

mapreduce (0);

该文件airlinesmall.csv包含大量的飞行数据。这个文件加载到Microsoft®SQL Server®数据库表中airlinesmall。此表包含123523条记录。

创建一个数据库连接到JDBC数据源MSSQLServerJDBCAuth。这个数据源配置JDBC驱动程序到Microsoft®SQL Server使用Windows®®数据库的身份验证。指定一个空白的用户名和密码。

数据源=“MSSQLServerJDBCAuth”;用户名=”“;密码=”“;康涅狄格州=数据库(数据源、用户名、密码);

创建一个DatabaseDatastore使用数据库连接对象和一个SQL查询。这个SQL查询检索延误的数据airlinesmall表。

sqlquery =“从airlinesmall选择ArrDelay”;dbd = databaseDatastore(康涅狄格州,sqlquery);

定义映射器和减速机的功能

块来处理大型数据集,您可以编写自己的映射函数。在这个例子中,对于每个块使用meanArrivalDelayMapper.m:

  • 读的延误数据DatabaseDatastore对象。

  • 确定的延误和总延迟块。

  • 两个值存储在KeyValueDatastore

meanArrivalDelayMapper.m文件包含这个代码。

函数meanArrivalDelayMapper(数据、信息、intermKVStore)% MeanMapReduceExample映射函数。% 2014年版权MathWorks公司。ArrDelay % n×1表数据。删除缺失值:数据(isnan (data.ArrDelay):) = [];%记录部分的数量和金额和减速器积累。partCountSum = [(data.ArrDelay),长度总和(data.ArrDelay)];添加(intermKVStore“PartialCountSumDelay”,partCountSum);

您也可以编写自己的减速机的功能。在这个例子中,使用meanArrivalDelayReducer.m读中间值的延误和总延误。然后,确定总体的意思是推迟到来。mapreduce调用这个减速器函数只有一次因为映射函数添加一个关键KeyValueStore。的meanArrivalDelayReducer.m文件包含这个代码。

函数meanArrivalDelayReducer (intermKey intermValIter outKVStore)% MeanMapReduceExample减速功能。% 2014年版权MathWorks公司。% intermKey是“PartialCountSumDelay”数= 0;金额= 0;hasnext (intermValIter) countSum = getnext (intermValIter);数=数+ countSum (1);和=和+ countSum (2);结束meanDelay = /数总和;%的键-值对添加到outKVStore将成为mapreduce的输出添加(outKVStore“MeanArrivalDelay”,meanDelay);

使用映射器和减速器运行MapReduce函数

确定平均延误飞行数据,运行MapReduce的DatabaseDatastore对象,映射函数,减速机的功能。

outds = mapreduce (dbd @meanArrivalDelayMapper @meanArrivalDelayReducer);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MAPREDUCE进展* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *地图地图15%减少0% 30% 0%减少0%减少0%地图46%减少0% 61% 0% 76%减少0%地图地图地图100%减少0% 100% 92%减少0%减少100%

MapReduce的显示输出

读取表从输出数据存储使用readall

outtab = readall (outds)
outtab = 1×2表键值_____________ ________的MeanArrivalDelay [7.1201]

桌子上只有一行包含一个键-值对。

从表中显示平均延误。

meanArrDelay = outtab.Value {1}
meanArrDelay = 7.1201

关闭DatabaseDatastore对象和数据库连接

关上(dbd)

另请参阅

||||||

相关的话题

外部网站