谈闻财经 > 问答 > 大数据查询解决方案

大数据查询解决方案

2024-05-19 12:55:13问答

股票市场是一个需要不断学习和适应的市场,投资者需要及时了解市场动态和公司信息,以便做出正确的投资决策。接下来,谈闻财经将重点带大家了解大数据查询是什么意思,希望可以帮到你。

SQLSERVER大数据库解决方案

SQLSERVER大数据库解决方案

最佳答案在微软的大数据解决方案中,数据管理是最底层和最基础的一环。

灵活的数据管理层,可以支持所有数据类型,包括结构化、半结构化和非结构化的静态或动态数据。

在数据管理层中主要包括三款产品:SQL Server、SQL Server并行数据仓库和

Hadoop on Windows。

针对不同的数据类型,微软提供了不同的解决方案。

具体来说,针对结构化数据可以使用SQL Server和SQL Server并行数据仓库处理。

非结构化数据可以使用Windows Azure和WindowsServer上基于Hadoop的发行版本处理;而流数据可以使用SQL Server StreamInsight管理,并提供接近实时的分析。

1、SQL Server。去年发布的SQL Server 2012针对大数据做了很多改进,其中最重要的就是全面支持Hadoop,这也是SQL Server 2012与SQL Server 2008最重要的区别之一。今年年底即将正式发布的SQL Server 2014中,SQL Server进一步针对大数据加入内存数据库功能,从硬件角度加速数据的处理,也被看为是针对大数据的改进。

2、SQL Server并行数据仓库。并行数据仓库(Parallel Data Warehouse Appliance,简称PDW)是在SQL Server 2008 R2中推出的新产品,目前已经成为微软主要的数据仓库产品,并将于今年发布基于SQL Server 2012的新款并行数据仓库一体机。SQL Server并行数据仓库采取的是大规模并行处理(MPP)架构,与传统的单机版SQL Server存在着根本上的不同,它将多种先进的数据存储与处理技术结合为一体,是微软大数据战略的重要组成部分。

3、Hadoop on Windows。微软同时在Windows Azure平台和Windows Server上提供Hadoop,把Hadoop的高性能、高可扩展与微软产品易用、易部署的传统优势融合到一起,形成完整的大数据解决方案。微软大数据解决方案还通过简单的部署以及与Active Directory和System Center等组件的集成,为Hadoop提供了Windows的易用性和可管理性。凭借Windows Azure上基于Hadoop的服务,微软为其大数据解决方案在云端提供了灵活性。

华为大数据解决方案是什么?

最佳答案大数据解决方案的逻辑层

逻辑层提供了一种组织您的组件的方式。这些层提供了一种方法来组织执行特定功能的组件。这些层只是逻辑层;这并不意味着支持每层的功能在独立的机器或独立的进程上运行。大数据解决方案通常由以下逻辑层组成:

1、大数据来源

2、数据改动 (massaging) 和存储层

3、分析层

4、使用层

互联网是个神奇的大网,

大数据开发和软件定制也是一种模式,这里提供最详细的报价,如果你真的想做,可以来这里,这个手机的开始数字是一八七中间的是三儿零最后的是一四二五零,按照顺序组合起来就可以找到,我想说的是,除非你想做或者了解这方面的内容,如果只是凑热闹的话,就不要来了

大数据来源:考虑来自所有渠道的,所有可用于分析的数据。要求组织中的数据科学家阐明执行您需要的分析类型所需的数据。数据的格式和起源各不相同:

格式— 结构化、半结构化或非结构化。

和数据量— 数据到达的和传送它的速率因数据源不同而不同。

收集点— 收集数据的位置,直接或通过数据提供程序,实时或以批量模式收集数据。数据可能来自某个主要来源,比如天气条件,也有可能来自一个辅助来源,比如媒体赞助的天气频道。

数据源的位置— 数据源可能位于企业内或外部。识别您具有有限访问权的数据,因为对数据的访问会影响可用于分析的数据范围。

数据改动和存储层:此层负责从数据源获取数据,并在必要时,将它转换为适合数据分析方式的格式。例如,可能需要转换一幅图,才能将它存储在 Hadoop Distributed File System (HDFS) 存储或关系数据库管理系统 (RDBMS) 仓库中,以供进一步处理。合规性制度和治理策略要求为不同的数据类型提供合适的存储。

