본문 바로가기

나는개발자다!!/AI, 빅데이터, 딥러닝

빅데이터란 무엇일까?

1. 빅데이터의 개요

2011년 하반기부터 빅데이터라는 용어가 해외 블로그 또는 저널로부터 나오기 시작했다. 국내에서도 이 시기에 언론에서 빅데이터에 대해 관심을 가지면서 관련 기사들이 나왔다. 빅데이터란 일정시간에 데이터를 처리, 저장, 관리할 때 흔히 쓰이는 소프트웨어(SW)의 허용범위를 넘어서는 데이터 덩어리를 가리킨다. 예를 들면 웹 로그, 센서 네트워크, 소셜미디어, 통신 네트워크에서 저장하는 상세 정보나 천체 관측, 생물학적 시스템, 군사 방위, 의학 기록, 사진과 비디오 아카이브 등이다. 시스템, 서비스, 조직등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 데이터 멀티미디어, SNS, RFID, 센서네트워크, 소셜 데이터, 전자상거래, 천문/대기, 의료정보 관련 등 폭발적인 데이터 생산을 의미한다. 빅 데이터는 빅 머니가 된다. 스마트 기기 등 단말기나 정보통신기술서비스를 제공하는 기업들은 데이터를 수집하고 축적해 비즈니스 플랫폼을 만든다. 빅데이터에 대해 이야기할 때에는 보통 세가지 측면에서 이야기한다. 첫 번째 양(Volume)의 측면으로 저장할 데이터의 양과 의미 분석과 데이터 가공을 많이 해야 하는 처리 요구량을 말한다. 두 번째 속도(Velocity)의 측면으로 데이터를 처리하는 속도와 저장 속도를 말하며 필요에 따라서 수 많은 사용자 요청을 실시간으로 처리한 후 처리 결과를 반환해주는 기능도 필요함을 의미한다. 세 번째 다양성(Variety)의 측면으로 REDMS에서 사용하는 테이블의 레코드와 같이 정형화되고 사전에 정의할 수 있는 정제된 형태의 데이터뿐만 아니라 텍스트, 이미지와 같은 비정형 데이터의 처리를 의미한다. 이 세가지 측면에서 데이터를 분석해야만 가치를 발생시킬 수 있다는 관점에서 가치(Value)의 측면을 추가하기도 한다.

빅데이터를 매력적으로 만드는 요소로는 개인화 서비스와 소셜 서비스의 부상으로 기본 인터넷 서비스 환경이 재구성되고 있다. 검색과 포털 위주였던 인터넷 웹 서비스 환경이 최근에는 통신, 게임, 음악, 검색, 쇼핑 등의 전 서비스 영역에서 개인화 서비스와 소셜 서비스를 제공해야 하는 환경으로 바뀌고 있다. 그렇기 때문에 저장소의 수직적 확장(scale-up)보다는 수평적 확장(scale-out) 기술이 중요해지고 있는 것이다. 또한 개인 간의 관계 분석이나 개인의 취향을 분석하는 복잡한 기능과 저장 크기와 처리 요구량에 있어서 OLTP(Online Transaction Processing) 범위를 넘어서는 데이터 처리 기술이 중요해지고 있는 것이다. 모바일 환경의 보편화에 의해 기존 데이터가 생성되고 소비되는 원천 환경에 많은 변화가 생겼다. 사용자의 이동 정보나 활동 정보 등이 저장하고 분석해야 할 데이터가 되고 있다. 또한 스마트 폰, PC, TV 등과 같은 이종 기기간 사용자의 이동성을 보장하기 위해 클라우드 기반의 정보 공유 처리 기술이 현실화되었다. 클라우드 컴퓨팅으로 대변되는 IT 환경(IaaS, Infrastructure as a Service), 플랫폼 환경(PaaS, Platform as a Service), 서비스 환경(SaaS, Software as a Service)의 고도화 경향에 따라 대량의 데이터를 저장하고, 처리하고, 서비스하는 것이 적절한 투자 수준에서 가능해지고 있다. Google과 같은 선도적 인터넷 기업이 공개한 대용량 데이터 처리 기술이 오픈 소스 진영에서 재창출 되고 이것을 개발 환경에서 사용할 수 있게 되었다. 이와 같은 모든 환경적 요소에 의해 많은 데이터를 효율적으로 저장하고 처리할 수 있는 능력이 곧 기업의 경쟁력으로 직결되고 있다. 동시에 여러 소프트웨어 단체나 기업에서 이러한 데이터 저장, 처리 기능을 플랫폼화하여 누구나 쉽게 쓸 수 있도록 해서, 전문 인력 확보의 어려움과 높은 비용 때문에 큰 기업만이 할 수 있었던 빅데이터 기술을 작은 단체나 기업에서도 활용할 수 있게 된 것이다.

 

