2013-06-10 4 views
2

C# 및 MS SQL과 함께 ASP.net 3.5를 사용하여 실행중인 프로젝트에서 현재 데이터베이스 크기는 4TB가됩니다. 그것은 gradullay를 증가시킬 것이고, 그래서 우리는 해결책을 찾고 있습니다. 일부 1은 BigData에 대해 (하이브 + 하둡 사용) 알려 줬습니다. 그리고 그는 다음과 같은 참조를주고 있었다 https://cwiki.apache.org/confluence/display/Hive/GettingStarted http://www.codeproject.com/Articles/398563/Analyzing-some-Big-Data-Using-Csharp-Azure-And-Apa 나는이 2 개의 링크를 읽었지만 유감스럽게도 그들은 meand !!!를 이해하지 못하고있다. 그래서 아무도 내가 어떻게 할 수 있는지 설명해 주시겠습니까? MSSQL을 Hadoop으로 마이그레이션해야합니까? 하드웨어 및 소프트웨어 요구 사항에 대해 hadoop 변경을 알려주십시오. 현재 데이터베이스를 hadoop으로 마이그레이션 할 수 있습니까? 나는 주로 데이터를 검색하고 멀티 트랜잭션을 지원하지 않기 위해 일부웨어를 읽었다. 가능하면 기존 프로젝트로 얼마만큼 작업하고 싶습니까? 이 TB 이상, 400-500 데이터 삽입 및 트랜잭션이 있습니다.SQL to BigData Migration?

+0

몇 테라 바이트가 다른 데이터베이스로 전환해서는 안됩니다. MS SQL은 아무 문제없이 그것을 처리 할 수 ​​있어야합니다. 그 크기에 대한 당신의 "문제"는 무엇입니까? 공연? 데이터 삽입/업데이트 또는 선택? –

+0

성능 및 4TB는 우리의 actaul 크기라고 생각하지 않습니다. 백업 크기는 3 개월입니다. 3 년 이상 유지해야하므로 크기가 10 배가됩니다. – Haris

+0

음수가 5000+ TB가 될 때까지 전환을 고려하지 않습니다. 그럼에도 불구하고 전환하는 대신 몇 년마다 백업을 만들 것입니다. DB 디자인이 올바른지 확인하십시오. 2 개의 트리거를 많이 사용하지 마십시오. 성능을 위해 키와 색인을 최적으로 유지하십시오. MSSQL 사양은 http://msdn.microsoft.com/en-us/library/ms143432.aspx를 참조하십시오. –

답변

1

내 경험을 공유 할 것입니다. 우선, Hadoop이 필자의 요구 사항에 부합하는지 아닌지 분석 할 것입니다. Hadoop은 전통적인 RDBMS를 대체하지 않습니다. 실시간 쿼리에 사용되는 RDBMS와 달리 offline batch processing이라는 전혀 다른 목적으로 사용됩니다. 따라서 실시간 요구가 있다면 다시 생각하는 것이 좋습니다. 그런 경우 HBase과 같은 것이 필요합니다.

여기에 표시된 첫 번째 링크는 약 Hive입니다. Hive는 기존 Hadoop 클러스터에서 실행되는 데이터웨어 하우스입니다. 이와 함께 SQL 인터페이스와 같은 인터페이스를 제공하므로 SQL 백그라운드에서보다 쉽고 편리하게 쿼리 할 수 ​​있습니다. Hive는 HDFS (Hadoop 파일 시스템) 위에 하이브 테이블로 데이터를 저장합니다. 하지만 하이브는 실시간으로는 적합하지 않습니다. Hadoop 데이터에 대해 실시간 쿼리를 수행하려면 Impala이 적합 할 수 있습니다.

두 번째 링크는 C# 및 Microsoft Windows Azure에서 Apache Hadoop을 사용하는 방법을 보여줍니다. Azure는 Microsoft의 클라우드 플랫폼입니다. 이 here에 대한 자세한 내용을 확인할 수 있습니다. 이 링크는 MapReduce 프로그램을 작성하는 방법을 보여줍니다. MapReduce는 분산 및 병렬 방식으로 대량의 데이터를 처리 할 수있는 계산 프레임 워크입니다.

원래 Hadoop은 Linux에서 사용하도록 개발되었습니다. 그러나 이제 Azure와 HDP과 같은 예의 솔루션 인 Windows에서도 유연하게 사용할 수 있습니다.

