Üç başlangıç, üç geçiş, bu sefer GitHub Top 1'de 100.000 satırlık çekirdek C kodu ile

[CSDN editörünün notu] 28 Temmuz Pazar günü öğleden sonra Pekin, yaz sıcağından hemen sonra daha da ısındı. Editör, Taosi Data ve CSDN tarafından düzenlenen "TDengine ve arkadaşları" Pekin Buluşmasına geldiğinde, Tao Jianhui seyircilerin sorularını yanıtlıyordu.

Aniden editör, 20'li yaşlarındaki genç bir kız tarafından coşkuyla oturup dinleyebileceğini hatırlattı. Birkaç kelime konuştuktan sonra kızın Londra'da okuyan bir elektronik mühendisliği mezunu olduğunu öğrendim, bu yüzden yaz tatilinde buraya gönüllü olarak geldi.

Sadece gönüllüler çok büyük değil, aynı zamanda Taosi Data ekibi de çok "yüksek donanımlı": 3 doktor ve 4 geri dönen. Son zamanlarda çok iyi bir haber kazandılar: Yalnızca on kişiden oluşan Taosi veri ekibi ve GitHub'daki açık kaynak TDengine, birkaç gün boyunca listenin başında yer aldı.

Peki bu ne tür bir proje? Nasıl bir takım bu? Takımın arkasındaki kurucunun ne tür bir deneyimi var? CSDN'nin daveti üzerine, kurucu Tao Jianhui bu makaleyi kişisel olarak sorularınızı cevaplamak ve sorularınızı cevaplamak, acele edin ve aşağı bakın!

Herkes 10 milyar kaydı sorgulayan canlı bir demo izliyor

Yazar | Tao Jianhui

Sorumlu Editör | Hu Weiwei

12 Temmuz'da Taosi Data, TDengine'ın açık kaynağını duyurdu. Çekirdek depolama motoru ve bilgi işlem motoru dahil 100.000'den fazla C kodu satırı GitHub'a yüklendi.

İki tam hafta boyunca GitHub'daki Yıldız 7'yi geçti 30 0, çatal sayısı 1800'ü aştı ve geliştirici topluluğundaki yanıt beklentileri çok aştı. Geliştiricinin isteği üzerine, 28 Temmuz'da Pekin'de çevrimdışı bir iletişim gerçekleştirildi ve yerinde etkileşim çok coşkulu oldu.

Çevrimdışı olay sahnesi

Pek çok insan merak ediyor, büyük veri veya veritabanı yazılımı geliştirmemiş bir kişi neden Nesnelerin İnterneti için büyük veri platformu yazılımı geliştirebilir?

Ve böyle bir yazılım geliştirmeyi nasıl düşündünüz? Sen üç kere Bir iş kurmak , Sınırı her geçtiğimde bunu nasıl yapabilirim?

28 Temmuz'da Bir iş kurmak Süreçteki düşünme ve analiz, kullanım için paylaşılır. Bir iş kurmak Yoldaki arkadaşlar özellikle teknik Bir iş kurmak Referans.

2016'nın başlarında eve gittim Bir iş kurmak Şirket olan Happy Mommy satın alındı ve kolaydı. Ama pek çok arkadaşım projeleri görmek için beni her zaman çekiyor, bazıları yatırım yapmamı, bazıları da takıma katılmamı istiyor.

Çünkü akıllı donanımdayım daire Belli bir itibarı vardır, bu nedenle en çok izlenen projeler akıllı donanım ve IoT ile ilgili projelerdir. Birkaç proje hakkında düşünmek için çok zaman harcadım.

İlki, sebze pazarının bilgi akışını akıllı ölçek aracılığıyla tamamen açmayı ve Meituan'dan daha az olmayan bir platform oluşturmayı ümit eden sebze pazarının akıllı ölçeği;

İkincisi, besleyiciyi otomatik olarak kontrol etmeyi, yetiştirilen balık havuzlarının ortamını izlemeyi ve bir platform oluşturmak için nesnelerin interneti aracılığıyla yem, üreme ve su ürünleri satışlarını açmayı ümit eden su ürünleri yetiştiriciliği için nesnelerin İnternetidir;

Üçüncüsü, Nesnelerin Asansör İnternetidir İzleme yoluyla, sistem planlı garantiden talep üzerine garantiye dönüştü ve ülke çapında bir asansör bakım platformu oluşturuldu.

Birkaç akıllı ev var, ama sonunda hiçbiri beni etkilemedi ve oraya yatırım yapmamı sağladı. Çünkü bu projeleri analiz ettikten sonra, başarıları için kilit faktörlerin hiçbirinin benim veya mevcut takımın sahip olduğu bir şey olmadığını anladım.