2. 빅데이터 처리기술의 이해

2.1 빅데이터의 분석 기법

대부분의 분석 기법들은 통계학과, 특히 기계학습/데이터 마이닝 분야에서 이미 사용되던 기법들이며, 이 분석 기법들의 알고리즘을 대규모 데이터 처리에 맞도록 개선하여 빅데이터 처리에 적용시키고 있다. 최근 소셜미디어 등 비정형 데이터의 증가로 인해 분석 기법들 중에서 텍스트/오피니언 마이닝, 소셜 네트워크 분석, 군집 분석 등이 주목을 받고 있다.

 

2.1.1 Text Mining

텍스트 마이닝은 비/반정형 텍스트 데이터에서 자연어처리(Natural Language Processing) 기술에 기반하여 유용한 정보를 추출, 가공하는 것을 목적으로 하는 기술이다. 텍스트 마이닝 기술을 통해 방대한 텍스트 뭉치에서 의미 있는 정보를 추출해내고, 다른 정보와의 연계성을 파악하며, 텍스트가 가진 카테고리를 찾아내는 등, 단순한 정보 검색 그 이상의 결과를 얻어낼 수 있다. 컴퓨터가 인간이 사용하는 언어(자연어)를 분석하고 그 안에 숨겨진 정보를 발굴해 내기 위해 대용량 언어자원과 통계적, 규칙적 알고리즘이 사용되고 있다. 주요 응용분야로 문서 분류(Document Classification), 문서 군집(Document Clustering), 정보 추출(Information Extraction), 문서 요약(Document Summarization) 등이 있다.

 

2.1.2 Opinion Mining

텍스트 마이닝의 관련 분야로는 오피니언 마이닝, 혹은 평판 분석(Sentiment Analysis) 이라고 불리는 기술이 있다. 오피니언 마이닝은 소셜미디어 등의 정형/비정형 텍스트의 긍정(Positive), 부정(Negative), 중립(Neutral) 의 선호도를 판별하는 기술이다. 오피니언 마이닝은 특정 서비스 및 상품에 대한 시장규모 예측, 소비자의 반응, 입소문 분석(Viral Analysis) 등에 활용되고 있다. 정확한 오피니언 마이닝을 위해서는 전문가에 의한 선호도를 나타내는 표현/단어 자원의 축적이 필요하다.

 

2.1.3 Social Network Analytics

소셜 네트워크 분석은 수학의 그래프 이론(Graph Theory) 에 뿌리를 두고 있다. 소셜 네트워크 연결구조 및 연결강도 등을 바탕으로 사용자의 명성 및 영향력을 측정하여, 소셜 네트워크 상에서 입소문의 중심이나 허브(Hub) 역할을 하는 사용자를 찾는데 주로 활용된다. 이렇게 소셜 네트워크 상에서 영향력이 있는 사용자를 인플루언서(Influencer) 라고 부르는데, 인플루언서의 모니터링 및 관리는 마케팅 관점에서 중요하다고 할 수 있다.

 

2.1.4 Cluster Analysis

군집 분석은 비슷한 특성을 가진 개체를 합쳐가면서 최종적으로 유사 특성의 군(Group) 을 발굴하는데 사용된다. 예를 들어 트위터 상에서 주로 사진/카메라에 대해 이야기하는 사용자군이 있을 수 있고, 자동차에 대해 관심 있는 사용자군이 있을 수 있다. 이러한 관심사나 취미에 따른 사용자군을 군집 분석을 통해 분류할 수 있다.

 

3. 빅데이터 처리기술 현황

3.1 분석 인프라 기술

3.1.1 Hadoop

