Metadata API, Data Lake Formation (DLF) meta verilerine erişmek için Paimon tarafından sağlanan standart ve açık kaynaklı bir arayüzdür. Metadata API'nin SDK bağımlılığı yalnızca Paimon ile ilgili sınıfları içerir; bu nedenle uygulamanızın diğer bağımlılıklarıyla çakışma yaşanmaz.
Erişim uç noktası seçme
DLF metadata API iki farklı uç nokta üzerinden kullanılabilir. İstemcinizin çalıştığı konuma göre bir uç nokta seçin:
DLF VPC uç noktası (Önerilen) — DLF izin listesine eklenmiş bir VPC içinden düşük gecikme süresiyle erişim sağlar. Bu konudaki örneklerde DLF VPC uç noktası kullanılır.
Alibaba Cloud OpenAPI uç noktası — Genel ağ erişimi sağlar; bölge dışından erişim ve yerel hata ayıklama gibi senaryolara hizmet eder. OpenAPI uç noktası için imza desteği, Paimon istemcisinin 1,4 veya sonraki bir sürümünü gerektirir. Bu sürüm, bu konuda Maven bağımlılığında kullanılan SDK sürümünden daha yenidir.
Ön koşullar
Bir VPC'yi izin listesine eklemeden, bir role izinler atamadan, Maven bağımlılığını eklemeden ve DLF metadata API'sini çağırmadan önce aşağıdaki gereksinimlerin karşılandığından emin olun:
Ağ erişimi — Varsayılan olarak DLF metadata API'ye yalnızca izin listesindeki VPC'lerden erişilebilir. DLF VPC uç noktası üzerinden DLF'ye erişirken istemcinizin izin listesindeki bir VPC içinde çalışması gerekir.
Çalışma zamanı ortamı ve rol — Elastic Compute Service (ECS) rolü kimlik doğrulaması kullanırken istemciniz, bir ECS rolüne bağlı bir ECS örneği veya E-MapReduce (EMR) küme düğümü üzerinde çalışır.
DLF katalogu — Bir DLF katalogu mevcuttur ve ECS rolüne bu katalog üzerinde izinler verilmiştir.
Yetkilendirme kimlik bilgileri — ECS rolüne RAM izinleri atamak için gerekli olan bir Alibaba Cloud hesabınız veya Resource Access Management (RAM) yönetici kimlik bilgileriniz vardır.
İstemci sürümü — Paimon istemcisi, önceki bölümde açıklanan şekilde kullandığınız uç noktanın sürüm gereksinimini karşılar.
VPC izin listesi yapılandırma
DLF'yi etkinleştirdiğinizde sistem, mevcut bölgenizdeki VPC kimliklerini kullanıcı düzeyindeki izin listesine otomatik olarak eşitler. Daha sonra bir VPC eklemek için DLF konsolunda ilgili VPC kimliğini girin:
Data Lake Formation (DLF) konsolu adresinde oturum açın.
Sol gezinme bölmesinde System & Security öğesine tıklayın.
System & Security sekmesine tıklayın ve ardından Add VPC seçeneğine tıklayın.
Görüntülenen iletişim kutusunda DLF metadata API'ye eriştiğiniz VPC'nin kimliğini girin ve OK seçeneğine tıklayın.
Bir role DLF izinleri verme
ECS rolüne iki ayrı izin kümesi verin: RAM konsolundaki RAM izinleri ve DLF konsolundaki katalog izinleri. Örneğin, bir EMR kümesi için rol AliyunECSInstanceForEMRRole şeklindedir.
-
ECS rolüne RAM izinleri verin.
Alibaba Cloud hesabınızla veya bir RAM yöneticisi olarak Resource Access Management (RAM) konsolu adresinde oturum açın.
Identities > Roles yolunu izleyin ve ECS rolünü arayın.
Actions sütununda Add Permissions seçeneğine tıklayın.
Policies alanında
AliyunDLFFullAccessilkesini arayıp seçin ve ardından OK seçeneğine tıklayın.
-
ECS rolüne DLF izinleri verin.
Data Lake Formation (DLF) konsolu adresinde oturum açın.
Catalogs sayfasında hedef kataloğun adına tıklayın.
Permissions sekmesine tıklayın ve ardından Grant Permissions seçeneğine tıklayın.
-
Yetkilendirme sayfasında aşağıdaki parametreleri yapılandırın ve OK seçeneğine tıklayın.
Principal: Bir RAM kullanıcısı veya RAM rolü seçin.
-
Select DLF User: Açılan listeden ECS Role seçeneğini belirleyin.
NotKullanıcı açılan listesinde ECS Role görünmüyorsa System & Security > Access Control > Users yolunu izleyin ve ardından Sync Users seçeneğine tıklayın.
Predefined Permission Type: Data Editor seçeneğini belirleyin.
REST API istemcisi oluşturma
Java uygulamanızdan DLF metadata API'sini çağırmak için bir REST API istemcisi oluşturun.
Maven bağımlılığı ekleme
API SDK'sına Java projenizde başvurmak için aşağıdaki Maven bağımlılığını ekleyin:
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-api</artifactId>
<version>1.3.0</version>
</dependency>
JAR dosyasını doğrudan da indirebilirsiniz: paimon-api-1.3.0.jar.
İstemciyi başlatma ve API'yi çağırma
Çalışma zamanı ortamınıza göre DLF REST hizmeti için bir kimlik doğrulama yöntemi seçin:
ECS rolü (Önerilen) — İstemcinin üzerinde çalıştığı ECS örneği aracılığıyla geçici bir belirteç sağlar. Aşağıdaki örnek bu yöntemi kullanır.
AccessKey çifti —
RESTCatalogOptionsiçindeDLF_ACCESS_KEY_IDveDLF_ACCESS_KEY_SECRETdeğerlerini yapılandırarak DLF REST hizmetine doğrudan bağlanır. Çalışma zamanı ortamınızda bir ECS rolü yoksa bu yöntemi kullanın.
Aşağıdaki örnek, bir ECS rolüyle kimlik doğrulaması yapan bir RESTApi istemcisi oluşturur ve ardından bir veritabanındaki tabloları listeler. Uç noktayı, katalog adını dlf_test ve veritabanı adını my_database kendi bölge uç noktanızın, DLF kataloğunuzun ve veritabanınızın değerleriyle değiştirin.
import org.apache.paimon.options.Options;
import org.apache.paimon.rest.RESTApi;
import static org.apache.paimon.options.CatalogOptions.WAREHOUSE;
import static org.apache.paimon.rest.RESTCatalogOptions.DLF_TOKEN_LOADER;
import static org.apache.paimon.rest.RESTCatalogOptions.TOKEN_PROVIDER;
import static org.apache.paimon.rest.RESTCatalogOptions.URI;
public class RESTApiExample {
public static void main(String[] args) {
Options options = new Options();
options.set(URI, "http://cn-hangzhou-vpc.dlf.aliyuncs.com");
options.set(WAREHOUSE, "dlf_test");
options.set(TOKEN_PROVIDER, "dlf");
options.set(DLF_TOKEN_LOADER, "ecs");
RESTApi api = new RESTApi(options);
System.out.println(api.listTables("my_database"));
}
}
Örnek, belirtilen veritabanı için listTables çağrısının döndürdüğü sonucu yazdırır.
Aşağıdaki tabloda parametreler açıklanmaktadır.
| Parameter | Description | Required | Example |
| URI | DLF REST Catalog Server'a erişmek için kullanılan URI, http://[region-id]-vpc.dlf.aliyuncs.com biçimindedir. Bölge kimlikleri ve OpenAPI uç noktaları için bkz. Uç Noktalar. |
Yes | http://cn-hangzhou-vpc.dlf.aliyuncs.com |
| WAREHOUSE | DLF kataloğunun adı. | Yes | dlf_test |
| TOKEN_PROVIDER | Belirteç sağlayıcısı. Değeri dlf olarak ayarlayın. |
Yes | dlf |
| DLF_TOKEN_LOADER | Belirteç yükleyicisi. Bir ECS örneği aracılığıyla geçici bir belirteç sağlamak için değeri ecs olarak ayarlayın. ECS rolüyle kimlik doğrulaması yaptığınızda bu parametreyi ayarlayın. |
No | ecs |
| DLF_ACCESS_KEY_ID | ECS tabanlı kimlik doğrulama yerine DLF REST hizmetine doğrudan bağlanmak için kullanılan AccessKey kimliği. Bu parametreyi RESTCatalogOptions içinde yapılandırın. |
No | - |
| DLF_ACCESS_KEY_SECRET | ECS tabanlı kimlik doğrulama yerine DLF REST hizmetine doğrudan bağlanmak için kullanılan AccessKey gizli anahtarı. Bu parametreyi RESTCatalogOptions içinde yapılandırın. |
No | - |