Tüm Ürünler
Search
Belge Merkezi

MaxCompute:Spark Connector

Son Güncelleme:Oct 04, 2026

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

  1. MaxCompute'u etkinleştirin ve bir MaxCompute projesi oluşturun.

  2. Data Transmission Service için özel kaynak grubu satın alın (abonelik) .

  3. Spark geliştirme ortamını kurun.

    Spark 3.2.x - Spark 3.5.x sürümleri için Spark paketini indirmek üzere Spark adresine tıklayın ve ardından paketi yerel bir klasöre açın.

    1. Spark geliştirme ortamını bir Linux işletim sisteminde kurmak için bkz. Linux geliştirme ortamı oluşturma.

    2. Spark geliştirme ortamını bir Windows işletim sisteminde kurmak için bkz. Windows geliştirme ortamı oluşturma.

  4. 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 clone komutunu 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/
  5. MaxCompute hesap erişim bilgilerini yapılandırın.

    Spark kurulumunuzun conf klasöründe bir spark-defaults.conf dosyası oluşturun:

    cd $SPARK_HOME/conf
    vim spark-defaults.conf

    spark-defaults.conf dosyası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
  6. Spark bağlayıcısı aracılığıyla MaxCompute'a erişin.

    1. Spark SQL istemcisini başlatmak için Spark kurulumunuzun bin klasöründe aşağıdaki komutu çalıştırın:

      cd $SPARK_HOME/bin
      spark-sql
    2. 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.

    3. Bir tablo oluşturun:

      CREATE TABLE odps.doc_test.mc_test_table (name STRING, num BIGINT);
    4. Tablodan veri okuyun:

      SELECT * FROM odps.doc_test.mc_test_table;
    5. 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);
    6. 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)
    7. Tabloyu silin:

      DROP TABLE IF EXISTS odps.doc_test.mc_test_table;