分析层:分析层读取数据改动和存储层整理 (digest) 的数据。在某些情况下,分析层直接从数据源访问数据。设计分析层需要认真地进行事先筹划和规划。必须制定如何管理以下任务的决策:

生成想要的分析

从数据中获取洞察

找到所需的实体

定位可提供这些实体的数据的数据源

理解执行分析需要哪些算法和工具。

使用层:此层使用了分析层所提供的输出。使用者可以是可视化应用程序、人类、业务流程或服务。可视化分析层的结果可能具有挑战。有时,看看类似市场中的竞争对手是如何做的会有所帮助。

每一层包含多种组件类型,下面将会介绍这些类型。

大数据来源

此层包含所有必要的数据源,提供了解决业务问题所需的洞察。数据是结构化、半结构化和非结构化的数据,而且来自许多来源:

1、企业遗留系统— 这些系统是企业应用程序,执行业务需要的分析并获取需要的洞察:

客户关系管理系统

结算操作

大型机应用程序

企业资源规划

Web 应用程序开发

Web 应用程序和其他数据来源扩充了企业拥有的数据。这些应用程序可使用自定义的协议和机制来公开数据。

2、数据管理系统 (DMS)— 数据管理系统存储逻辑数据、流程、策略和各种其他类型的文档:

Microsoft® Excel® 电子表格

Microsoft Word 文档

这些文档可以转换为可用于分析的结构化数据。文档数据可公开为领域实体,或者数据改动和存储层可将它转换为领域实体。

3、数据存储— 数据存储包含企业数据仓库、操作数据库和事务数据库。此数据通常是结构化数据,可直接使用或轻松地转换来满足需求。这些数据不一定存储在分布式文件系统中,具体依赖于所处的上下文。

4、智慧设备— 智慧设备能够捕获、处理和传输使用最广泛的协议和格式的信息。这方面的示例包括智能电话、仪表和医疗设备。这些设备可用于执行各种类型的分析。绝大多数智慧设备都会执行实时分析,但从智慧设备传来的信息也可批量分析。

5、聚合的数据提供程序— 这些提供程序拥有或获取数据,并以复杂的格式和所需的频率通过特定的过滤器公开它。每天都会产生海量的数据,它们具有不同的格式,以不同的生成,而且通过各种数据提供程序、传感器和现有企业提供。

其他数据源— 有许多数据来自自动化的来源:

地理信息:

地图

地区详细信息

位置详细信息

矿井详细信息

人类生成的内容:

社交媒体

电子邮件

博客

在线信息

传感器数据:

环境:天气、降雨量、湿度、光线

电气:电流、能源潜力等

导航装置

电离辐射、亚原子粒子等

靠近、存在等

位置、角度、位移、距离、、加

声音、声震动等

汽车、运输等

热量、热度、温度

光学、光、成像、见光度

化学

压力

流动、流体、

力、密度级别等

来自传感器供应商的其他数据

数据改动和存储层

因为传入的数据可能具有不同的特征,所以数据改动和存储层中的组件必须能够以各种频率、格式、大小和在各种通信渠道上读取数据:

数据获取— 从各种数据源获取数据,并将其发送到数据整理组件或存储在指定的位置中。此组件必须足够智能,能够选择是否和在何处存储传入的数据。它必须能够确定数据在存储前是否应改动,或者数据是否可直接发送到业务分析层。

数据整理— 负责将数据修改为需要的格式,以实现分析用途。此组件可拥有简单的转换逻辑或复杂的统计算法来转换源数据。分析引擎将会确定所需的特定的数据格式。主要的挑战是容纳非结构化数据格式,比如图像、音频、视频和其他二进制格式。

分布式数据存储— 负责存储来自数据源的数据。通常,这一层中提供了多个数据存储选项,比如分布式文件存储 (DFS)、云、结构化数据源、NoSQL 等。

分析层

这是从数据中提取业务洞察的层:

分析层实体识别— 负责识别和填充上下文实体。这是一个复杂的任务,需要高效的高性能流程。数据整理组件应为这个实体识别组件提供补充,将数据修改为需要的格式。分析引擎将需要上下文实体来执行分析。

分析引擎— 使用其他组件(具体来讲,包括实体鉴别、模型管理和分析算法)来处理和执行分析。分析引擎可具有支持并行处理的各种不同的工作流、算法和工具。

模型管理— 负责维护各种统计模型,验证和检验这些模型,通过持续培训模型来提高准确性。然后,模型管理组件会推广这些模型,它们可供实体识别或分析引擎组件使用。

