복붙노트

[HADOOP] Spark SQL / Hive / Presto를 사용하여 Parquet / S3에서 Redshift로 바로 복사 할 수 있습니까?

HADOOP

Spark SQL / Hive / Presto를 사용하여 Parquet / S3에서 Redshift로 바로 복사 할 수 있습니까?

S3에 저장되는 서버 데이터는 엄청나게 많습니다 (곧 Parquet 형식 임). 데이터 변환에는 약간의 변화가 필요하므로 S3에서 바로 복사 할 수 없습니다. Spark을 사용하여 데이터에 액세스 할 것입니다. 그러나 Spark로 조작하는 대신 S3으로 다시 쓰고 단계를 건너 뛰고 끌어서 변환 할 수 있다면 Redshift로 복사하는 것이 아닌지 궁금합니다. 데이터를 복사 한 다음 Redshift로 바로 복사 하시겠습니까?

해결법

  1. ==============================

    1.물론 가능합니다.

    물론 가능합니다.

    밑받침을 읽는 스칼라 코드 (여기에서 가져옴)

    val people: RDD[Person] = ... 
    people.write.parquet("people.parquet")
    val parquetFile = sqlContext.read.parquet("people.parquet") //data frame
    

    redshift에 쓰는 스칼라 코드 (여기에서 가져옴)

    parquetFile.write
    .format("com.databricks.spark.redshift")
    .option("url", "jdbc:redshift://redshifthost:5439/database?user=username&password=pass")
    .option("dbtable", "my_table_copy")
    .option("tempdir", "s3n://path/for/temp/data")
    .mode("error")
    .save()
    
  2. from https://stackoverflow.com/questions/36635241/can-you-copy-straight-from-parquet-s3-to-redshift-using-spark-sql-hive-presto by cc-by-sa and MIT license