Datameer의 여러 추출 작업 (Rapid ETL/BI 도구, hadoop 상단에 위치)이 salesforce 객체에서 데이터를 읽습니다. 가장 큰 추출물은 1.4GB (작업 개체)이고 가장 작은 추출물은 96MB (계정 개체)입니다. Datameer는 REST API 기반 커넥터를 사용하며 커넥터에 SOQL 쿼리가 제공되고 그에 따라 레코드가 페치됩니다 (https://documentation.datameer.com/documentation/display/DAS60/Salesforce).salesforce에서 데이터를 추출하는 동안 작업을 매핑하는 작업이 하나뿐입니다.
Datameer는 작업을 컴파일하고 실행 프레임 워크 (Tez)로 넘깁니다. 또한 작업 별 구성도 없습니다.
모든 salesforce 추출 작업은 1 개의 맵 작업으로 실행됩니다.
그러나,
플랫 파일에서 데이터를 읽을 datameer 다른 추출 작업이 있습니다 - SFTP 서버에 (50 ~ 200 MB) 3-5지도 작업 사이에 사용.
SOQL 소개는 : 플랫 파일의 데이터가 여러지도 작업을 실행하는 것을 고려
- 문제가 SOQL에 해당하지 : https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_changing_batch_size.htm SOQL 배치
내 질문 당 2,000 레코드 최대를 가져옵니다 일괄 처리 크기는 요청 당 2000 레코드만을 가져 오므로 1 매퍼 만 할당됩니다.
- 과 같은 소스를 다루는 경우 MR 프로그램이 입력 추출의 총 크기를 어떻게 결정합니까?
데이터베이스를 기반으로하는 salesforce 또는 그와 관련한 소스도 마찬가지입니다.
환경 정보 : 호튼 웍스 2.7.1
Cores Per Data node=8
RAM per Data node=64GB
No of datanodes = 6
Block Size : 128 MB
Input Split info:
mapreduce.input.fileinputformat.split.maxsize=5368709120 (5 GB)
mapreduce.input.fileinputformat.split.minsize=16777216 (16 MB)
Execution Framework: Tez
Memory Sizes: <property> <name>mapreduce.map.memory.mb</name> <value>1536</value> </property><property> <name>mapreduce.reduce.memory.mb</name> <value>2048</value> </property><property> <name>mapreduce.map.java.opts</name> <value>-Xmx1228m</value> </property><property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx1638m</value> </property>
<property> <name>yarn.app.mapreduce.am.resource.mb</name> <value>1024</value> </property><property> <name>yarn.app.mapreduce.am.command-opts</name> <value>-Xmx819m -Dhdp.version=${hdp.version}</value> </property>
Compression is enabled:
<property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.SnappyCodec</value> </property> mapreduce.output.fileoutputformat.compress=true
mapreduce.output.fileoutputformat.compress.type=BLOCK
mapreduce.map.output.compress=true
mapred.map.output.compression.type=BLOCK