MaxCompute V2.0, Object Storage Service (OSS) ve Tablestore gibi depolama hizmetlerine erişmek için harici tablolar kullanmanıza olanak tanır. MaxCompute Studio, yapılandırılmamış verileri sorgulamanıza yardımcı olacak kod şablonları sunar. Bu konu, MaxCompute Studio kullanarak yapılandırılmamış verilerin nasıl sorgulanacağını açıklar.
Ön koşullar
Aşağıdaki ön koşulların karşılandığından emin olun:
Bir MaxCompute projesine bağlanılmış olmalıdır. Daha fazla bilgi için bkz. Proje bağlantılarını yönetme.
Bir MaxCompute Java modülü oluşturulmuş olmalıdır. Daha fazla bilgi için bkz. MaxCompute Java modülü oluşturma.
StorageHandler, Extractor veya Outputer programı yazma
Project bölmesinde, modülün kaynak kod dizinine (yani ) sağ tıklayın ve seçeneğini belirleyin.
-
Bir Name girin, tür olarak Extractor, StorageHandler veya Outputer seçin ve Enter tuşuna basın.
Name: MaxCompute Java sınıfının adıdır. Bir Package oluşturulmamışsa, Package'i otomatik olarak oluşturmak için packagename.classname biçiminde giriş yapın.
-
Tür olarak Extractor, StorageHandler veya Outputer seçin.
Notİş gereksinimlerinize göre Extractor, StorageHandler veya Outputer seçeneklerinden birini seçebilirsiniz.
Extractor: Yapılandırılmamış verileri okuma mantığının özel olarak yapılandırılmasına olanak tanıyan sınıftır.
StorageHandler: Extractor veya Outputer programında tanımlanan mantığı uygulamak için kullanılan sınıftır.
Outputer: Yapılandırılmamış verileri yazma mantığının özel olarak yapılandırılmasına olanak tanıyan sınıftır.
Sınıf oluşturulduktan sonra, kod düzenleyicide bir Java programı geliştirin. Java şablonu, çerçeve koduyla otomatik olarak doldurulur. Yalnızca gereksinimlerinize göre mantık kodunu derlemeniz gerekir.
Extractor veya Outputer programında hata ayıklama
Test senaryoları yazmak için examples dizinindeki örnek birim testlere bakabilirsiniz.
import ...
public class ExtractorTest {
private String ambulanceFullSchema =
"vehicle:bigint;id:bigint;patient:bigint;calls:bigint;latitude:d...";
private String speechDataFullSchema = "sentence_snr:double;id:string";
@Test
public void testTextExtractor() throws Exception {
/**
* Equivalent to the following SQL:
* CREATE EXTERNAL TABLE ambulance_data_external
* ( vehicle bigint, id bigint, patient bigint, calls bigint,
* Latitude double, Longitude double, time string, direction string)
* STORED BY 'com.aliyun.odps.udf.example.text.TextStorageHandler'
* LOCATION 'oss://.../data/ambulance_csv/'
* USING 'jar_file_name.jar';
*
* SELECT * FROM ambulance_data_external;
*/
Column[] externalTableSchema = UnstructuredUtils.parseSchemaString(
ambulanceFullSchema);
}
}
Programı paketleme ve yükleme
Programda hata ayıklama işlemini tamamladıktan sonra, programı bir JAR paketi halinde sıkıştırın ve paketi bir kaynak olarak MaxCompute sunucusuna yükleyin. Daha fazla bilgi için bkz. Java programını paketleme, paketi yükleme ve MaxCompute UDF oluşturma.
Yapılandırılmamış verileri sorgulama
Project araç penceresinde scripts öğesine sağ tıklayın ve seçeneğini belirleyin.
Script Name alanına bir komut dosyası adı girin. MaxCompute Project açılır listesinden hedef projeyi seçin. Ardından OK düğmesine tıklayın.
-
Kod düzenleyicide, harici bir tablo oluşturmak için kullanılan SQL ifadesini girin ve
simgesine tıklayın.--name:osd --author:liuyi --create time:2017-03-07 17:06 set odps.service.mode=off; CREATE EXTERNAL TABLE IF NOT EXISTS myun_src_external ( vehicleId bigint, recordId bigint, patientId bigint, calls bigint, locationLatitute double, locationLongtitue double, recordTime string, direction string ) STORED BY 'myun.MyStorageHandler' WITH SERDEPROPERTIES('delimiter'='|') LOCATION 'oss://oss-cn-hangzhou-zmf.aliyuncs.com/074799/demo/SampleData/CSV/src/' USING 'myun.jar'; -
Bir MaxCompute SQL komut dosyası oluşturun, aşağıdaki sorgu ifadesini girin ve verileri sorgulamak için
simgesine tıklayın.set odps.task.major.version=unstructured_data; select * from myun_src_external where patientId > 25;
İlgili Konular
Özel extractor kullanarak OSS harici tablosu oluşturma örneği