Ancak bu projeler, Nesnelerin İnterneti'nin geleceğini görmemi sağladı ve Her Şeyin İnterneti, kavranması gereken durdurulamaz bir trend. Güçlü bir teknik geçmişim var ve çok fazla endüstri kaynağım yok Bu trendde ne tür fırsatlar bulabilirim?

İlk tepkim bir IoT platformu geliştirmekti, ancak daha yakından bakıldığında Microsoft, IBM, Oracle, Amazon gibi BT devlerinden GE, Siemens gibi endüstriyel devlere kadar hepsinin kendi IoT platformları var, özellikle dikkatlice GE'nin Predix'ini okuduktan sonra, düşünebildiğim her şeyin onun tarafından yapıldığını gördüm.

İç piyasaya bakıldığında, Haier, Sany, Xugong, Ali, Baidu gibi IoT platformları yapan daha fazla şirket var, sayısız Startup'tan bahsetmeye gerek yok. Kalp soğuk. Bu IoT platformu asla yapılmamalı. Etrafta savrulmaktır.Tek olasılık, endüstri kaynaklarına ve kazanmak için endüstri özelliklerine ve pazar kaynaklarına güvenmek, ancak çok fazla endüstri geçmişim ve kaynağım yok. .

Ancak birçok IoT platformunun bilgilerini dikkatlice okuduktan sonra, sonunda bir ışık parıltısı, yani veri işleme buldum. IoT platformunda birçok modül vardır, ancak en önemlilerinden biri veri işlemedir, toplama, depolama, sorgulama, analiz ve hesaplama dahil olmak üzere tüm IoT endüstrisinin nispeten yaygın bir parçasıdır ve kişiselleştirme derecesi yüksek değildir.

Daha yakından bakın. IoT platformlarının çoğu, özellikle de yerel olanlar, neredeyse her zaman Hadoop ekolojisi kullanılarak, İnternet endüstrisinin popüler büyük veri mimarisi kullanılarak oluşturulmuştur. Toplanan veriler Kafka'ya aktarılır ve ardından dağıtılır. Kalıcı depolama için HBase / Cassandra / MongoDB'ye, önbelleğe alma için Redis'e, akışlı bilgi işlem için Spark / Flink'e ve ardından uygulamalara, geniş ekranlara vb. Girin.

Büyük veri işlemeye gerçekten maruz kalmamış olsam da, bu genel büyük veri çerçevelerini anladıktan sonra ilk tepkim, Hadoop sisteminin en azından IoT büyük veri için çok ağır olmasıdır.

Bir platform oluşturmak için çok sayıda açık kaynaklı yazılımın birbirine eklenmesi gerekir, Ar-Ge, işletim ve bakımın verimliliği çok düşük olacaktır, veri tutarlılığını garanti etmek zordur, bir sorunu konumlandırmak çok fazla bağlantı içerir, özelleştirme dağıtımı için uygun değildir.

