Таким образом, я нахожусь в сценарии, чтобы быстро получить CSV-форму экспорта 300 ГБ oracle db и сохранить ее в S3 для анализа Spark / Hive, спул очень медленный, SQL-разработчик очень медленный. Хорошо, что дальше?
https://github.com/hyee/OpenCSV
Супер быстро.
Другое быстрое решение, хотя я думаю, что оно медленнее, чем выше, будет использовать Spark напрямую:
query = "(select empno,ename,dname from emp, dept where emp.deptno = dept.deptno) emp"
empDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:oracle:thin:username/password@//hostname:portnumber/SID") \
.option("dbtable", query) \
.option("user", "db_user_name") \
.option("password", "password") \
.option("driver", "oracle.jdbc.driver.OracleDriver") \
.load()
empDF.printSchema()
empDF.show()
# Write to S3
empDF.write().format(“orc/parquet/csv.gz”).save(“s3://bucketname/key/”)
Конечно, вы можете перераспределить и выполнить некоторые другие оптимизации.