使用层

这一层使用了从分析应用程序获取的业务洞察。分析的结果由组织内的各个用户和组织外部的实体(比如客户、供应商、合作伙伴和提供商)使用。此洞察可用于针对客户提供产品营销信息。例如,借助从分析中获取的洞察,公司可以使用客户偏好数据和位置感知,在客户经过通道或店铺时向他们提供个性化的营销信息。

该洞察可用于检测欺诈,实时拦截交易,并将它们与使用已存储在企业中的数据构建的视图进行关联。在欺诈性交易发生时,可以告知客户可能存在欺诈,以便及时采取更正操作。

此外,可以根据在数据改动层完成的分析来触发业务流程。可以启动自动化的步骤 — 例如,如果客户接受了一条可自动触发的营销信息,则需要创建一个新订单,如果客户报告了欺诈,那么可以触发对信用卡使用的阻止。

分析的输出也可由推荐引擎使用,该引擎可将客户与他们喜欢的产品相匹配。推荐引擎分析可用的信息,并提供个性化且实时的推荐。

使用层还为内部用户提供了理解、找到和导航企业内外的链锁信息的能力。对于内部使用者,为业务用户构建报告和仪表板的能力使得利益相关者能够制定精明的决策并设计恰当的战略。为了提高操作有效性,可以从数据中生成实时业务警告,而且可以监视操作性的关键绩效指标:

交易拦截器— 此组件可实时拦截高容量交易,将它们转换为一种容易被分析层理解的实时格式,以便在传入数据上执行实时分析。事务拦截器应能够集成并处理来自各种来源的数据,比如传感器、智能仪表、麦克风、摄像头、GPS 设备、ATM 和图像扫描仪。可以使用各种类型的适配器和 API 来连接到数据源。也可以使用各种加速器来简化开发,比如实时优化和流分析,视频分析,银行、保险、零售、电信和公共运输领域的加速器,社交媒体分析,以及情绪分析。

业务流程管理流程— 来自分析层的洞察可供业务流程执行语言 (BPEL) 流程、API 或其他业务流程使用,通过自动化上游和下游 IT 应用程序、人员和流程的功能,进一步获取业务价值。

实时监视— 可以使用从分析中得出的数据来生成实时警告。可以将警告发送给感兴趣的使用者和设备,比如智能电话和平板电脑。可以使用从分析组件生成的数据洞察,定义并监视关键绩效指标,以便确定操作有效性。实时数据可从各种来源以仪表板的形式向业务用户公开,以便监视系统的健康或度量营销活动的有效性。

报告引擎— 生成与传统商业智能报告类似的报告的能力至关重要。用户可基于从分析层中得到的洞察,创建临时报告、计划的报告或自助查询和分析。

推荐引擎— 基于来自分析层的分析结果,推荐引擎可向购物者提供实时的、相关的和个性化的推荐,提高电子商务交易中的转换率和每个订单的平均价值。该引擎实时处理可用信息并动态地响应每个用户,响应基于用户的实时活动、存储在 CRM 系统中的注册客户信息,以及非注册客户的社交概况。

可视化和发现— 数据可跨企业内外的各种联邦的数据源进行导航。数据可能具有不同的内容和格式,所有数据(结构化、半结构化和非结构化)可组合来进行可视化并提供给用户。此能力使得组织能够将其传统的企业内容(包含在企业内容管理系统和数据仓库中)与新的社交内容(例如 tweet 和博客文章)组合到单个用户界面中。

垂直层

影响逻辑层(大数据来源、数据改动和存储、分析和使用层)的所有组件的各方面都包含在垂直层中:

信息集成

大数据治理

系统管理

服务质量

信息集成

大数据应用程序从各种数据起源、提供程序和数据源获取数据,并存储在 HDFS、NoSQL 和 MongoDB 等数据存储系统中。这个垂直层可供各种组件使用(例如数据获取、数据整理、模型管理和交易拦截器),负责连接到各种数据源。集成将具有不同特征(例如协议和连接性)的数据源的信息,需要高质量的连接器和适配器。可以使用加速器连接到大多数已知和广泛使用的来源。这些加速器包括社交媒体适配器和天气数据适配器。各种组件还可以使用这一层在大数据存储中存储信息,从大数据存储中检索信息,以便处理这些信息。大多数大数据存储都提供了服务和 API 来存储和检索该信息。

大数据治理