Çeşitli IoT senaryolarını soyutlayarak, IoT verilerinin on iki özelliğini özetledim:

  • Veriler zaman serisidir ve zaman damgalı olmalıdır;

  • Veriler yapılandırılmıştır;

  • Veriler nadiren güncellenir veya silinir;

  • Veri kaynağı benzersizdir;

  • İnternet uygulamalarıyla karşılaştırıldığında, daha fazla yazın ve daha az okuyun;

  • kullanıcı Dikkat Belirli bir zaman dilimindeki eğilim nedir, zamandaki belirli bir noktanın değeri değil;

  • Verilerin bir saklama süresi vardır;

  • Veri sorgulama ve analizi, zaman periyoduna ve coğrafi bölgeye dayalı olmalıdır;

  • Depolama sorgularına ek olarak, genellikle çeşitli istatistikler ve gerçek zamanlı hesaplama işlemleri gereklidir;

  • Akış kararlı ve öngörülebilirdir;

  • Genellikle enterpolasyon gibi bazı özel hesaplamalara ihtiyaç duyar;

  • Veri miktarı çok büyük ve günde 10 milyardan fazla veri toplanabiliyor.

  • Bu özellikleri özetledikten sonra, IoT verilerini işlemek için Hadoop gibi açık kaynaklı yazılımları kullanmanın tamamen yanlış olduğu birdenbire ortaya çıktı.

    Nesnelerin İnterneti verileri, günlük verileri gibidir ve neredeyse hiçbir güncelleme işlemi olasılığı yoktur, bu nedenle veri tabanında işlem işlemenin uygulanması tamamen gereksizdir; veriler zaman serisidir ve zaman damgası, karmaşık dizin yapıları olmaksızın doğal olarak birincil anahtar olarak kullanılabilir; Depolama için Anahtar-Değer kullanan HBase ve Cassandra gibi yapılandırılmış, bilgi işlem verimliliği ve depolama verimliliği büyük ölçüde azaltılır ve yapılandırılmış depolama kullanılmalıdır; IoT verilerinin soğukluk ve ısısı zamana göre belirlenir ve en çok toplanan verilerdir Sıcak, kullanıcı karar vermek için tıklamaz.

    Bu nedenle, basit ilk giren ilk çıkar bellek yönetimi verimli önbelleğe alma sağlayabilir ve Redis'e hiç gerek yoktur; IoT verileri bir cihazdan gelen bir veri akışıdır ve kayan pencere akışı hesaplamasını elde etmenin en etkili yolu değildir. Akışa bakalım, Spark gibi karmaşık bir motoru nasıl kullanabiliriz; veri bölümleme için, basitçe cihaz bölümü ile bölümleme ve zaman dilimine göre bölümleme ve kolayca çözülebilir.Karmaşık bölümleme mekanizmalarına hiç gerek yoktur; IoT veri akışı nispeten kararlıdır Evet ve IoT cihazlarının kendilerinin önbelleğe alma yeteneklerine sahip olması gerekir.Kafka paketlerini tamamen terk edebilir ve ihtiyaçları karşılamak için basit bir mesaj kuyruğu ve veri aboneliği uygulayabilirsiniz.

    Daha sonra, bir zaman serisi veritabanı olduğunu keşfettim, hemen belgelerine ve kodlarına baktım ve zaman serisi verilerinin bazı özelliklerini kullandıklarını, ancak hala tam olarak kullanılmadıklarını ve yalnızca bir veritabanı olarak konumlandırıldıklarını fark ettim.

    Daha sonra sektörde gerçek zamanlı veri tabanları olduğunu öğrendim ve bu gerçek zamanlı veri tabanlarının hepsinin eski antika ürünler olduğunu buldum.Temelde Windows üzerinde geliştirildiler.Pahalılar ve standart bir SQL yok.Yatay genişletme yok neredeyse yok büyük veri analizi yeteneği yok. Sürekli artan miktarda büyük veri ve büyük veri analizi ihtiyaçlarıyla başa çıkma yeteneği er ya da geç ortadan kalkacaktır.

    Analizden sonra çok heyecanlandım ve boş bir yer bulduğumu hissettim. Ama bu ürünü kendim geliştirebilir miyim? Dikkatlice düşündükten sonra hala heyecanlıydım.

    2008 yılında Hexin'i kurdum, push platformunun yanı sıra mesaj kuyruğu önemli bir modüldür. 2009 yılında, dağıtılmış, son derece güvenilir, kalıcı bir depolama mesajı kuyruğu geliştirdik.Her cep telefonunun göndermesi gereken mesajlar bir kuyruğa yerleştirildi. İleti kuyruğu ile Nesnelerin İnterneti'nin zaman serisi verileri arasında bir fark var mı? Esasen hayır.

    Biri yapılandırılmamış, diğeri yapılandırılmış; biri içeri ve dışarı basit ama diğeri analiz ve hesaplama gerektiriyor; sistem mimarisi tasarımında ikisi arasında büyük bir fark yok.

    Yıllarca süren iletişim ekipmanı araştırma ve geliştirme geçmişi nedeniyle dağıtılmış bir sistem olarak tasarlanması gerektiği düşünüldüğünde bana tanıdık geliyor. Bu nedenle, ihtiyacım olan bilgi birikimine ve becerilere sahip olmalıyım ve tüm yıllara dayanan Ar-Ge deneyimim işe yarayabilir.

    Bu nedenle, yapmak istediğim ürünü, yani IoT büyük veri platformu olan hızlı bir şekilde konumlandırdım.NoT'nin büyük veri problemini tek durakta çözmek için zaman serisi veritabanı, önbelleğe alma, mesaj aboneliği ve akış hesaplama gibi bir dizi işlevi entegre etmek gerekiyor. Ancak bu şekilde sistem geliştirme ve bakımının karmaşıklığı ve maliyeti büyük ölçüde azaltılabilir.

    İki kez önce Bir iş kurmak , Sadelik ve aşırılık peşinde koşma alışkanlığını geliştirmeme neden olan tüm 2C ürünleridir. Hemen JDBC arayüzü aracılığıyla birçok üçüncü taraf araçla sorunsuz bir şekilde entegre olabilen SQL arayüzünü ve tek tıklamayla kurulum ve dağıtım stratejisini kullanmaya karar verdim. Amaç, Geliştiricilerin kullanması kolaydır ve öğrenim maliyeti yoktur.

    Nesnelerin İnterneti verilerinin özelliklerini inceledikten sonra, iki teknolojik yenilik düşündüm. Biri, tek bir cihazın veri ekleme ve sorgulama verimliliğini büyük ölçüde iyileştirmek için "bir cihaz, bir tablo" veri modeli, diğeri ise her tabloyu sağlamak. Çoklu tablo toplama sorgusu sorununu çözmek için statik etiket verilerini ve toplanan dinamik verileri tamamen ayrı depolamak için statik etiketleri kullanın.

    Bunu anladıktan sonra 2016 yılının sonunda 50 yaşıma yaklaşırken programı kendim yazmaya karar verdim. Neden birini bulmuyorsunuz? Birkaç neden:

    • Uzun yıllardır kendim teknoloji yapıyorum ve kalp düğümüm var, yani yazdığım kodun sayısız kişi tarafından kullanılmasını umuyorum;

    • Geliştirme zor, özellikle dağıtılmış. Ana çerçeveyi bitirmezsem ve depolama motorunu yazmazsam, ekibin verimliliği çok düşük olacak;

    • Bu ürünün özü teknolojidir.Araştırma ve geliştirmeye yoğun bir şekilde katılmazsanız, şirket çok tehlikeli olacaktır.

    Yazmak üzereyken eşime, yazdığım depolama motoru veri ekleme ve sorgu hızı açısından diğer veritabanlarından beş kat daha hızlı olmasaydı, ilginç bir program daha yazmış olduğum düşünüleceğini söyledim.

    Beş kereden fazla ulaşırsa, tekrar atarım. Çünkü benim gözümde teknoloji temelli ürünler piyasadaki mevcut üreticileri yenmek zorunda ... Avantajın beş katından fazlası yoksa bunu yapmaya gerek yok çünkü karşı tarafın insanı, parası ve müşterileri var. Rakip savaşacak mı?

    Şans eseri 2 ayda 18.000 satırdan fazla kod yazdım, bu da iki büyük yeniliğimle performansın piyasadaki mevcut ürünleri öldürebileceğini tamamen kanıtladı, bu nedenle bugünün TDengine'i mevcut.

    Soldan üçüncü olan Taosi veri ekibi, TDengine projesine de katkıda bulunan Tao Jianhuinin oğlu (00'dan sonra bir).

    Altta yatan temel yazılımın Ar-Ge'sinin geliştirilmesi ve tanıtılması daha da zordur. İşlevler ve performans, mevcut ürünlerden çok daha iyi bir sıra olsa bile, müşteriler yine de güvenlik ve istikrar gerekçesiyle sizi reddedecektir.Bu nedenle, daha fazlasını yapmak için çekirdek kodu ve ayrıntılı tasarımı ortaya çıkarmak için açık kaynak yöntemlerini kullanmamız gerektiğini düşündüm. Pek çok programcı, bir geliştirici topluluğu oluşturmak için katıldı.

    Aktif geliştirici topluluğu, tüm büyük müşterilere seçilen teknolojinin terk edilmeyeceğini, büyük güvenlik açıklarının olmayacağını ve güvenle kullanılabileceğini hissettirebilir.

    Öte yandan, birçok küçük ve orta ölçekli müşteri az miktarda veriye sahiptir ve birçok teknik seçeneğe sahiptirler, eğer açık kaynak kodlu değillerse, diğer bazı açık kaynak çözümlerini seçeceklerdir.

    İlk etapta paralarını kazanamadılar, öyleyse neden onlara kaynak açıp parayı ücretsiz kullanmalarına izin vermiyorlar? Herkesin ücretsiz olarak kullanmasına izin vermek için değil, aynı zamanda çalışmak, çeşitli geçmişlere sahip geliştiricilerle etkileşim kurmak, sorularını yanıtlamak ve teknik destek ve yardım almalarına izin vermek için büyük bir ekip kurmamız gerekiyor. Onların da katılacaklarını ve onur duyacaklarını umuyoruz. Ve gurur, kalpten yayılabilirler.

    Aynı zamanda, açık kaynak aracılığıyla, ürün hakkında hızlı bir şekilde piyasa geri bildirimi alabilir ve pazarın ihtiyaçlarını anlayabilirsiniz.Bu iyi bir şey, bu yüzden tereddüt etmeden kaynak açmaya karar verdim.

    Büyük veri platformları, IoT platformları ve veritabanları için halihazırda pek çok temel ürün var ve bunlara meydan okumak zor. Nesnelerin İnterneti için özel olarak oluşturulmuş büyük veri platformu yoktur ve TDengine dünyada bir ilktir.

    Nesnelerin İnterneti pazarı hızla büyüyor ve toplanan veri miktarı katlanarak artıyor. 5 yıl içinde dünya verilerinin% 90'ı Nesnelerin İnterneti verileri olacak. Bu pazar segmenti kesinlikle ana pazar olacak.

    Taosi veri ekibi, açık ve işbirlikçi bir tavırla sıkı çalışmaya devam ettiği, bir teknoloji ekosistemi oluşturmak için açık kaynağı tam olarak kullandığı ve aynı zamanda bir iş ekosistemini aktif olarak oluşturmak için küresel sistem entegratörleri, bağımsız yazılım geliştiricileri, kanallar vb. İle işbirliği yaptığı sürece, ardından TDengine Tek boynuzlu at olmak için bir gün olmalı.

    Churchill'in "Başarı nihai değildir, başarısızlık ölümcül değildir, önemli olan devam etme cesaretidir" dediğini beğendim, koşmaya devam edin arkadaşlar!

    Yazar hakkında: 1986 yılında Çin Bilim ve Teknoloji Üniversitesi'ne kabul edilen Tao Jianhui, 1994'te Astrofizik alanında doktora yapmak için Indiana Üniversitesi'ne gitti ve Chicago Motorola, 3Com ve diğer şirketlerde kablosuz İnternet araştırma ve geliştirmesinde çalıştı. Oldukça güvenilir bir dağıtılmış sistem, anlık mesajlaşma ve mesajlaşma Sıralardaki en iyi teknik uzmanlar vb. 2008'de Çin'e döndü ve mobil İnternet IP Push ve IP gerçek zamanlı mesajlaşma hizmetlerine odaklanarak Hexin'i kurdu. Tayvan MediaTek tarafından satın alma. 2013 Yine yıl Bir iş kurmak Anne ve çocuk akıllı donanımları ile anne ve çocuk sağlığı hizmetlerine odaklanan Mutlu Anne'yi kurdu. 2016'da Happy Mommy, Pacific Network tarafından satın alındı. 2017'de tekrar savaş alanına gitti ve zaman serileri uzamsal verilerin gerçek zamanlı ve verimli işlenmesine odaklanan Taosi Data'yı kurdu.Kendi geliştirdiği TDengine ürünü, diğer endüstri ölçütlerinden 10 kat daha iyi bir performansa sahip ve Nesnelerin İnternetinde, endüstriyel büyük veride yaygın olarak kullanılabiliyor. Araba ağı alanı. Temmuz 2019'da TDengine açık kaynaklıydı ve birkaç gün boyunca GitHub küresel trend listesinde birinci sırada yer aldı.

    Son

    Bir saat içinde 5 çocuğu kurtardı, "sert" amca ağladı ...
    önceki
    "Hyperledger Fabric sahte bir blok zinciridir!"
    Sonraki
    Düzinelerce önerilen sistem belgesi onaylandı ve çoğaltılamaz: kaynak kodu ve veri kümesi eksik
    GitHub hesaplarının birçok yerde kullanımı sınırlıdır; Python'un babası, yorumlayıcıyı yeniden düzenlemeyi düşünür; 62 yaşındaki programcı bir mantık bombası yerleştirdi | Developer Weekly
    Ali Dharma Akademisi, son iki yıldır AI yapıyor
    Üç gün üst üste sıcak arama, "Haber Ağı" keskin eleştirmenleri de yeterince seviyor
    wxPython + PyOpenGL ile 3B veri analizi için güçlü bir araç oluşturun! | CSDN blog seçimi
    Boom out 8-0 kilit kazanın! Japonya'nın ilk Asya Oyunları şampiyonu Kento Momota sezonun beşinci tacını kazandı
    React, ön uç geliştirme boşluğunda nasıl bir köprü haline geliyor?
    Haber Bülteni: Python önemli bir "siyah malzeme" olmuştur! Programcı: Madden
    İkinci bir "Google" ı taklit edebilir mi?
    "Teknoloji odaklı inovasyon" kurumsal gelişim için yeni bir yön haline geliyor. Geliştiriciler kendilerini nasıl uygulamalı?
    Go dili on yıldır kuruldu, Go2 kullanıma hazır
    Alt veritabanı ve alt tablo nasıl doğru bir şekilde alınır?
    To Top