하둡은 특별한 소프트웨어 (ssh, 적절한 언어 번역기 등과 같은 기본적인 것들을 제외하고) 또는 정교한 하드웨어를 필요로하지 않습니다. 그것은 상용 하드웨어에서 실행하기위한 것입니다. 하지만 사양을 계속 유지하면서 공급 업체를 지정하고 싶을 수도 있습니다.

자신의 프로그램을 작성하거나 Sqoop과 같은 더 높은 수준의 도구를 사용하여 SQL 데이터를 Hadoop 클러스터로 쉽게 이동할 수 있습니다.

검색 만이 Hadoop이 사용되는 영역이 아닙니다. 이는 Hadoop을 사용하여 해결할 수있는 일반적인 문제에 대해 알려주는 매우 좋은 link입니다.

희망 사항이 질문에 대한 답변입니다. 추가 문의 사항이 있으면 알려주십시오.

하둡은 기본적으로 2 가지 - 분산 파일 시스템 (HDFS)과 처리 프레임 워크 (맵리 듀스)입니다 : 귀하의 코멘트에 대한 응답으로


.파일 시스템이기 때문에 임의의 읽기/쓰기 기능이 없습니다. 여기서 HBase와 같은 데이터베이스가 나타납니다. 또한 Hadoop은 데이터를 파일로 저장하고 HBase가 수행하는 열로 저장하지 않습니다.

하이브를 통해 HDFS에 저장된 데이터를 쿼리하려면 HDFS 파일을 하이브의 테이블로 매핑하고 HiveQL을 사용하여 쿼리하십시오. 당신이이 개 필드 번호와 이름이 HDFS에 'file.txt를'이라는 파일, 당신은 같은 것을 할 것입니다 있다고 가정하자 :

hive> CREATE TABLE demo (no INT, name STRING); 
hive> LOAD DATA INPATH '/file.txt' INTO TABLE demo; 
hive> Select * FROM demo; 
+0

변덕스러운 충고에 감사드립니다. 나는 Hadoops가 데이터베이스가 아니라 분산 데이터 저장소 (어떤 테이블 구조도 아니라 컬럼 지향형 구조체를 의미 함)가 아니라는 것을 많이 이해하고 있습니다. 그리고 우리는 Hive를 quering에 사용할 수 있습니다. 괜찮 니? 그렇다면 왜 HBASE를 Column 기반의 데이터 구조로 선호 하는가? 이제 Hadoop에서 간단한 테이블을 만들고 싶습니다. 다시 쿼리를 원합니다 (Simple Select Query). 나를 도와 주실 수있으세요 ? possobile 경우 나에게 예제를 보여주십시오 !!!. 나는이 링크를 들었다. http://www.windowsazure.com/en-us/pricing/free-trial/ 우리는 haddop 플랫폼을 얻을 수 있는가? – Haris

+0

당신은 오신 것을 환영합니다. 수정 된 답변을 참조하십시오. – Tariq

+0

Ok thaks하지만 HDFC (파일 시스템)를 사용하면 물리적으로 txt 파일처럼 보였으므로 의심의 여지가 없습니다. 그래서 열이 없다고 생각할 수 있습니다. 그러나 HBASE의 경우 물리적으로 어떻게 보이나요? hadoop에 대한 http : //hortonworks.com/products/sandbox-instructions/는 도움이되는 링크입니까? – Haris

0

으로 많은 사람들이 지적은 4TB 데이터베이스를 이동하는 이유가 아니다 Hadoop + Hive로 이동합니다. SQL을 사용하여 옵션을 찾기 위해 해결할 수없는 문제가 있습니다.

그냥 생각해 보면 인프라가 당신과 함께 성장할 수 있도록 Azure로 이동하는 것이 고려 되었습니까?

0

Sqoop은 MS SQL 데이터베이스에서 Hadoop File System으로 데이터를 가져 오기 위해 필요한 도구라고 생각합니다. 어떤 데이터가 어떤 테이블에서 이미 가져 왔는지 따를 수 있으므로 데이터를 다시 가져 오지 않습니다. 여기

그것이 작동하는 방법이다 :

sqoop import --connect 'jdbc:sqlserver://<IP>;username=dbuser;password=dbpasswd;database=<DB>' --table <table> --target-dir /path/to/hdfs/dir 

기록이 (하나 개의 레코드 라인 당) 텍스트 파일로 저장하거나, 브로 또는 SequenceFiles 이진 표현 될 수있다.

sqoop export 명령을 사용하면 HDFS에서 MS SQL Server로 다시 내보낼 수 있습니다.