MaxCompute istemcisi (odpscmd), yerel makinenizden komutları çalıştırmanıza ve projeleri yönetmenize olanak tanıyan bir komut satırı arayüzüdür. Bu konuda odpscmd'nin nasıl indirileceği, yükleneceği, yapılandırılacağı ve kullanılacağı açıklanmaktadır.
Önkoşullar
MaxCompute istemcisi için Java 8 veya sonraki bir sürüm gereklidir.
-
Sürüm uyumluluğu
MaxCompute istemci v0.28.0 ve sonraki sürümler JDK 1.9 ve üzerini destekler. v0.28.0 öncesi sürümler yalnızca JDK 1.8'i destekler. MaxCompute istemcisini başlattıktan, istemci sürümünü komut satırı arayüzünde görüntüleyebilirsiniz.
MaxCompute istemcisinin çıktı biçimi geriye dönük olarak uyumlu değildir. Komut biçimleri ve davranışları istemci sürümleri arasında farklılık gösterebilir. Ayrıştırma amacıyla istemci çıktı biçimine güvenmeyin.
Diğer istemci sürümleri için bkz. aliyun-odps-console.
-
Karakter kodlaması
İstemci varsayılan olarak UTF-8 kullanır. Yerel ortamınızın karakter kodlaması UTF-8 değilse, bir MaxCompute tablosundan Çince karakterler içeren verileri sorgularken veya bu tür yerel dosyaları yüklemek için Tunnel komutunu kullanırken bozuk karakterler görünebilir.
Faturalama
MaxCompute istemcisini kullanarak bir projeye bağlanmak ücretsizdir, ancak istemci aracılığıyla gerçekleştirilen işlemler MaxCompute faturalandırmasına tabidir. Örneğin, bir SQL sorgusu göndermek hesaplama kaynaklarını tüketir ve veri yazmak depolama alanı kullanır. Bu durum, hesaplama ve depolama maliyetlerine yol açar. MaxCompute faturalandırması hakkında daha fazla bilgi için bkz. Faturalandırılan öğeler ve faturalandırma yöntemleri.
Talimatlar
odpscmd kurulumu ve yapılandırılması
odpscmd v0.27.0 ve sonraki sürümler MaxCompute 2.0 veri türlerini destekler. Bu veri türlerini kullanmanızı öneririz. Desteklenen veri türlerinin listesi için bkz. Veri Türleri (V2.0).
Yordam
-
odpscmd kurulum paketini GitHub üzerinden indirin.
NotSürüm sayfasına erişerek odpscmd kurulum paketinin (odpscmd_public.zip) en son sürümünü indirin.
Paketi GitHub bağlantısından indiremiyorsanız odpscmd kurulum paketini OSS üzerinden indirmeyi deneyin. GitHub'a erişim sorunları yaşıyorsanız çevrimiçi çözüm aramanızı öneririz.
İndirdiğiniz paketi çıkarın. Çıkarılan dizinde bin, conf, lib ve plugins klasörleri bulunur.
-
conf klasörüne gidin ve odps_config.ini dosyasını yapılandırın.
odps_config.ini dosyasında kare işareti (#) yorum satırını belirtir. Aşağıdaki tabloda parametrelerin açıklamaları verilmiştir.
Parametre
Gerekli
Açıklama
Örnek
project_name
Evet
Hedef MaxCompute projesinin adı.
Standart modda bir çalışma alanı oluşturduysanız project_name parametresini yapılandırırken üretim ortamı ile geliştirme ortamı (_dev) proje adlarını ayırt edin. Daha fazla bilgi için bkz. Çalışma alanı modları arasındaki farklar.
-
MaxCompute konsolu oturumunu açın ve sol üst köşeden bir bölge seçin.
-
Sol gezinme bölmesinde seçeneğini belirleyin.
-
Projects sayfasında MaxCompute proje adınızı görüntüleyin.
doc_test_dev
access_id
Evet
Alibaba Cloud hesabınızın veya RAM kullanıcınızın AccessKey ID'si. AccessKey ID'yi AccessKey Management sayfasından edinin.
Yok
access_key
Evet
AccessKey ID ile eşleşen AccessKey Secret.
Yok
end_point
Evet
MaxCompute hizmetinin uç noktası.
Uç noktayı MaxCompute projenizin bulunduğu bölgeye ve ağ bağlantısı türüne göre yapılandırmanız gerekir. Farklı bölgeler ve ağ türleri için uç nokta listesi için bkz. Uç Noktalar.
Önemli-
Bir uç nokta MaxCompute hizmetine bağlanırken tünel uç noktası MaxCompute Tunnel hizmetine bağlanır. Burada MaxCompute hizmeti için uç noktayı belirtin.
-
Yanlış uç nokta yapılandırması erişim hatasına neden olur.
http://service.cn-hangzhou.maxcompute.aliyun.com/api
log_view_host
Hayır
LogView URL'si. Bu parametreyi yapılandırmanızı öneririz. Yapılandırmazsanız iş başarısızlığının nedenini hızlıca tespit edemezsiniz.
Ayrıntılı iş çalışma zamanı bilgilerini görüntülemek ve hataları gidermek için bu URL'yi kullanın. Sabit değer http://logview.odps.aliyun.com şeklindedir.
http://logview.odps.aliyun.com
https_check
Hayır
MaxCompute projesine erişim isteklerini şifrelemek için HTTPS'nin etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:
-
True: HTTPS'yi etkinleştirir.
-
False: HTTP kullanır.
Varsayılan değer False'dur.
True
data_size_confirm
Hayır
GB cinsinden maksimum giriş veri boyutu. Bu değerin üst sınırı yoktur. Önerilen değer: 100.
100
update_url
Hayır
Bu parametre gelecekteki kullanım için ayrılmıştır.
Yok
use_instance_tunnel
Hayır
SQL çalıştırma sonuçlarını indirmek için InstanceTunnel kullanılıp kullanılmayacağını belirtir. Geçerli değerler:
-
True: SQL çalıştırma sonuçlarını indirmek için InstanceTunnel kullanılır.
-
False: SQL çalıştırma sonuçlarını indirmek için InstanceTunnel kullanılmaz.
Varsayılan değer False'dur.
True
instance_tunnel_max_record
Hayır
Bir SQL çalıştırma sonucundaki maksimum kayıt sayısı. use_instance_tunnel değeri True olarak ayarlanırsa bu parametreyi yapılandırmanız gerekir. Maksimum değer 10.000'dir.
10000
tunnel_endpoint
Hayır
Tunnel hizmeti için genel uç nokta.
-
Bu parametreyi yapılandırmazsanız Tunnel istekleri otomatik olarak MaxCompute hizmetinin ağına karşılık gelen tünel uç noktasına yönlendirir.
-
Bir tünel uç noktası yapılandırırsanız Tunnel bu değeri kullanır ve otomatik yönlendirme yapmaz.
Farklı bölgeler ve ağ türleri için tünel uç nokta listesi için bkz. Uç Noktalar.
http://dt.cn-hangzhou.maxcompute.aliyun.com
set.<key>
Hayır
MaxCompute projesi için bir özellik ayarlar.
Özellikler hakkında daha fazla bilgi için bkz. özellik listesi.
set.odps.sql.decimal.odps2=true
Yukarıdaki bilgilerin doğru şekilde yapılandırıldığından emin olun. Yanlış yapılandırmalar proje bağlantı hatalarına neden olabilir.
-
MaxCompute istemcisini başlatın
MaxCompute istemcisini bir RAM kullanıcısı olarak kullanıyorsanız, Alibaba Cloud hesabınızı kullanarak bu RAM kullanıcısını hedef MaxCompute projesine ekleyin. Kullanıcı ekleme hakkında daha fazla bilgi için bkz. Diğer kullanıcılara izin verin.
-
MaxCompute istemcisini başlatmak için aşağıdaki yöntemlerden birini kullanın:
Betik dosyası
MaxCompute istemci kurulumunuzun bin dizininde Windows için
odpscmd.batveya macOS içinodpscmddosyasına çift tıklayarak istemciyi başlatın. Aşağıdaki çıktı, MaxCompute projesine başarıyla bağlanıldığını gösterir.odpscmd Aliyun ODPS Command Line Tool Version 0.4xxx @Copyright 2020 Alibaba Cloud Computing Co., Ltd. All rights reserved. Connecting to http://service.xxx.maxcompute.aliyun.com/api, project: xxx Executing predefined SET command: SET odps.sql.hive.compatible=true OK Endpoint: http://service.xxx.maxcompute.aliyun.com/api Project: xxx Schema: default Quota: default in region N/A Timezone: Asia/Shanghai Connected!Komut satırı penceresi
Bir komut satırı penceresinde MaxCompute istemci kurulumunuzun bin dizinine gidin. Windows'ta
odpscmdveya Linux/macOS'tash odpscmdkomutunu çalıştırarak istemciyi başlatın. Başarılı bağlantı mesajı, istemcinin MaxCompute projesine bağlandığını gösterir.NotUbuntu'da
sh odpscmdkomutu hata döndürür. Bunun yerine./odpscmdkullanın.MaxCompute istemcisini komut satırından başlatırken komutları çalıştırmak üzere başlangıç parametrelerini belirtebilirsiniz. Daha fazla bilgi için bkz. Başlangıç parametreleri.
MaxCompute istemci işlemleri
Komut yardımı
MaxCompute istemci komutları için aşağıdaki yollardan biriyle yardım alabilirsiniz:
MaxCompute istemcisinde
-
Tüm komutlar için yardımı görüntüleyin.
odps@project_name>help; -- The following command is equivalent. odps@project_name>h; -
Belirli bir anahtar kelimeyle ilgili komutlar için yardımı görüntüleyin.
Örneğin, tablo ile ilgili komutlar için yardım almak üzere aşağıdaki komutu çalıştırın.
odps@project_name>help table; -- The following output is returned. Usage: alter table <tablename> merge smallfiles Usage: export table <tablename> Usage: show tables [in <project_name>] [like '<prefix>'] list|ls tables [-p,-project <project_name>] Usage: describe|desc [<projectname>.]<tablename> [partition(<spec>)] Usage: read [<project_name>.]<table_name> [(<col_name>[,..])] [PARTITION (<partition_spec>)] [line_num]Önemlireadkomutu SQL sözdizimini kullanır ve SQL fiyatlandırmasına tabidir.
Sistem CLI'sinden
Sisteminizin komut satırı penceresinde MaxCompute istemci kurulumunuzun bin dizinine gidin. Ardından, tüm komutlar için yardımı görüntülemek üzere aşağıdaki komutu çalıştırın. MaxCompute istemcisini komut satırından başlatırken bir dizi parametre belirtebilirsiniz. Parametreler hakkında daha fazla bilgi için bkz. Parametreler.
...\odpscmd\bin>odpscmd -h
Geçerli kullanıcı bilgileri
Geçerli kullanıcı bilgilerini almak için aşağıdaki komutu çalıştırın.
odps@project_name>whoami;
Çıktı aşağıdaki alanları içerir:
Name: Geçerli hesap.
Source IP: MaxCompute istemcisini çalıştıran cihazın IP adresi.
End_Point: MaxCompute hizmetinin uç noktası.
Project: Proje adı.
Schema: Projedeki şema.
MaxCompute istemcisinden çıkış
MaxCompute istemcisinden çıkmak için aşağıdaki komutu çalıştırın.
odps@project_name>quit;
-- The following command is equivalent.
odps@project_name>q;
**tunnel download komutu**
tunnel downloadkomutunu ilk kez çalıştırdığınızda, MaxCompute istemcisi günlükler için bir oturum klasörünü kurulum dizinindekiplugins/dshipiçinde oluşturur.-
Aynı cihazda birden fazla kullanıcı
tunnel downloadkomutunu kullanıyorsa veri güvenliğini sağlamak için aşağıdaki yöntemleri uygulayın:İşletim sisteminizin izin ayarlarını kullanarak oturum klasörüne erişimi kısıtlayın.
Verileri farklı bir oturum klasörüne indirmek için
tunnel downloadkomutuna-sd <new_session_folder_name>veya-session-dir <new_session_folder_name>parametresini ekleyin.tunnel downloadkomutu hakkında daha fazla bilgi için bkz. İndirme.
İlgili belgeler
MaxCompute istemcisinde oturum açtıktan sonra bir MaxCompute projesinde SQL komutlarını çalıştırabilirsiniz. Daha fazla bilgi için bkz. MaxCompute istemcisini kullanma.
MaxCompute istemcisinin komut sözdizimiyle ilgili ayrıntılar için bkz. Komut referansı veya SQL komutları ve işlevleri.
SSS
odps_config.ini dosyasını yapılandırdıktan ve MaxCompute istemcisini başlattıktan sonra aşağıdaki yaygın hatalarla karşılaşabilirsiniz:
Hata: no java found
-
Neden
MaxCompute istemcisini çalıştıran makinede Java yüklü değil.
-
Çözüm
Makineye Java yükleyin ve ortam değişkenini yapılandırın. MaxCompute istemci v0.28.0 ve sonraki sürümler JDK 1.9 veya üstünü destekler. Daha eski sürümler yalnızca JDK 1.8'i destekler.
Hata: Could not find or load main class com.aliyun.openservices.odps.console.ODPSConsole
-
Neden
İstemci paketini iki kez indirmiş olabilirsiniz; bu durum dizinin otomatik olarak
odpscmd_public (1)şeklinde yeniden adlandırılmasına neden olur. Boşluk gibi özel karakterler içeren bir dizin adı, yol çözümlemesinin başarısız olmasına yol açabilir. -
Çözüm
Dizin adından boşlukları ve diğer özel karakterleri kaldırın.
Hata: Accessing project '<projectname>' failed: ODPS-0420111: Project not found - '<projectname>'.
-
Neden
odps_config.ini dosyasındaki proje adı yanlış olabilir.
-
Çözüm
MaxCompute konsolu adresine gidin ve sol üst köşeden bir bölge seçin.
Sol gezinme bölmesinde seçeneğini belirleyin.
Projects sayfasında MaxCompute projenizin doğru adını bulun ve ardından odps_config.ini dosyasını değiştirin.
Hata: Accessing project '<projectname>' failed: ODPS-0420095: Access Denied - Authorization Failed [4002], You don't exist in project <projectname>.
-
Neden
Geçerli AccessKey ile ilişkili Alibaba Cloud hesabı veya RAM kullanıcısı hedef projeye eklenmemiş veya proje adı yanlış.
-
Çözüm
Alibaba Cloud hesabını veya RAM kullanıcısını hedef projeye eklemek için proje sahibiyle iletişime geçin. Daha fazla bilgi için bkz. Alibaba Cloud hesap kullanıcısı ekleme (proje düzeyi) veya RAM kullanıcısı ekleme (proje düzeyi).
Hata: Accessing project '<projectname>' failed: { "Code": "InvalidProjectTable", "Message": "The specified project or table name is not valid or missing."} veya Accessing project '<projectname>' failed: connect timed out
-
Neden
end_pointparametresinin değeri yanlış. Örneğin, yerel bilgisayarınızdan bağlanmaya çalışırken dahili ağ (klasik ağ gibi) veya tünel uç noktası yapılandırmış olabilirsiniz. -
Çözüm
Uç noktalar belgesine bakın ve projenizin bölgesi ile ağ ortamı için doğru uç noktayı seçin.
end_pointparametresi için tünel uç noktası yerine MaxCompute hizmet uç noktasını kullandığınızdan emin olun. Tünel uç noktaları MaxCompute Tunnel hizmeti içindir.
Hata: Accessing project '<projectname>' failed: <endpoint>
-
Neden
end_pointparametresinin değeri yanlış. Örneğin,http://service.ch-hangzhou.maxcompute.aliyun.com/apigirmiş olabilirsiniz. China (Hangzhou) bölgesi için doğru genel ağ uç noktasıhttp://service.cn-hangzhou.maxcompute.aliyun.com/apişeklindedir. -
Çözüm
Uç noktalar belgesine bakın ve projenizin bölgesi ile ağ ortamı için doğru uç noktayı kopyalayın. Uç noktayı elle yazmak yerine kopyalamanızı öneririz.
Başlangıç parametreleri
Sistem komut satırından başlangıç parametrelerini belirterek komutları hızlı bir şekilde çalıştırabilirsiniz.
Usage: odpscmd [OPTION]...
where options include:
--help (-h)for help
--config=<config_file> specify another config file
--project=<prj_name> use project
--endpoint=<http://host:port> set endpoint
-k <n> will skip begining queries and start from specified position
-r <n> set retry times
-f <"file_path;"> execute command in file
-e <"command;[command;]..."> execute command, include sql command
Aşağıdaki tabloda başlatma parametreleri açıklanmaktadır.
|
Parameter |
Description |
Example |
|
|
Tüm MaxCompute istemci komutları için yardım bilgilerini görüntüler. |
|
|
|
odps_config.ini dosyasının yolunu belirtir. Varsayılan yol |
|
|
|
Erişilecek MaxCompute projesinin adını belirtir. |
|
|
|
MaxCompute hizmetine bağlanmak için kullanılan uç noktayı belirtir. Daha fazla bilgi için bkz. Uç Noktalar. |
|
|
|
İlk n-1 deyimi atlayarak çalıştırmayı n. deyimden başlatır. |
İlk iki deyimi atlayarak çalıştırmayı üçüncü deyimden başlatır. |
|
|
Başarısız olan bir işin yeniden deneme sayısını ayarlar. |
|
|
|
Çalıştırılacak komutları içeren bir dosyayı belirtir. |
|
|
|
Çalıştırılacak bir komutu belirtir. |
|
Shell veya Windows komut satırında, sonraki işlerde kullanmak üzere dinamik dönüş değerlerini bir shell değişkeninde yakalamak için odpscmd -e <SQL_statement> komutunu kullanın. Bu senaryoda dönüş değeri, çalışma zamanı ayrıntıları veya üst bilgi gibi ek bilgiler içermemelidir. Shell betiği oluşturmayı kolaylaştırmak amacıyla Instance Tunnel özelliğini devre dışı bırakmak için use_instance_tunnel parametresini odps_config.ini dosyasında false olarak ayarlayın. Ardından üst bilgiyi bastırmak için set odps.sql.select.output.format={"needHeader":false,"fieldDelim":" "}; komutunu çalıştırın.
Örneğin, noheader adlı bir tablo düşünelim. Bu tabloda tek bir sütun ve üç satır veri (1, 2 ve 3) bulunmaktadır. Standart çıktıyı bir dosyaya yönlendirmek için aşağıdaki komutu çalıştırın. Çıktı yalnızca verileri içerir ve ek bilgi barındırmaz:
--Windows command line:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--The result is saved to D:\test.txt.
--Shell:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt
--The result is saved to /Users/A/temp/test.txt.
--Output:
1
2
3
Sürüm geçmişi
Aşağıdaki tabloda odpscmd için yapılan son güncellemeler açıklanmaktadır. Belirli bir sürüme ilişkin ayrıntılı bilgi edinmek için ilgili bağlantıyı tıklayın.
odpscmd sürümlerinin ve sürüm notlarının tam listesini görüntülemek için bkz. GitHub.
|
Sürüm |
Tür |
Açıklama |
|
yeni özellik |
Geçici güvenlik kimlik bilgisi olarak STS belirteci kullanımı desteklenmeye başlandı. |
|
|
hata düzeltmesi |
Bağımlılık uyumluluğu sorunlarını çözmek amacıyla Apache Arrow kitaplığı güncellendi. |
|
|
yeni özellik |
MaxCompute Query Acceleration (MCQA) 2.0 işleri için ilerleme raporlamasını devre dışı bırakmak üzere |
|
|
geliştirme |
|
|
|
hata düzeltmesi |
CVE güvenlik açıklarını gidermek için bağımlılıklar yükseltildi. |
|
|
yeni özellik |
Harici birimi indirmek için hızlandırma seçeneği eklendi. |
|
|
geliştirme |
Harici proje V2 desteğini artırmak amacıyla |
|
|
yeni özellik |
|
|
|
geliştirme |
|
|
|
yeni özellik |
|
|
|
yeni özellik |
|
|
|
hata düzeltmesi |
Geri dönüş davranışını daha doğru tespit etmek ve yinelenen logview görüntülerini önlemek için MCQA modu iyileştirildi. |
|
|
yeni özellik |
|
|
|
geliştirme |
|
|
|
yeni özellik |
Tunnel işlemlerinde JSON veri türü desteği eklendi. |
|
|
yeni özellik |
|
|
|
geliştirme |
Depolama katmanına ilişkin daha ayrıntılı bilgileri göstermek için |
|
|
yeni özellik |
|
|
|
yeni özellik |
|
|
|
geliştirme |
|
|
|
yeni özellik |
|
|
|
hata düzeltmesi |
Log4j bağımlılığı kaldırıldı. |
|
|
yeni özellik |
Bir proje içinde şema tabanlı veri düzenlemeyi destekleme özelliği eklendi. Daha fazla bilgi için bkz. Şema işlemleri. |
|
|
yeni özellik |
Tunnel üzerinden karmaşık veri türlerini yükleyip indirme desteği eklendi. |
|
|
geliştirme |
|
|
|
yeni özellik |
Lakehouse yeteneklerini etkinleştiren Data Lake Formation (DLF) bağlantısı kurmak için harici proje oluşturma desteği eklendi. |
|
|
hata düzeltmesi |
İndirme sırasında TIMESTAMP verisinin nanosaniye bölümünün hatalı işlenmesine neden olan sorun düzeltildi. |