구글의 GFS를 대체할 수 있도록 분산 파일시스템(HDFS, Hadoop Distrbuted File System)과 MapReduce를 구현한 빅데이터 처리 기술의 대표적인 프레임워크이다. 적은 비용으로 빅데이터의 처리가 가능하며 높은 사용 편의성을 제공한다. 기업들은 Hadoop을 빅데이터의 분산처리에 활용하기 시작하였으며 최근에는 IBM, 오라클, 테라데이터, EMC 등의 글로벌 데이터분석 전문기업들도 자사의 사용 솔루션에 하둡을 포함시키거나 연계가 가능하도록 지원하고 있다.

 

3.1.2 R

오픈소스 프로젝트 R 은 통계계산 및 시각화를 위한 언어 및 개발 환경을 제공하며, R 언어와 개발 환경을 통해 기본적인 통계 기법부터 모델링, 최신 데이터 마이닝 기법까지 구현/개선이 가능하다. 이렇게 구현한 결과는 그래프 등으로 시각화할 수 있으며, Java 나 C, Python 등의 다른 프로그래밍 언어와 연결도 용이하다. Mac OS, 리눅스/유닉스, 윈도우 등의 대부분의 컴퓨팅 환경을 지원하는 것도 장점이다. 위의 장점들로 인해 R 은 통계 분석 분야에서 인지도를 높여왔으며, 하둡 환경상에서 분산 처리를 지원하는 라이브러리 덕분에 구글, 페이스북, 아마존 등의 빅 데이터 분석이 필요한 기업에서 대용량 데이터 통계 분석 및 데이터 마이닝을 위해 널리 사용되고 있다.

 

3.1.3 NoSQL

NoSQL은 Not Only SQL의 줄임말로써 기존 관계형 데이터베이스에서 관계형 특징(스키마, 테이블 간의 JOIN 관계 등)을 포함하지 않고 다른 특징을 가지고 있는 데이터베이스를 일컫는 말이다. 이러한 NoSQL은 데이터의 양이 증가하고 저장할 데이터가 지속적으로 변화하며 데이터의 요구가 일관적이지 않은 웹 시장의 요구를 수용하고, 기존의 관계형 데이터베이스의 수평적 확장성의 한계를 해결하고자 대두되었다. RDBMS에서 ACID(Atomicity, Consistency, Isolation, Durability)를 지원하면서 수평으로 확장하는 것은 거의 불가능에 가깝다. 여러 장비에 데이터를 나누어 저장해야 하고, 나누어진 데이터에 대한 ACID를 만족하려면 복잡한 locking 방식과 복잡한 복제 방식을 사용할 수 밖에 없게 되고, 이는 결국 성능 저하로 이어지기 때문이다. 이러한 이유로 데이터 모델을 단순화해서 분산의 기본이 되는 shard를 쉽게 정의하고, 분산 복제 환경에서 consistency의 요건을 완화하거나(Eventual Consistency), Isolation 요건을 제약하는 형태의 새로운 저장시스템이 나오게 되었는데, 이를 통칭해서 NoSQL이라 부르고 있다.

 

3.1.4 Map-Reduce

대용량의 데이터를 처리하는 기술 중 가장 널리 알려져 있는 것은 Apache Hadoop과 같은 Map-Reduce 방식의 분산 데이터 처리 프레임워크일 것이다. Map-Reduce 방식의 데이터 처리는 다음과 같은 특징이 있다. 특별한 저장소가 아닌 일반적인 내장 하드 디스크 드라이브를 사용하는 일반 컴퓨터로 연산을 수행한다. 각 컴퓨터는 서로 매우 약한 상관관계를 가지고 있기 때문에, 수백~수천 대까지 확장할 수 있다. 많은 수의 컴퓨터가 처리에 참가하므로, 하드웨어 장애 등의 시스템 장애가 예외적인 상황이라기 보다는 일반적인 상황이라고 가정한다. Map과 Reduce라는 간단하고 추상화된 기본 연산으로 복잡한 여러 문제를 해결할 수 있도록 한다. 병렬 프로그램에 익숙하지 않은 프로그래머라도 쉽게 데이터에 대한 병렬 처리를 할 수 있도록 하고 있다. 많은 수의 컴퓨터에 의한 고처리량(throughput)을 지원한다.

 

3.2 빅데이터를 다루는 플랫폼 기술

3.2.1 저장 시스템