数据治理涉及到定义指南来帮助企业制定有关数据的正确决策。大数据治理有助于处理企业内或从外部来源传入的数据的复杂性、量和种类。在将数据传入企业进行处理、存储、分析和清除或归档时,需要强有力的指南和流程来监视、构建、存储和保护数据。

除了正常的数据治理考虑因素之外,大数据治理还包含其他因素:

1、管理各种格式的大量数据。

2、持续培训和管理必要的统计模型,以便对非结构化数据和分析进行预处理。请记住,设置处理非结构化数据时的重要一步。

3、为外部数据设置有关其保留和使用的策略和合规性制度。

4、定义数据归档和清除策略。

5、创建如何跨各种系统复制数据的策略。

6、设置数据加密策略。

服务质量层

此层复杂定义数据质量、围绕隐私和安全性的策略、数据频率、每次抓取的数据大小和数据过滤器:

数据质量

1、完整地识别所有必要的数据元素

2、以可接受的新鲜度提供数据的时间轴

3、依照数据准确性规则来验证数据的准确性

4、采用一种通用语言(数据元组满足使用简单业务语言所表达的需求)

5、依据数据一致性规则验证来自多个系统的数据一致性

6、在满足数据规范和信息架构指南基础上的技术符合性

围绕隐私和安全的策略

需要策略来保护敏感数据。从外部机构和提供程序获取的数据可能包含敏感数据(比如 Facebook 用户的联系信息或产品定价信息)。数据可以来源于不同的地区和国家,但必须进行相应的处理。必须制定有关数据屏蔽和这类数据的存储的决策。考虑以下数据访问策略:

A、数据可用性

B、数据关键性

C、数据真实性

D、数据共享和发布

E、数据存储和保留,包括能否存储外部数据等问题。如果能够存储数据,数据可存储多长时间?可存储何种类型的数据?

F、数据提供程序约束(政策、技术和地区)

G、社交媒体使用条款

数据频率

提供新鲜数据的频率是多少?它是按需、连续还是离线的?

抓取的数据大小

此属性有助于定义可抓取的数据以及每次抓取后可使用的数据大小。

过滤器

标准过滤器会删除不想要的数据和数据中的干扰数据,仅留下分析所需的数据。

系统管理

系统管理对大数据至关重要,因为它涉及到跨企业集群和边界的许多系统。对整个大数据生态系统的健康的监视包括:

A、管理系统日志、虚拟机、应用程序和其他设备

B、关联各种日志调查和监视具体情形

C、监视实时警告和通知

D、使用显示各种参数的实时仪表板

E、引用有关系统的报告和详细分析

F、设定和遵守服务水平协议

G、管理存储和容量

G、归档和管理归档检索

I、执行系统恢复、集群管理和网络管理

J、策略管理

结束语

对开发人员而言,层提供了一种对大数据解决方案必须执行的功能进行分类的途径,为组织建议必需执行这些功能所需的代码。但是,对于想要从大数据获取洞察的业务用户,考虑大数据需求和范围通常会有所帮助。原子模式解决了访问、处理、存储和使用大数据的机制,为业务用户提供了一种解决需求和范围的途径。下一篇文章将介绍用于此用途的原子模式。

列举三种大数据的解决方案?

最佳答案通常,Kafka和Spark Streaming基础结构具有以下优点。该 Spark框架的高效率和低延迟确保了良好的实时性和Spark Streaming操作的性能。而且,与Storm相比, Spark Streaming具有Spark提供的高级API和灵活性框架,它有助于以简单的方式编写更复杂的算法。基础设施的高度一致性使得车队的主管可以轻松完成查询实时数据,它还确保了流处理和批处理的平衡处理。

作者:二兵_d97a

链接:

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

业界采用的大数据解决方案

最佳答案常用的还是IBM BigInsight与Hadoop,

还有,微软大数据解决方案 - SQL Server 2014,(官网简介:伴随一张张照片的上传、推送、购买和 GPS 定位过程,数据也随之创建。今天,85% 的数据由传感器和设备自动生成。这是一个大数据时代,大数据可以带来巨大的成就——前提是您手中掌握驯服它的工具。

Microsoft 认为大数据应由最了解您的公司、最接近大数据伟大构想的人来掌控。微软大数据方案很简单——整合 Hadoop 和您的核心数据库,并借助您最常使用的工具通过丰富的 3D 数据可视化技术将非结构化数据和结构化数据带入现实生活。

借助 Microsoft 的大数据解决方案,您可以使用用于 SQL Server 的相同技术部署一个 Hadoop 群集,并在数分钟内做好查询与合并关系型和非关系型数据的准备。所有人都可以成为 BI 专家,使用 Excel 和 Power BI 创建强大且美观的可视化数据并通过数据讲述故事。)

