为了适应不同项目对不同感兴趣属性的解析存储,数据存储结构采用纵向的属性列表方式,即一个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
技术分享:www.kaige123.com
相关推荐
在本文中,我们将深入探讨如何使用Java开发一个串口助手应用程序,该程序能接收来自串行端口的数据并将其解析后存储到MySQL数据库中。首先,我们需要了解串口通信的基本概念,然后学习Java如何处理串口输入,接着是...
如果你需要从MongoDB迁移数据到MySQL,你需要先使用MongoDB的驱动程序(如MongoDB.Driver库)读取数据,然后按照上述步骤解析和存储到MySQL。 总的来说,这个教程涵盖了C#环境下使用JSON解析和MySQL数据库的基本...
在本系统中,MySQL作为数据存储的后台,负责接收和管理来自串口的各类数据。 “串口数据采集入MySQL数据库V2.0”系统的核心功能可以分为以下几个方面: 1. **数据采集**:系统通过串口与外部设备建立连接,实时...
XML(Extensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据。本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java ...
将爬取到的数据存储到MySQL,主要涉及以下几个步骤: 1. 创建数据库和表:根据数据结构创建对应的数据库和表,定义字段和数据类型。 2. 连接数据库:使用Python连接器建立与MySQL服务器的连接,设置用户名、密码、...
总之,通过ESP8266与MySQL的结合,我们可以创建一个简单的物联网数据记录系统,实时将设备数据存储到数据库,便于后续分析和管理。这个过程涉及客户端(ESP8266)的HTTP请求、服务器端(PHP)的数据库操作以及中间的...
其次,**MySQL建表脚本**是用于存储解析后的日志数据。MySQL是一个流行的关系型数据库管理系统,适合存储和查询结构化的数据。在分析日志时,我们需要设计合适的数据库表结构来存储各种日志事件。通常,表中可能包括...
MySQL配置文件解析主要涉及到MySQL服务器的参数调整,这些参数直接影响数据库的性能和稳定性。配置文件通常命名为`my.cnf`或`my.ini`,在不同的操作系统路径可能不同。以下是几个关键参数的解释: 1. `port`:指定...
在IT行业中,数据库管理是一项至关...以上就是关于“hsql数据转移mysql”的详细解析,这个过程涉及到数据库管理、数据迁移、SQL操作以及编程技术等多个方面,理解并掌握这些知识对于任何IT专业人员来说都是至关重要的。
而MySQL则是一款开源的关系型数据库管理系统,被广泛用于存储和管理数据。本项目"java实现Excel数据导入到mysql数据库"旨在利用Java技术将Excel表格中的数据高效地导入到MySQL数据库,并且在数据库中存在相同数据时...
Hive 通常用于存储海量数据并进行批处理分析,而 MySQL 则用于存储结构化数据并提供快速查询服务。为了实现两者之间的数据交换,DataX 作为一种开源的数据同步工具被广泛应用。 #### 问题描述 在使用 DataX 将数据...
本文将深入探讨如何批量从文本文件中读取数据并将其存储到MySQL数据库中。 首先,我们需要理解文本文件的数据结构。文本文件通常包含行和列数据,比如CSV(Comma Separated Values)文件,其中数据由逗号分隔。每行...
MySQL海量数据存储与优化 MySQL是一种关系型数据库管理系统,广泛应用于各个行业,包括互联网、金融、电信等领域。随着数据量的增长,MySQL的性能优化变得越来越重要。本文将详细介绍MySQL的架构原理、存储机制、...
在本篇文章中,我们将深入探讨几种常见的数据存储方式及其解析方法。 首先,我们来了解传统的文件存储系统。文件系统是最基础的数据存储方式,例如FAT、NTFS和HFS+等。它们通过目录结构组织文件,方便用户直观地...
MySQL存储引擎是数据库管理系统的核心组成部分,负责数据的存储和访问方式。MySQL系统由多个组件构成,包括管理工具、连接池、SQL接口、分析器、优化器、缓存、存储引擎和硬盘。其中,存储引擎是专门处理表数据的...
MySQL作为一款流行的开源关系型数据库管理系统(RDBMS),因其强大的功能和灵活的应用特性,在Web应用程序的后端数据存储领域占据着举足轻重的地位。MySQL支持SQL语言进行数据管理,并作为LAMP(Linux, Apache, ...
在这个系统中,阿里云作为云计算平台扮演着关键角色,为数据存储和处理提供强大支持。本文将详细探讨这个系统的核心组成部分——MySQL数据库和JSON数据格式。 首先,MySQL是一种广泛使用的开源关系型数据库管理系统...
在IT行业中,数据库管理系统是数据存储和管理的关键工具。Access和MySQL是两种广泛使用的数据库系统,各有其特点和优势。本文将深入探讨如何从Access导入数据到MySQL,以解决那些不熟悉Access但需要利用MySQL强大...
binlog2sql是一款开源的MySQL binlog解析工具,它能够帮助我们解析binlog,生成误操作前后的SQL语句,从而实现快速的数据恢复。 要使用binlog2sql,首要条件是MySQL服务器已经开启了binlog,并配置了相关的参数,...
文档还提到了Python在数据解析方面的具体技术实现,包括利用Ftplib类库下载FTP服务器上的数据,使用Python的“切片”技术对原始文本数据进行解析,以及利用pymysql类库将整理后的数据存储到MySQL数据库中。...