병렬 DBMS와 NoSQL은 모두 대량의 데이터를 저장하기 위해 수평 확장 접근 방식을 취하고 있다는 점에서는 동일하다. 이 이외에도 SAN(Storage Area Network), NAS(Network Attached Storage)와 같이 기존 저장 기술도 있고, Amazon S3나 OpenStack Swift와 같은 클라우드 파일 저장 시스템, GFS(Google File System), HDFS(Hadoop Distributed File System)와 같은 분산 파일 시스템 등이 모두 대량의 데이터를 저장하기 위한 기술이다.

 

3.2.2 병렬 DBMS

병렬 DBMS는 전통적인 RDBMS에서 발전한 형태이며, MPP 구조를 취하고 있는 경우가 많다. 대표적인 병렬 DBMS 시스템인 VoltDB, SAP HANA, Vertica, Greenplum, IBM Netezza data warehouse에 대해 간략하게 소개하겠다. VoltDB는 고성능의 OLTP 환경에 적합한 형태로 구성된 시스템이다. 메모리 기반으로 데이터를 처리하며, SQL이 아니라 stored procedure 기반으로 데이터 분할에 대해 순차적인 처리를 하면서 통신과 lock 오버헤드를 줄이고 테이블 데이터에 대한 수평적 분할을 통해 고속의 OLTP 시스템을 구성할 수 있다. 최근에는 snap-shot과 command logging 방식으로 디스크 상의 durability 지원, map-reduce 스타일의 읽기 연산과 materialized view 등을 지원해서 analytic 기능(집계 연산)을 강화했다. SAP HANA는 SAP에서 만든 메모리 기반 로우/컬럼 저장소다. OLAP와 같은 분석 작업에 최적화된 형태로 시스템을 구성할 수 있도록 지원하는 것이 특징이다. Vertica는 데이터를 하드 디스크에 컬럼 방식으로 저장하는 OLAP에 특화된 데이터베이스다. Shared-nothing 기반의 MPP(Massive Parallel Processing) 구조이며 대량의 데이터를 빠르게 적재할 수 있도록 쓰기에 최적화된 저장소와 압축된 형태로 구성된 읽기 저장소, 양자간의 데이터 흐름을 관장하는 tuple mover 등으로 구성되어 있다. 다음 그림은 Vetica의 구조를 대략적으로 보여 준다. Greenplum은 shared-nothing MPP 구조의 데이터베이스이며 PostgreSQL 기반으로 만들어졌다. 저장되는 데이터는 해당 데이터에 적용되는 연산에 따라서 로우 기반 또는 컬럼 기반 방식을 선택할 수 있다. 데이터는 세그먼트 단위로 서버에 저장되며, log shipping 방식의 세그먼트 단위 복제로 가용성을 확보한다. PostgreSQL 기반에서 발전시킨 쿼리 엔진은 SQL 기본 연산(hash-join, hash-aggregation)이나 임의의 Map-Reduce 프로그램을 수행할 수 있도록 구성되어 있어 병렬 쿼리 처리나 Map-Reduce 형태의 프로그램을 효율적으로 처리할 수 있다. 각 처리 노드는 소프트웨어 기반의 데이터 스위치 컴포넌트로 연결되어 있다. IBM Netezza data warehouse는 AMPP(Asymmetric Massively Parallel Processing)라고 부르는 SMP(Symmetric Multiprocessing)와 MPP로 구성된 two-tier 형태의 아키텍처를 가지고 있다.

 

3.3.1 Front End

경량script언어를 사용하여 GC 성능 및 UI구현 이용하고 스크립트언어로 Front End 구성하였다. Ruby on Rails, Scala, JavaScript, python, PHP언어가 있다. 경량App Server를 운용하여 다수의 경량Application Server를 이용하여 사용자 응답성의 극대화한다. Apache Thrift, Apache Avro, Jetty, Tomcat, nginX 서버가 있다. Front (Page) Cache 기술로 정적리소스 및 동적데이터에 대한 캐시서비스로 App/DB 서버부하절감 및 응답성향상을 높였다. Varnish cache, squid cache, Apache traffic server가 대표적이다.

 

3.3.2 Middle Tier

캐시Pool로 DBMS를 통해 빈번하게 조회된 데이터를 메모리에 캐시하여 DB부하절감및 응답속도 향상시키며 분산Application 서버와 Database간의 투명성과 Fault-tolerant를 제공하는 분산메시지기반 미들웨어를 활용한다.

 

