内容摘自 http://git.oschina.net/xautlx/nutch-ajax 抓取数据持久化处理设计
MySQL解析数据存储
为了适应不同项目对不同感兴趣属性的解析存储,数据存储结构采用纵向的属性列表方式,即一个url页面多个属性存储多条记录方式,并且按照text,html,data,num几大典型类型分别对应存储。
创建UTF-8字符集的nutch数据库,并执行表初始化脚本,参考DDL:
CREATE TABLE `crawl_data` (
`url` varchar(255) NOT NULL,
`code` varchar(255) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`category` varchar(255) DEFAULT NULL,
`order_index` int(255) DEFAULT NULL,
`fetch_time` datetime NOT NULL,
`text_value` text,
`html_value` text,
`date_value` datetime DEFAULT NULL,
`num_value` decimal(18,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
为了一般在业务系统获取同一个url的多个属性或友好查询显示,参考如下MySQL脚本实现把纵向的属性列表属性转换为横向的多列显示模式。网上有 相关参考脚本大多是基于数字字段sum汇总等模式的纵转横SQL脚本,本项目需求是单一的基于字符串信息转换,经过一段摸索最后找到基于 GROUP_CONCAT可以实现:
SELECT url ,fetch_time,
GROUP_CONCAT(CASE WHEN code = 'domain' THEN text_value ELSE null END) AS `domain`,
GROUP_CONCAT(CASE WHEN code = 'name' THEN text_value ELSE null END) AS `name`,
GROUP_CONCAT(CASE WHEN code = 'brand' THEN text_value ELSE null END) AS `brand`,
GROUP_CONCAT(CASE WHEN code = 'category' THEN text_value ELSE null END) AS `category`,
GROUP_CONCAT(CASE WHEN code = 'purpose' THEN text_value ELSE null END) AS `purpose`,
GROUP_CONCAT(CASE WHEN code = 'price' THEN num_value ELSE null END) AS `price`,
GROUP_CONCAT(CASE WHEN code = 'refPrice' THEN num_value ELSE null END) AS `refPrice`,
GROUP_CONCAT(CASE WHEN code = 'primaryImage' THEN text_value ELSE null END) AS `primaryImage`
FROM crawl_data GROUP BY url,fetch_time
相关推荐
标题中的“基于java的数据库脚本转换工具(mysql->oracle)”揭示了这是一个利用Java编程语言开发的实用程序,主要用于将MySQL数据库的脚本转换为适用于Oracle数据库的格式。这样的工具在数据迁移、系统升级或者多...
本主题聚焦于如何使用特定工具或脚本将MySQL数据库转换为SQL Server,这一过程通常称为“数据库迁移”。以下是关于这个过程的一些关键知识点: 1. **数据库迁移的目的**:迁移可能出于多种原因,如业务增长、性能...
有时我们需要将数据从横向排列(行格式)转换为纵向排列(列格式),反之亦然。这种转换在SQL中被称为“行列转换”,对于处理复杂的数据结构非常有用。本文将详细探讨如何在MySQL中进行这两种转换。 1. 横向转纵向...
Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_...
3. **解析字段信息**:根据查询到的元数据,解析每个字段,将其转换为Java属性。例如,数据库中的`varchar`类型可能对应Java的`String`,`int`对应`Integer`,以此类推。 4. **生成属性**:根据字段名,自动生成...
单个列表中,需要显示不同快递公司的配送区域,相关表中存储是的对应的地区id字段 2主表中记录相关业务数据,然后关联相地址表处理结果集,就可以得到我们需要的结果 原数据 最终需要的数据 执行的SQL如下 SELECT ...
本文将深入解析标题为"windows上一键安装mysql的bat脚本(实测)"的相关知识点,包括如何创建和理解批处理脚本,以及如何配置MySQL。 首先,批处理脚本(BAT)是基于DOS命令的一种程序,它可以执行一系列预先定义的...
这个工具专注于将MySQL的数据库结构和数据转换为Oracle数据库兼容的格式。下面将详细解释这个过程涉及的知识点。 1. **SQL语言的差异**: MySQL和Oracle都是SQL数据库管理系统,但它们对SQL语法的实现有所不同。...
1. 创建表:CREATE TABLE语句用于创建数据库表,包括定义各字段的名称、类型、长度、是否允许为空等属性。 2. 修改表:ALTER TABLE语句用于对已有的表进行修改,如添加、删除或修改字段,调整字段顺序,设置或取消...
国外大牛写的一个mysql数据库转换postgresql的脚本。亲试可以无错误运行。
批量修改mysql数据库、表、字段编码(gbk到utf8php脚本) 可以把整个数据库、表、字段编码全部从gbk_chinese_ci 到 utf8_general_ci 转换,不会乱码哦 狂拽吊炸天!!!
mysql8一键化安装脚本 1 可以自由安装在任何目录下(直接回车默认安装在/auto),而且所有的东西都在此目录下,不会出现在其他目录中 2 内置可以在存储过程中执行Linux命令插件 3 安装完成后,cd /auto/mysql/support-...
该包中包含一键安装mysql5.7和mysql8.0脚本,分为mysql二进制包安装和yum安装,并一起部署MySQL备份策略 用于快速部署mysql场景,适合多项目快速部署 备份工具为xtrabackup
"mysql"表明这个脚本是基于MySQL数据库系统的,用户可能需要一定的MySQL基础来理解和利用这些数据。"车牌"则意味着数据的核心是关于汽车车牌的信息,可能包括车牌号码、省份、城市等字段。 在压缩包内的"car_area....
工作流25张表,MySQL脚本语言,附带表及字段释义,供你拿来主义
这个名为"mysql5.7 windows bat脚本一键安装.zip"的压缩包文件提供了一个便捷的方法,通过批处理脚本来自动化这些过程,减少了手动操作的繁琐和出错的可能性。 批处理脚本(BAT脚本)是基于DOS命令的文本文件,可以...
虽然是demo版本,但可以转换一些字段不是很长的数据库表。 MySQL Migration Toolkit v2.3 数据库转换工具 MySQL Migration Toolkit 可以将任何数据源转换成mysql的数据,也可以将mysql的数据转换成其它类型的数据 ...
MySQL批量对表增加指定字段,会快速实现批量字段的添加。写了2个存储存储过程,执行即可。方便快速!
"基于存储过程的MySQL数据库BLOB字段访问" 基于存储过程的MySQL数据库BLOB字段访问是指在MySQL数据库中使用存储过程来访问和处理二进制数据的方法。这种方法可以使得数据库的二进制数据处理变得更加方便和高效。 ...
文件名称列表只有一项:“最新行政区划MYSQL脚本(世界+中国)”,这可能是一个包含两个部分的脚本文件:一部分针对世界范围的行政区划,另一部分专门针对中国的行政区划。每个部分可能包含一系列CREATE TABLE语句来...