dsbulk unload 명령을 실행하고 싶지만 내 카산드라 클러스터에 내보내려는 테이블에 ~ 1tb의 데이터가 있습니다. 디스크에 쓰는 대신 dsbulk unload 명령을 실행하고 데이터를 s3로 스트리밍하는 방법이 있습니까?
내 개발 환경에서 다음 명령을 실행하고 있지만 분명히 이것은 내 컴퓨터의 디스크에 쓰는 것입니다.
bin/dsbulk unload -k myKeySpace -t myTable -url ~/data --connector.csv.compression gzip
기본적으로 "기본적으로"지원하지 않습니다. 이론적으로 DSBulk는 이제 오픈 소스 이므로 구현할 수 있지만 누군가가 수행해야합니다.
업데이트 : 해결 방법은 Adam이 지적한대로 aws s3 cp
다음과 같이 DSBulk에서 사용 하고 파이프하는 것입니다.
dsbulk unload .... |aws s3 cp - s3://...
그러나 제한이 있습니다. 언로드는 한 스레드에서 수행되므로 언로드가 훨씬 느려질 수 있습니다.
단기적으로 Spark Cassandra Connector와 함께 로컬 마스터 모드에서 Apache Spark를 사용할 수 있습니다 (Spark 2.4의 경우).
spark-shell --packages com.datastax.spark:spark-cassandra-connector-assembly_2.11:2.5.1
그리고 내부 :
val data = spark.read.format("org.apache.spark.sql.cassandra")\
.options(Map( "table" -> "table_name", "keyspace" -> "keyspace_name")).load()
data.write.format("json").save("s3a://....")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다