3.3.3 Back End

분산Application 서버와 분산Database를 수평적으로 확장 가능케하는 네트워크기반의 분산파일방식을 사용하며 GFS(Google), Apache HDFS, GLORY-FS(ETRI), OwFS(Naver)가 대표적이다. 분산데이터스토리지/ 연산처리방식으로 관계형DB의 한계를 극복하고 초고용량 데이터의 처리를 위해 새롭게 고안된 데이터저장방식이다. 기본적으로 데이터의 분산관리를 지원하며 인덱스의 최적화에 집중화된 DB로 데이터 쓰기가 많은 업 무의 실시간 데이터 처리에 최적화된 DB이다. HadoopMap/Reduce, HBase, MongoDB, cassandra, cloudata, MySqlCluster(InnoDB)가 있다. DW & 검색엔진을 통해 확장 가능한고 성능정보 검색서비스용 라이브러리엔진 및 DW 엔진을 사용한다.

 

3.3.4 System Mgnt

시스템로그, 성능, 응답성등을 분석하고 표현하여 신속한 문제파악과 주요지표관리를 통해 운영 조직의 대응(아키텍처Renewal) 여부와 시점에 대한의사결정지원, 사용자의 서비스 불만 발생 전에 proactive한 대응이 가능하다. Apache Zookeeper, Apache Chukwa, Scribe(FaceBook), Jconsole, Java Melody이 대표적이다. 최적화도구로 CPU, 메모리 사용량에 대한 Profiling과 분석을 지원하는 S/W도구를 사용, 극한의 성능구현한다.


4. 처리기술 도입 시 고려사항

