内容摘自 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脚本是构建基于地理位置信息系统的基石,涉及到数据库设计、数据导入、SQL查询等多个方面,对于开发者而言,理解和掌握这些知识对于处理类似的数据存储和检索问题至关重要。
国外大牛写的一个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....
基于shell脚本的Linux环境下MySQL快速部署方法 本文主要讨论了如何使用shell脚本来快速部署MySQL数据库在Linux环境下。MySQL数据库是关系型数据库管理系统,广泛应用于互联网时代的各中小型公司。然而,MySQL的安装...
工作流25张表,MySQL脚本语言,附带表及字段释义,供你拿来主义
这个名为"mysql5.7 windows bat脚本一键安装.zip"的压缩包文件提供了一个便捷的方法,通过批处理脚本来自动化这些过程,减少了手动操作的繁琐和出错的可能性。 批处理脚本(BAT脚本)是基于DOS命令的文本文件,可以...
自动化部署mysql脚本适合的版本为mysql5.5和5.6系列。
MySQL批量对表增加指定字段,会快速实现批量字段的添加。写了2个存储存储过程,执行即可。方便快速!