上亿条数据查询解决方案?

最佳答案数据库有上亿条商品数据

需要处理大量按商品名称的模糊查询(假设商品名称的分词已经实现了,也就是用多个关键字来查询)

我最本来是这样设想的:

建立一个商品名称索引表:ID,Name,ProductID 三个字段

ID自增

Name(分词程序对商品名称进行分词后,保存下来的一个词),

ProductID,商品名称包含该词的商品ID(varchar(max)字段,任何包含该词的商品ID都存在这个字段

问题就是到了这里,比如一个词:黑色,可能包含黑色这个词的商品名称有N多个,就算我知道了这些商品ID处理起来也很麻烦了。

还有在网上看到很多资料,说这么大数据量要进行数据分区,但如果搜索名称字段的话,我必须要进行全表扫描才能得到想要的数据啊?

请大家帮我分析下,我该怎么处理啊?

mysql数据量上十万条后,查询慢导致服务器卡有什么解决办法

最佳答案几方面:

硬件,软件,以及语言

硬件,是不是抗不住,

软件,mysql是不是没有设置好,数据库设计方面等,

语言,SQL语句写法。

下面是一些优化技巧。

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0

3.应尽量避免在 where 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。

4.应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num=10 or num=20可以这样查询:select id from t where num=10 union all select id from t where num=20

5.in 和 not in 也要慎用,否则会导致全表扫描,如:select id from t where num in(1,2,3) 对于连续的数值,能用 between 就不要用 in 了:select id from t where num between 1 and 3

6.下面的查询也将导致全表扫描:select id from t where name like '李%'若要提高效率,可以考虑全文检索。

7.

如果在 where

子句中使用参数,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然

而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。如下面语句将进行全表扫描:select id from t where num=@num可以改为强制查询使用索引:select id from t with(index(索引名)) where num=@num

8.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num/2=100应改为:select id from t where num=100*2

9.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:select id from t where substring(name,1,3)='abc' ,name以abc开头的id

应改为:

select id from t where name like 'abc%'

10.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

11.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

12.不要写一些没有意义的查询,如需要生成一个空表结构:select col1,col2 into #t from t where 1=0

这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样:

create table #t(.)

13.很多时候用 exists 代替 in 是一个好的选择:select num from a where num in(select num from b)

用下面的语句替换:

select num from a where exists(select 1 from b where num=a.num)

14.并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。

15.

索引并不是越多越好,索引固然可 以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert

或 update

时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有

必要。

16.

应尽可能的避免更新 clustered 索引数据列,因为 clustered

索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。若应用系统需要频繁更新

clustered 索引数据列,那么需要考虑是否应将该索引建为 clustered 索引。

17.尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

18.尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。

19.任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

20.尽量使用表变量来代替临时表。如果表变量包含大量数据,请注意索引非常有限(只有主键索引)。

21.避免频繁创建和删除临时表,以减少系统表资源的消耗。

22.临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表中的某个数据集时。但是,对于一次性事件,最好使用导出表。

23.在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log ,以提高;如果数据量不大,为了缓和系统表的资源,应先create table,然后insert。

24.如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。

25.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。

26.使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。

27.

与临时表一样,游标并不是不可使 用。对小型数据集使用 FAST_FORWARD

游标通常要优于其他逐行处理方法,尤其是在必须引用几个表才能获得所需的数据时。在结果集中包括“合计”的例程通常要比使用游标执行的快。如果开发时

间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。

28.在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。无需在执行存储过程和触发器的每个语句后向客户端发送DONE_IN_PROC 消息。

29.尽量避免大事务操作,提高系统并发能力。

30.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

通过上文关于大数据查询是什么意思的相关信息,谈闻财经相信你已经得到许多的启发,也明白类似这种问题的应当如何解决了,假如你要了解其它的相关信息,请点击谈闻财经的其他页面。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息储存空间服务,不拥有所有权,不承担相关法律责任。如有发现本站涉嫌抄袭侵权/违法违规的内容,请发送邮件,一经查实,本站将立刻删除。

猜你喜欢