MaxCompute açık depolama, Spark'ın bir bağlayıcı aracılığıyla Storage API çağrısı yapmasına ve verileri doğrudan MaxCompute'dan okumasına olanak tanır. Bu yaklaşım veri okuma sürecini basitleştirir ve erişim performansını artırır. Spark ile MaxCompute veri depolamanın entegrasyonu, verimli, esnek ve güçlü veri işleme ve analiz yetenekleri sunar.
Kapsam
-
Üçüncü taraf bir motor MaxCompute'a eriştiğinde:
Standart tablolar, bölümlenmiş tablolar, kümeleme yapılmış tablolar, Delta Tablolar ve materyalleştirilmiş görünümlerden veri okuyabilirsiniz.
MaxCompute yabancı tablolarından veya mantıksal görünümlerinden veri okuyamazsınız.
Bağlayıcı, JSON veri türünün okunmasını desteklemez.
Yordam
MaxCompute'u etkinleştirin ve bir MaxCompute projesi oluşturun.
Data Transmission Service için özel kaynak grubu satın alın (abonelik) .
-
Spark geliştirme ortamını kurun.
Spark 3.2.x - Spark 3.5.xsürümleri için Spark paketini indirmek üzere Spark adresine tıklayın ve ardından paketi yerel bir klasöre açın.Spark geliştirme ortamını bir Linux işletim sisteminde kurmak için bkz. Linux geliştirme ortamı oluşturma.
Spark geliştirme ortamını bir Windows işletim sisteminde kurmak için bkz. Windows geliştirme ortamı oluşturma.
-
Spark bağlayıcısını indirin ve derleyin. Şu anda yalnızca Spark 3.2.x ile 3.5.x arasındaki sürümler desteklenir. Bu konuda örnek olarak Spark 3.3.1 kullanılır.
Spark bağlayıcı paketini indirmek için
git clonekomutunu kullanın. Ortamınızda Git'in yüklü olduğundan emin olun. Aksi takdirde komutu çalıştırdığınızda hata alırsınız.## Download the Spark connector. git clone https://github.com/aliyun/aliyun-maxcompute-data-collectors.git ## Switch to the spark-connector folder. cd aliyun-maxcompute-data-collectors/spark-connector ## Compile the connector. mvn clean package ## Location of the datasource JAR package. datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar ## Copy the datasource JAR package to the $SPARK_HOME/jars/ folder. cp datasource/target/spark-odps-datasource-3.3.1-odps0.43.0.jar $SPARK_HOME/jars/ -
MaxCompute hesap erişim bilgilerini yapılandırın.
Spark kurulumunuzun
confklasöründe birspark-defaults.confdosyası oluşturun:cd $SPARK_HOME/conf vim spark-defaults.confspark-defaults.confdosyasına aşağıdaki hesap bilgilerini ekleyin:## Configure the account in spark-defaults.conf. spark.hadoop.odps.project.name=doc_test spark.hadoop.odps.access.id=L******************** spark.hadoop.odps.access.key=******************* spark.hadoop.odps.end.point=http://service.cn-beijing.maxcompute.aliyun.com/api spark.hadoop.odps.tunnel.quota.name=ot_xxxx_p#ot_xxxx ## Configure the MaxCompute catalog. spark.sql.catalog.odps=org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog spark.sql.extensions=org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions -
Spark bağlayıcısı aracılığıyla MaxCompute'a erişin.
-
Spark SQL istemcisini başlatmak için Spark kurulumunuzun
binklasöründe aşağıdaki komutu çalıştırın:cd $SPARK_HOME/bin spark-sql -
MaxCompute projesindeki tabloları sorgulayın:
SHOW tables in odps.doc_test;doc_testörnek bir MaxCompute proje adıdır. Bunu kendi MaxCompute projenizin adıyla değiştirin. -
Bir tablo oluşturun:
CREATE TABLE odps.doc_test.mc_test_table (name STRING, num BIGINT); -
Tablodan veri okuyun:
SELECT * FROM odps.doc_test.mc_test_table; -
Bölümlenmiş bir tablo oluşturun:
CREATE TABLE odps.doc_test.mc_test_table_pt (name STRING, num BIGINT) PARTITIONED BY (pt1 STRING, pt2 STRING); -
Bölümlenmiş tablodan veri okuyun:
SELECT * FROM odps.doc_test.mc_test_table_pt;Aşağıdaki çıktı döner:
test1 1 2018 0601 test2 2 2018 0601 Time taken: 1.312 seconds, Fetched 2 row(s) -
Tabloyu silin:
DROP TABLE IF EXISTS odps.doc_test.mc_test_table;
-