빅데이터 기술 도입 시 고려사항 중 정보 관리를 위한 고려사항에 대해 알아보겠다. Technology vision 2011에 따르면, accenture 는 "애플리케이션의 시각에서 모든 것을 보는 시대는 이제 막을 내리고 있습니다.. 새로운 시대는 급격히 증가하는 데이터의 용량, 처리 속도 및 전달로 인해 IT책임자들은 데이터의 시각에서 세계를 보아야 할 것입니다"라고 선언했다. 실제로 데이터는 비즈니스의 중심으로 진출했으며, 기업들은 빅 데이터를 처리하기 위해 보다 데이터 중심적인 플랫폼의 관점에서 IT 프로젝트를 새롭게 평가하고 있다. 이는 정보 관리 전문가들이 이와 같은 "오랫동안 논의된" 주제에 대해 다음과 같은 5가지 고려 사항을 비롯해 새로운 관점에서 접근할 수 있는 기회이다. 첫 번째 사항으로 전통적인 데이터 샘플링에서 요구되는 가정이나 규칙보다 데이터 자체에 집중한다. 오늘날 정보 관리의 차이점은 기업들이 데이터를 통해, 특히 빅 트랜잭션 데이터와 인터랙션 데이터 (특히 소셜 인터랙션 데이터)를 결합할 수 있을 때 경영 성과를 향상시킬 수 있다는 것을 알고 있기 때문에 이제 과거보다 더 많은 데이터를 더욱 오랫동안 저장하고 있다는 것이다. 불과 몇 년 전까지만 하더라도 기업들은 보다 현명한 의사 결정 지원 및 운영을 위한 가정과 규칙을 개발하는데 많은 자원을 집중 투입했다. 하둡(hadoop)과 여타 저렴한 컴퓨팅 자원이 빠르게 발전함에 따라 "누락 데이터 방지" 방식의 접근 방법, 즉 모든 단일 데이터의 관리 및 처리가 가능한 시대로 진입하게 되었다. 이제 기업들은 데이터 자체에 초점을 맞출 수 있게 되었으며, 이는 추측 및 시행착오 방식을 생략할 수 있다는 것을 의미한다. 두 번째 사항으로 데이터 스킬에 대한 사고의 전환으로 해석, 분석 및 예측에 대한 발전이다. 데이터에 대한 플랫폼 접근 방법을 통해 데이터 검색, 수집 및 수정 등과 같은 사소한 작업들이 대폭 감소될 수 있다. IT와 현업 부서, 그리고 IT를 포함한 여러 그룹 간에 주고받는 작업들이 대폭 줄어들 수 있다. 이는 분석 작업에 대한 업무 설명에서 영역 전반에 대한 해석, 심층적인 분석 및 시나리오 분석을 포함한 예측 등에 대한 비중이 높아질 수 있다는 것을 의미한다. 현업 및 데이터 애널리스트들은 데이터 맥락에 대하여 그 어느 때보다 깊이 이해하고 있으며, IT 개발자와 아키텍쳐 팀은 "현재 상태 유지" 문제를 해결하는 데 대부분의 시간을 보내는 것이 아니라 부가 가치 높은 작업에 더 많은 시간을 할애할 수 있다. 이에 대한 영향은 각 기업마다 차이가 있지만, 각 기업들은 조직 차원의 설계 및 고용 전략에 대한 의미를 고려하는 것이 중요하다. 세 번째 사항으로 분산형 빠른 의사 결정이다. 향후에는 빅 데이터와 관련하여 작업 또는 트랜잭션을 완료하는데 소요되는 시간에 대한 중요성이 그 어느 때보다도 높아질 것이다. 또한 현업 부서 임원들은 영향을 받는 시점에 의사 결정을 내리는 것이 필수적일 뿐만 아니라 민첩성을 위한 주요 성공 요소라는 사실을 수용하고 있다. 투명성과 책임성은 이와 같은 분산 환경에서 그 중요성이 더욱 높아지고 있다. 성공적인 기업들은 직원 의사 결정, 동료 /고객/ 파트너와의 상호 작용, 그리고 기업 전반에서는 물론, 기업 외부로 확대되는 여타 활동에 대한 일관되고 포괄적인 뷰를 확보하고 있다. 소셜 미디어 및 응답 플랫폼을 포함하여 효과적인 커뮤니케이션, 협업 및 통일성을 보장하기 위한 데이터 통합이 고려되어야 한다. 데이터의 위치 또는 포맷에 독릭접인 데이터 중심 기업에서는 분산형 의사 결정 및 운영 지원을 위해 데이터 가상화와 mdm(master data management)에 대한 요구도 부각되고 있다. 네 번째 사항으로 프로세스와 데이터의 대치 국면의 해결이다. 오랫동안 데이터와 프로세스 간의 대치가 해결되지 않고 있다. 오늘날 엔터프라이즈 데이터 통합 플랫폼은 데이터와 프로세스를 분리하여 훨씬 단순화시키고 있다. 데이터를 논리적 데이터 객체로 표현할 수 있기 때문에 물리적 데이터와 결합시키지 않으면서 데이터를 표현하고 가공할 수 있으며 데이터 객체 및 추상 계층을 물리적 인터페이스와 별도로 처리할 수 있다. 기술 이외에도 기업들은 스킬, 지식 및 비즈니스 프로세스 소유권을 놓고 벌이는 프로세스와 데이터 간의 대치와 워크 플로우 툴과 전통적인 데이터 중심 툴 간의 대치를 해결하는데 따른 장애 요인들에 직면하고 있다. 조직들은 또한 비즈니스 프로세스와 비즈니스 규칙의 급속한 변화에도 긴밀히 대처해야 한다. 다섯 번째 사항으로 애플리케이션 중심에서 데이터 중심으로의 변화이다. 일정 시점에 이르면, 모든 애플리케이션은 구축 및 교체되지만, 데이터는 영원히 이어진다. 애플리케이션은 마이그레이션되거나 교체되지만, 데이터는 규제 준수, 분석 또는 여타 운영상의 이유로 완전히 폐기되지 않는다. 데이터 중심 관점에서 사물을 보는 새로운 시각은 항상 기회로 전환하기를 원했던 과제를 보는 획기적인 방법이다. 빅데이터에서 추출할 수 있는 맥락, 관계, 통찰력 및 영향을 통해 정보 관리의 안건을 새롭게 정비하고 데이터 중심의 시각을 채택함으로써 IT 투자에 대한 대화의 틀을 다시 짜는데 이상적인 입지를 확보할 수 있다.

 

 

 

출처 : http://kin.naver.com/open100/detail.nhn?d1id=1&dirId=10205&docId=1437394&qb=7ZWY65GhIHBvc3RncmVzcWw=&enc=utf8&section=kin&rank=2&search_sort=0&spq=0&pid=Se4gUloRR18ssuPocJ0sssssstd-105227&sid=rJQVKWb9pZn92QNucGVZkg%3D%3D