Mysql-moving-average-example

Mysql-moving-average-example

Making-money-option-trading
Trading-strategi-listrik
Online-trading-geb├╝hren-vergleich


Sukses-strategi trading Online-trading-account-axis Tarif kartu kredit-forex Symphonie-trading-system Trading-strategy-games-pc Opsi-trade-rollover

Mendapatkan daftar nilai unik dari kolom MySQL Apakah Anda ingin mendapatkan daftar semua nilai yang berbeda dalam kolom Gunakan kata kunci DISTINCT. Heres sebuah contoh: (ditulis 2005-04-14, updated 2006-06-05) Topik terkait diindeks seperti di bawah ini, atau masukkan melksh.amnnnn untuk artikel individu S157 - Lebih banyak perintah MySQL 4481 Mengekstrak data dari backup untuk mengembalikan baris yang dipilih dari MySQL Tabel - (2015-05-01) 3270 SQL - Data v Metadata, dan berbagai tahap pemilihan data - (2011-04-29) 3061 Database - mengapa data dipecah menjadi tabel terpisah, dan bagaimana cara bergabung dengan mereka - (2010 -11-20) 2647 Menghapus duplikat dari tabel MySQL - (2010-02-22) 2645 Mengoptimalkan dan menyimpan pertanyaan MySQL Anda - (2010-02-22) 2644 Menghitung baris dalam tabel MySQL yang digabungkan - (2010-02-22) 2643 Mengaitkan tabel dengan bergabung di MySQL - (2010-02-21) 2448 MySQL - efisiensi dan topik lainnya - (2009-10-10) 2259 Mengelompokkan baris untuk laporan ringkasan - MySQL dan PHP - (2009-06-27) 2110 MySQL - mencari catatan dalam satu tabel yang TIDAK sesuai dengan catatan di tabel lain - (2009-03-31) 1904 Ruby, Perl, Linux, MySQL - beberapa catatan pelatihan - (2008-11-23) 1735 Menemukan wor Ds dan batas kerja (MySQL, Perl, PHP) - (2008-08-03) 1574 Bergabung dengan tabel MySQL yang ditinjau ulang - menemukan catatan nonmatching, dll - (2008-03-15) 1331 MySQL bergabung dengan peninjauan kembali - (2007-09-03) 1235 Menampilkan angka sebagai kata - MySQL dengan Perl atau PHP - (2007-06-17) 1213 MySQL - urutan klausa dan urutan tindakan - (2007-06-01) 673 Pandangan helikopter dan tartans - (2006-04- 06) 591 Fakta utama - SQL dan MySQL - (2006-02-04) 581 Menyimpan hasil query MySQL ke disk lokal Anda untuk Excel - (2006-01-29) 572 Memberikan kekuatan peneliti atas analisis database - (2006-01 -22) 567 Menggabungkan baris yang sama dari database MySQL pilih - (2006-01-17) 517 Kesempatan sesekali, dan mengurangi data ke tingkat yang dapat dikelola - (2005-12-04) 515 MySQL - sebuah FAQ - (2005-12- 03) 513 MySQL - JOIN atau WHERE untuk menghubungkan tabel dengan benar - (2005-12-01) 502 SELECT di MySQL - memilih baris yang Anda inginkan - (2005-11-22) 494 MySQL - sejumlah hal yang perlu diingat - (2005 -11-12) 449 Pencocokan di MySQL - (2005-09-24) 159 MySQL - Optimis Ingled - (2004-12-21) 158 MySQL - KIRI BERGABUNG DAN KANAN BERGABUNG, INNER JOIN dan OUTER JOIN - (2004-12-20) Beberapa artikel lain 4724 posting, halaman demi halaman Ini adalah halaman yang diarsipkan dari The Horses Mouth Di wellhohorse - buku harian dan tulisan Graham Ellis. Setiap usaha dilakukan untuk menyediakan informasi terkini pada saat halaman itu ditulis, namun semuanya bergerak maju dalam bisnis kami - rilis perangkat lunak baru, perubahan harga, teknik baru. Silakan periksa kembali melalui situs utama kami untuk kursus, harga, versi, dll - menyebutkan harga di The Horses Mouth tidak dapat dianggap sebagai penawaran penawaran pada harga tersebut. Terima kasih telah mengunjungi kami Kami tidak memberikan sponsor atau undangan ke kursus kami untuk mendukung aplikasi Visa Inggris. Jika Anda ingin memesan salah satu mata kuliah kami dan merupakan warga negara Ukraina, silakan cek dengan Konsulat Inggris setempat dan buatlah pengaturan Visa yang diperlukan sebelum memesan. Komentar lebih banyak oleh Colin (published 2010-10-08) Disarankan link. Havent melihat situs Anda muncul dalam pencarian sql selama bertahun-tahun. Saya menemukan halaman ini mencari solusi untuk masalah yang sedikit berbeda: Saya memerlukan daftar nilai unik DAN sebuah id. Setiap id akan melakukannya Pertama atau terakhir Jadi, bagaimana dari meja Anda: Bagaimana mengembalikan tujuan yang berbeda bersamaan dengan tid Memilih tid, tid stackoverflow memiliki prob yang sama. Saya memberikan link Col saya ingin unik memiliki beberapa calcs berat jadi saya mencoba untuk menghindari multi memilih dan bergabung sejauh poss. 3783 Rata-rata peringkat halaman - 4,0Hadoop contoh: Hello World dengan Java, Pig, Hive, Flume, Fuse, Oozie, dan Sqoop dengan Informix, DB2, dan MySQL Ada banyak kegembiraan tentang Big Data dan banyak kebingungan untuk pergi bersama saya t. Artikel ini memberikan definisi kerja Big Data yang bekerja dan kemudian bekerja melalui serangkaian contoh sehingga Anda dapat memiliki pemahaman langsung tentang beberapa kemampuan Hadoop, teknologi open source terkemuka di domain Big Data. Secara khusus mari kita fokus pada pertanyaan berikut. Apa itu Big Data, Hadoop, Sqoop, Hive, dan Pig, dan mengapa ada begitu banyak kegembiraan di ruang ini Bagaimana Hadoop berhubungan dengan IBM DB2 dan Informix Dapatkah teknologi ini dimainkan bersama Bagaimana saya bisa memulai dengan Big Data Apa yang mudah Contoh yang berjalan di satu PC Untuk yang super tidak sabar, jika Anda sudah bisa menentukan Hadoop dan ingin mendapatkan hak untuk mengerjakan sampel kode, lakukan hal berikut. Jalankan instance Informix atau DB2 Anda. Download gambar VMWare dari Situs Cloudera dan tambahkan pengaturan RAM mesin virtual menjadi 1,5 GB. Langsung ke bagian yang berisi contoh kode. Ada contoh MySQL yang terpasang pada gambar VMWare. Jika Anda melakukan latihan tanpa konektivitas jaringan, gunakan contoh MySQL. Untuk orang lain, baca terus. Apa itu Big Data Big Data yang besar jumlahnya, ditangkap dengan kecepatan tinggi, dan terstruktur atau tidak terstruktur, atau beberapa kombinasi di atas. Faktor-faktor ini membuat Big Data sulit ditangkap, saya, dan dikelola dengan menggunakan metode tradisional. Ada begitu banyak hype di ruang ini sehingga bisa ada perdebatan panjang hanya tentang definisi data besar. Menggunakan teknologi Big Data tidak terbatas pada volume besar. Contoh dalam artikel ini menggunakan sampel kecil untuk menggambarkan kemampuan teknologi. Pada tahun 2012, kelompok yang besar berada di kisaran 100 Petabyte. Big Data bisa terstruktur dan tidak terstruktur. Database relasional tradisional, seperti Informix dan DB2, memberikan solusi yang telah terbukti untuk data terstruktur. Melalui perpanjangan mereka juga mengelola data tidak terstruktur. Teknologi Hadoop membawa teknik pemrograman baru dan lebih mudah diakses untuk mengerjakan penyimpanan data masif dengan data terstruktur dan tidak terstruktur. Mengapa semua kegembiraan Ada banyak faktor yang berkontribusi terhadap hype seputar Big Data, termasuk yang berikut. Membawa perhitungan dan penyimpanan bersama pada perangkat keras komoditas: Hasilnya berkobar dengan biaya rendah. Kinerja harga: Teknologi data Hadoop yang besar memberikan penghematan biaya yang signifikan (bayangkan faktor sekitar 10) dengan peningkatan kinerja yang signifikan (sekali lagi, faktor berpikir 10). Jarak tempuh Anda mungkin berbeda. Jika teknologi yang ada bisa begitu drastis kalah, perlu dipastikan apakah Hadoop dapat melengkapi atau mengganti aspek arsitektur Anda saat ini. Linear Scalability: Setiap teknologi paralel membuat klaim tentang peningkatan. Hadoop memiliki skalabilitas asli sejak rilis terbaru memperluas batas jumlah node menjadi 4.000. Akses penuh ke data tidak terstruktur: Penyimpanan data yang sangat terukur dengan model pemrograman paralel yang baik, MapReduce, telah menjadi tantangan bagi industri ini untuk beberapa lama. Model pemrograman Hadoops tidak menyelesaikan semua masalah, namun ini adalah solusi yang kuat untuk banyak tugas. Distribusi Hadoop: IBM dan Cloudera Salah satu titik kebingungannya adalah, Di mana saya mendapatkan perangkat lunak untuk mengerjakan Big Data Contoh dalam artikel ini didasarkan pada distribusi Cloudera gratis dari Hadoop yang disebut CDH (untuk distribusi Cloudera termasuk Hadoop). Ini tersedia sebagai gambar VMWare dari situs web Cloudera. IBM baru-baru ini mengumumkan bahwa porting platform data besar untuk dijalankan di CDH. Istilah teknologi yang mengganggu sangat sering digunakan, namun dalam kasus ini mungkin tepat. Apa itu Hadoop Berikut adalah beberapa definisi dari Hadoop, masing-masing menargetkan audiens yang berbeda dalam perusahaan: Bagi para eksekutif: Hadoop adalah proyek perangkat lunak open source Apache untuk mendapatkan nilai dari volumevelocityvariety data yang luar biasa tentang organisasi Anda. Gunakan data alih-alih membuang sebagian besar dari itu. Untuk para manajer teknis: Perangkat lunak open source yang menambang BigData terstruktur dan tidak terstruktur tentang perusahaan Anda. Ini terintegrasi dengan ekosistem Business Intelligence yang ada. Legal: Perangkat lunak open source yang dikemas dan didukung oleh beberapa pemasok. Teknik: Sebuah paralel besar-besaran, tidak berbagi apa-apa, peta berbasis Java - mengurangi lingkungan eksekusi. Pikirkan ratusan sampai ribuan komputer yang mengerjakan masalah yang sama, dengan ketahanan kegagalan terpasang. Proyek di ekosistem Hadoop menyediakan pemuatan data, bahasa tingkat tinggi, penyebaran awan otomatis, dan kemampuan lainnya. Keamanan: Perangkat lunak yang dijamin Kerberos. Apa saja komponen Hadoop Proyek Apache Hadoop memiliki dua komponen inti, yaitu file store bernama Hadoop Distributed File System (HDFS), dan kerangka pemrograman yang disebut MapReduce. Ada sejumlah proyek pendukung yang memanfaatkan HDFS dan MapReduce. Artikel ini akan memberikan ringkasan, dan mendorong Anda untuk mendapatkan buku Haidop Panduan Definitif Sederhana, Edisi ke-3, untuk lebih jelasnya. Definisi di bawah ini dimaksudkan untuk memberikan latar belakang yang cukup bagi Anda untuk menggunakan contoh kode berikut. Artikel ini benar-benar dimaksudkan untuk membantu Anda memulai dengan pengalaman langsung dengan teknologinya. Ini adalah artikel how-to lebih dari artikel apa-apa atau mari-bahas. HDFS. Jika Anda ingin 4000 komputer bekerja pada data Anda, maka Anda akan menyebarkan data Anda dengan lebih baik di 4000 komputer. HDFS melakukan ini untuk Anda. HDFS memiliki beberapa bagian yang bergerak. Datanodes menyimpan data Anda, dan Namenode melacak dari mana barang disimpan. Ada bagian lain, tapi Anda punya cukup banyak untuk memulai. MapReduce. Ini adalah model pemrograman untuk Hadoop. Ada dua fase, tidak mengherankan disebut Map and Reduce. Untuk mengesankan teman Anda katakan pada mereka bahwa ada semacam shuffle antara fase Map and Reduce. JobTracker mengelola 4000 komponen pekerjaan MapReduce Anda. TaskTracker menerima perintah dari JobTracker. Jika Anda suka Java maka kode di Jawa. Jika Anda menyukai SQL atau bahasa non-Jawa lainnya, Anda masih beruntung, Anda bisa menggunakan utilitas bernama Hadoop Streaming. Hadoop Streaming. Sebuah utilitas untuk mengaktifkan kode MapReduce dalam bahasa apa pun: C, Perl, Python, C, Bash, dll. Contohnya termasuk pemeta Python dan peredam AWK. Hive dan Hue. Jika Anda menyukai SQL, Anda akan senang mendengar bahwa Anda dapat menulis SQL dan membiarkan Hive mengubahnya menjadi pekerjaan MapReduce. Tidak, Anda tidak mendapatkan lingkungan ANSI-SQL penuh, tapi Anda mendapatkan 4.000 catatan dan skalabilitas multi-Petabyte. Hue memberi Anda antarmuka grafis berbasis browser untuk melakukan pekerjaan sarang Anda. Babi . Lingkungan pemrograman tingkat tinggi untuk melakukan pengkodean MapReduce. Bahasa babi disebut Pig Latin. Anda mungkin menemukan konvensi penamaan agak tidak konvensional, namun Anda mendapatkan performa harga dan ketersediaan yang luar biasa. Sqoop. Menyediakan transfer data bi-directional antara Hadoop dan database relasional favorit Anda. Oozie. Mengelola alur kerja Hadoop. Ini tidak mengganti penjadwal penjadwal atau BPM Anda, namun ini memberikan percabangan dan kontrol jika-kemudian-lain dalam pekerjaan Hadoop Anda. HBase. Toko nilai kunci super-scalable. Ini bekerja sangat mirip dengan peta hash yang terus-menerus (karena para penggemar python menganggap kamus). Ini bukan database relasional meski ada nama HBase. FlumeNG. Pemuat real time untuk mengalirkan data ke Hadoop. Ini menyimpan data dalam HDFS dan HBase. Anda ingin memulai dengan FlumeNG, yang meningkatkan flume asli. Whirr. Penyediaan awan untuk Hadoop. Anda bisa memulai cluster hanya dalam beberapa menit dengan file konfigurasi yang sangat singkat. Mahout. Mesin belajar untuk Hadoop. Digunakan untuk analisis prediktif dan analisis lanjutan lainnya. Sekering Membuat sistem HDFS terlihat seperti sistem file biasa sehingga Anda bisa menggunakan ls, rm, cd, dan lain-lain pada data HDFS Zookeeper. Digunakan untuk mengatur sinkronisasi cluster. Anda tidak akan banyak bekerja dengan Zookeeper, tapi ini bekerja keras untuk Anda. Jika Anda pikir Anda perlu menulis sebuah program yang menggunakan Zookeeper, Anda sangat cerdas, sangat cerdas, dan bisa menjadi panitia proyek Apache, atau Anda akan mengalami hari yang sangat buruk. Gambar 1 menunjukkan potongan kunci dari Hadoop. Gambar 1. Arsitektur Hadoop HDFS, lapisan bawah, berada pada sekelompok perangkat keras komoditas. Server rack-mount sederhana, masing-masing memiliki CPU inti 2-Hex, disk 6 sampai 12, dan 32 gig ram. Untuk mengurangi pekerjaan peta, lapisan mapper membaca dari disk pada kecepatan sangat tinggi. Pemeta memancarkan pasangan nilai kunci yang dipilah dan dipresentasikan ke peredam, dan lapisan peredam merangkum pasangan nilai kunci. Tidak, Anda tidak perlu meringkas, Anda sebenarnya bisa memiliki pekerjaan pemetaan peta yang hanya memiliki pemotong. Ini harus menjadi lebih mudah untuk memahami ketika Anda sampai ke contoh python-awk. Bagaimana Hadoop mengintegrasikan dengan infrastruktur Informix atau DB2 saya, Hadoop terintegrasi dengan baik dengan database Informix dan DB2 Anda dengan Sqoop. Sqoop adalah implementasi open-source terdepan untuk memindahkan data antara database Hadoop dan relasional. Menggunakan JDBC untuk membaca dan menulis Informix, DB2, MySQL, Oracle, dan sumber lainnya. Ada adapter yang dioptimalkan untuk beberapa database, termasuk Netezza dan DB2. Memulai: Bagaimana cara menjalankan contoh sederhana Hadoop, Hive, Pig, Oozie, dan Sqoop Anda selesai dengan perkenalan dan definisi, sekarang saatnya untuk hal yang baik. Untuk melanjutkan, Anda perlu mendownload VMWare, virtual box, atau gambar lainnya dari Situs Web Cloudera dan mulai melakukan MapReduce Gambar virtual mengasumsikan Anda memiliki komputer 64bit dan salah satu lingkungan virtualisasi yang populer. Sebagian besar lingkungan virtualisasi memiliki download gratis. Saat Anda mencoba booting gambar virtual 64bit Anda mungkin mendapatkan keluhan tentang pengaturan BIOS. Gambar 2 menunjukkan perubahan yang dibutuhkan pada BIOS, dalam kasus ini pada Thinkpad8482. Hati-hati saat melakukan perubahan. Beberapa paket keamanan perusahaan akan memerlukan passcode setelah perubahan BIOS sebelum sistem akan di-reboot. Gambar 2. Pengaturan BIOS untuk tamu virtual 64bit Data besar yang digunakan di sini sebenarnya agak kecil. Intinya bukan membuat laptop Anda terbakar karena menggiling file besar-besaran, tapi untuk menunjukkan sumber data yang menarik, dan memetakan mengurangi pekerjaan yang menjawab pertanyaan yang berarti. Download gambar virtual Hadoop Sangat disarankan agar Anda menggunakan gambar Cloudera untuk menjalankan contoh ini. Hadoop adalah teknologi yang memecahkan masalah. Kemasan gambar Cloudera memungkinkan Anda untuk berfokus pada pertanyaan data besar. Tapi jika Anda memutuskan untuk mengumpulkan semua komponen Anda sendiri, Hadoop telah menjadi masalah, bukan solusinya. Download gambar Gambar CDH4, penawaran terbaru tersedia di sini: Gambar CDH4. Versi Sebelumnya, CDH3, tersedia di sini: gambar CDH3. Anda memiliki pilihan teknologi virtualisasi. Anda bisa mendownload lingkungan virtualisasi gratis dari VMWare dan lainnya. Misalnya, pergi ke vmware dan mendownload vmware-player. Laptop Anda mungkin menjalankan Windows sehingga Anda bisa mendownload vmware-player for windows. Contoh dalam artikel ini akan menggunakan VMWare untuk contoh ini, dan menjalankan Ubuntu Linux dengan menggunakan tar, bukan winzip atau yang setara. Setelah di download, untarunzip sebagai berikut: tar -zxvf cloudera-demo-vm-cdh4.0.0-vmware.tar.gz. Atau, jika Anda menggunakan CDH3, gunakan berikut ini: tar -zxvf cloudera-demo-vm-cdh3u4-vmware.tar.gz Unzip biasanya bekerja pada file tar. Setelah membuka ritsleting, Anda bisa menyalakan gambar sebagai berikut: vmplayer cloudera-demo-vm.vmx. Anda sekarang memiliki layar yang terlihat seperti apa yang ditunjukkan pada Gambar 3. Gambar 3. Citra virtual Cloudera Perintah vmplayer menyeleksi benar dan menghidupkan mesin virtual. Jika Anda menggunakan CDH3, Anda perlu mematikan mesin dan mengubah pengaturan memori. Gunakan ikon tombol daya di sebelah jam di bagian tengah bawah layar untuk mematikan mesin virtual. Anda kemudian memiliki akses edit ke pengaturan mesin virtual. Untuk CDH3 langkah selanjutnya adalah super-charge virtual image dengan lebih banyak RAM. Sebagian besar pengaturan hanya bisa diubah dengan mesin virtual dimatikan. Gambar 4 menunjukkan bagaimana cara mengakses setting dan meningkatkan RAM yang dialokasikan ke lebih dari 2GB. Gambar 4. Menambahkan RAM ke mesin virtual Seperti ditunjukkan pada Gambar 5, Anda dapat mengubah pengaturan jaringan menjadi dijembatani. Dengan pengaturan ini mesin virtual akan mendapatkan alamat IP-nya sendiri. Jika ini membuat masalah pada jaringan Anda, Anda dapat menggunakan Network Address Translation (NAT) secara opsional. Anda akan menggunakan jaringan untuk terhubung ke database. Gambar 5. Mengubah pengaturan jaringan untuk dijembatani Anda dibatasi oleh RAM pada sistem host, jadi jangan mencoba mengalokasikan RAM lebih banyak daripada yang ada pada komputer Anda. Jika Anda melakukannya, komputer akan berjalan sangat lambat. Sekarang, untuk saat ini Anda telah menunggu, maju dan menyalakan mesin virtual. Cloudera pengguna secara otomatis login saat startup. Jika Anda membutuhkannya, password Cloudera adalah: cloudera. Instal Informix dan DB2 Anda memerlukan database untuk bekerja dengan. Jika Anda belum memiliki database, Anda dapat mendownload edisi Pengembang Informix di sini, atau Edisi DB2 Express-C gratis. Alternatif lain untuk menginstal DB2 adalah mendownload gambar VMWare yang telah menginstal DB2 pada sistem operasi SuSE Linux. Login sebagai root, dengan password: password. Beralih ke userID db2inst1. Bekerja seperti root seperti mengendarai mobil tanpa sabuk pengaman. Silakan berbicara dengan DBA lokal Anda tentang mendapatkan database berjalan. Artikel ini tidak akan membahasnya di sini. Jangan mencoba menginstall database di dalam gambar virtual Cloudera karena tidak ada cukup ruang disk kosong. Mesin virtual akan terhubung ke database menggunakan Sqoop yang membutuhkan driver JDBC. Anda harus memiliki driver JDBC untuk database Anda di virtual image. Anda bisa memasang driver Informix disini. Driver Informix JDBC (ingat, hanya driver di dalam gambar virtual, bukan database) instal ditunjukkan pada Listing 1. Daftar 1. Pemasangan driver Informix JDBC Catatan: Pilih subdirektori relatif ke homecloudera agar tidak memerlukan izin root untuk instalasi. Driver DB2 JDBC ada dalam format zip, jadi cukup unzip di direktori tujuan, seperti yang ditunjukkan pada Listing 2. Listing 2. Driver JDBC DB2 menginstal Pengantar singkat tentang HDFS dan MapReduce Sebelum Anda mulai memindahkan data antara database relasional dan Hadoop Anda, Anda memerlukan pengenalan singkat tentang HDFS dan MapReduce. Ada banyak tutorial hello world style untuk Hadoop, jadi contoh di sini dimaksudkan untuk memberi cukup banyak latar belakang agar latihan database masuk akal bagi Anda. HDFS menyediakan penyimpanan di seluruh node dalam cluster Anda. Langkah pertama dalam menggunakan Hadoop adalah memasukkan data ke dalam HDFS. Kode yang ditunjukkan pada Listing 3 mendapat salinan buku oleh Mark Twain dan sebuah buku oleh James Fenimore Cooper dan menyalin teks-teks ini ke dalam HDFS. Kode 3. Load Mark Twain dan James Fenimore Cooper ke HDFS Anda sekarang memiliki dua file dalam sebuah direktori di HDFS. Tolong isi kegembiraanmu. Serius, pada satu simpul dan hanya sekitar 1 megabyte, ini sama serunya dengan menyaksikan cat kering. Tapi jika ini adalah cluster 400 node dan Anda memiliki 5 petabyte live, maka Anda benar-benar akan mengalami masalah yang mengandung kegembiraan Anda. Banyak tutorial Hadoop menggunakan contoh kata yang disertakan dalam contoh jar file. Ternyata banyak analisis melibatkan penghitungan dan penggabungan. Contoh pada Listing 4 menunjukkan cara memanggil penghitung kata. Listing 4. Menghitung kata-kata Twain and Cooper Sufiks .gz pada DS.txt.gz memberitahu Hadoop untuk menghadapi dekompresi sebagai bagian dari pemrosesan Peta-Mengurangi. Cooper adalah sedikit verbose sehingga layak pemadatan. Ada cukup banyak pesan dari menjalankan pekerjaan hitungan kata Anda. Hadoop dengan senang hati memberikan banyak detail tentang program Pemetaan dan Pengurangan yang berjalan atas nama Anda. Baris kritis yang ingin Anda cari ditunjukkan pada Listing 5, termasuk daftar kedua pekerjaan yang gagal dan bagaimana memperbaiki salah satu kesalahan paling umum yang Anda hadapi saat menjalankan MapReduce. Daftar 5. MapReduce pesan - jalan bahagia Apa arti semua pesan Hadoop telah melakukan banyak pekerjaan dan mencoba menceritakannya, termasuk yang berikut. Diperiksa untuk melihat apakah file input ada. Diperiksa untuk melihat apakah direktori output ada dan jika tidak, batalkan pekerjaan. Tidak ada yang lebih buruk dari tabrakan jam perhitungan dengan kesalahan keyboard sederhana. Mendistribusikan file jar Jawa ke semua node yang bertanggung jawab untuk melakukan pekerjaan. Dalam kasus ini, ini hanya satu simpul. Jalankan fase pemetaan pekerjaan. Biasanya ini mem-parsing file input dan memancarkan sepasang nilai kunci. Perhatikan tombol dan nilainya bisa berupa objek. Jalankan fase sortir, yang memilah output pengumpul berdasarkan kuncinya. Jalankan fase pengurangan, biasanya ini merangkum value stream dan menulis output ke HDFS. Membuat banyak metrik pada kemajuan. Gambar 6 menunjukkan contoh halaman web metrik pekerjaan Hadoop setelah menjalankan latihan Hive. Gambar 6. Contoh halaman web Hadoop Apa pekerjaannya, dan di mana hasilnya Keduanya adalah pertanyaan bagus, dan ditunjukkan pada Listing 6. Listing 6. Map-Reduce output Jika Anda menjalankan pekerjaan yang sama dua kali dan lupa untuk melakukannya. Hapus direktori output, Anda akan menerima pesan kesalahan yang ditunjukkan pada Listing 7. Memperbaiki kesalahan ini semudah menghapus direktori. Listing 7. MapReduce message - kegagalan karena output yang sudah ada di HDFS Hadoop menyertakan antarmuka browser untuk memeriksa status HDFS. Gambar 7 menunjukkan output dari jumlah kata kerja. Gambar 7. Menjelajahi HDFS dengan browser Konsol yang lebih canggih tersedia secara gratis dari situs web Cloudera. Ini menyediakan sejumlah kemampuan di luar antarmuka web Hadoop standar. Perhatikan bahwa status kesehatan HDFS pada Gambar 8 ditunjukkan sebagai Bad. Gambar 8. Layanan Hadoop yang dikelola oleh Cloudera Manager Mengapa Bad Karena dalam satu mesin virtual, HDFS tidak dapat membuat tiga salinan blok data. Bila blok kurang tereplikasi, maka ada risiko kehilangan data, sehingga kesehatan sistemnya buruk. Untunglah Anda mencoba menjalankan pekerjaan produksi Hadoop di satu simpul tunggal. Anda tidak terbatas pada Java untuk pekerjaan MapReduce Anda. Contoh terakhir dari MapReduce ini menggunakan Hadoop Streaming untuk mendukung mapper yang ditulis dengan Python dan reducer menggunakan AWK. Tidak, Anda tidak perlu menjadi seorang guru Java untuk menulis Map-Reduce Mark Twain bukan penggemar berat Cooper. Dalam kasus penggunaan ini, Hadoop akan memberikan beberapa kritik sastra sederhana yang membandingkan antara Twain dan Cooper. Tes Fleschkaid menghitung tingkat membaca teks tertentu. Salah satu faktor dalam analisis ini adalah panjang kalimat rata-rata. Kalimat penguraian ternyata lebih rumit dari sekedar mencari karakter periode. Paket openNLP dan paket NLTK Python memiliki parser kalimat yang sangat bagus. Untuk kesederhanaan, contoh yang ditunjukkan pada Listing 8 akan menggunakan kata length sebagai pengganti jumlah suku kata dalam sebuah kata. Jika Anda ingin membawa ini ke tingkat berikutnya, lakukan tes FleschKaid di MapReduce, jelajahi web, dan hitung tingkat membaca untuk situs berita favorit Anda. Kode 8. Kritik sastra mapons berbasis Python Output mapper, untuk kata Twain, adalah: 5 0. Panjang kata numerik diurutkan secara berurutan dan dipresentasikan ke reducer dalam urutan yang diurutkan. Dalam contoh yang ditunjukkan pada Listing 9 dan 10, menyortir data isnt yang diperlukan untuk mendapatkan output yang benar, namun jenisnya dibangun di dalam infrastruktur MapReduce dan akan terjadi pula. Daftar 9. Pengurang AWK untuk Kritik Ilmiah Daftar 10. Menjalankan pemeta Python dan peredam AWK dengan Hadoop Streaming Penggemar Mark Twain dapat dengan senang hati rileks karena mengetahui bahwa Hadoop menemukan Cooper untuk menggunakan kata-kata yang lebih panjang, dan dengan standar deviasi yang mengejutkan (humor yang dimaksudkan). Itu tentu saja mengasumsikan bahwa kata-kata yang lebih pendek lebih baik. Mari melanjutkan, selanjutnya adalah menulis data di HDFS ke Informix dan DB2. Menggunakan Sqoop untuk menulis data dari HDFS ke Informix, DB2, atau MySQL melalui JDBC Proyek Apache Sqoop adalah sumber terbuka JDBC berbasis Hadoop untuk utilitas pergerakan data database. Sqoop awalnya dibuat dalam sebuah hackathon di Cloudera dan kemudian terbuka bersumber. Memindahkan data dari HDFS ke database relasional adalah kasus penggunaan umum. HDFS dan Map-Reduce sangat hebat dalam melakukan pengangkatan berat. Untuk pertanyaan sederhana atau toko back-end untuk situs web, caching Map-Reduce output di toko relasional adalah pola desain yang bagus. Anda dapat menghindari menjalankan ulang Map-Mengurangi jumlah kata dengan hanya Sqooping hasilnya ke Informix dan DB2. Anda telah menghasilkan data tentang Twain dan Cooper, sekarang mari kita memindahkannya ke dalam database, seperti yang ditunjukkan pada Listing 11. Listing 11. Penyiapan driver JDBC Contoh yang ditunjukkan pada Listing 12 sampai 15 disajikan untuk setiap database. Silakan lompat ke contoh yang menarik bagi anda, termasuk Informix, DB2, atau MySQL. Untuk database polyglots, bersenang-senanglah melakukan setiap contoh. Jika database pilihan Anda tidak disertakan di sini, tidak menjadi tantangan besar untuk membuat contoh ini bekerja di tempat lain. Listing 12. Pengguna Informix: Sqoop menuliskan hasil penghitungan kata ke Listing Informix 13. Informix Users: Sqoop menuliskan hasil penghitungan kata ke Listing Informix 14. Pengguna DB2: Sqoop menuliskan hasil penghitungan kata ke Daftar DB2 15 Pengguna MySQL: Sqoop menuliskan hasil penghitungan kata ke MySQL Mengimpor data ke dalam HDFS dari Informix dan DB2 dengan Sqoop Memasukkan data ke Hadoop HDFS juga dapat dilakukan dengan Sqoop. Fungsi bi-directional dikendalikan melalui parameter impor. Database sampel yang disertakan dengan kedua produk memiliki beberapa kumpulan data sederhana yang dapat Anda gunakan untuk tujuan ini. Listing 16 menunjukkan sintaks dan hasil untuk Sqooping setiap server. Untuk pengguna MySQL, silahkan mengadaptasi sintaks dari contoh Informix atau DB2 yang mengikutinya. Kode 16. Impor Sqoop dari database sampel Informix ke HDFS Mengapa ada empat file berbeda yang masing-masing hanya berisi bagian dari data Sqoop adalah utilitas yang sangat paralel. Jika cluster 4000 node yang menjalankan Sqoop melakukan impor throttle penuh dari database, 4000 koneksi akan terlihat sangat mirip dengan penolakan serangan layanan terhadap database. Batas koneksi default Sqoops adalah empat koneksi JDBC. Setiap koneksi menghasilkan file data dalam HDFS. Dengan demikian keempat file tersebut. Tidak perlu khawatir, Anda akan melihat bagaimana Hadoop bekerja di file-file ini tanpa kesulitan. Langkah selanjutnya adalah mengimpor tabel DB2. Seperti ditunjukkan pada Listing 17, dengan menentukan opsi-m 1, tabel tanpa primary key dapat diimpor, dan hasilnya adalah satu file. Kode 17. Impor Sqoop dari database sampel DB2 ke HDFS Menggunakan Hive: Bergabung dengan data Informix dan DB2 Ada kasus penggunaan yang menarik untuk menggabungkan data dari Informix ke DB2. Tidak terlalu menarik untuk dua tabel sepele, tapi menang besar untuk beberapa terabyte atau petabyte data. Ada dua pendekatan mendasar untuk menggabungkan sumber data yang berbeda. Meninggalkan data saat istirahat dan menggunakan teknologi federasi versus memindahkan data ke satu toko untuk melakukan join. Ekonomi dan kinerja Hadoop membuat data bergerak ke HDFS dan melakukan pengangkatan berat dengan MapReduce menjadi pilihan yang mudah. Keterbatasan bandwidth jaringan membuat hambatan mendasar jika mencoba menggabungkan data saat beristirahat dengan teknologi gaya federasi. Hive menyediakan subset dari SQL untuk beroperasi pada sebuah cluster. Ini tidak menyediakan transaksi semantik. Ini bukan pengganti Informix atau DB2. Jika Anda memiliki beberapa angkat berat dalam bentuk meja bergabung, bahkan jika Anda memiliki beberapa meja yang lebih kecil tapi perlu melakukan produk Cartesian yang tidak enak, Hadoop adalah alat pilihan. Untuk menggunakan bahasa query Hive, subset dari SQL disebut metadata tabel Hiveql diperlukan. Anda dapat menentukan metadata terhadap file yang ada di HDFS. Sqoop menyediakan shortcut yang mudah digunakan dengan opsi create-sarang meja. Pengguna MySQL harus merasa bebas untuk menyesuaikan contoh yang ditunjukkan pada Listing 18. Latihan yang menarik akan bergabung dengan MySQL, atau tabel database relasional lainnya, ke spreadsheet besar. Listing 18. Bergabung dengan tabel informix.customer ke tabel db2.staff Ini jauh lebih cantik saat Anda menggunakan Hue untuk antarmuka browser grafis, seperti yang ditunjukkan pada Gambar 9, 10, dan 11. Gambar 9. Beeswax Hue GUI untuk Hive di CDH4 , Lihat query Hiveql Gambar 10. Hue Beeswax GUI untuk Hive, lihat query Hiveql Gambar 11. Browser grafis Hue Beeswax, lihat Informix-DB2 join result Using Pig: Bergabung dengan Informix dan data DB2 Babi adalah bahasa prosedural. Sama seperti Hive, di bawah selimut itu menghasilkan kode MapReduce. Kemudahan penggunaan Hadoop akan terus meningkat seiring semakin banyak proyek tersedia. Sama seperti beberapa dari kita sangat menyukai command line, ada beberapa antarmuka pengguna grafis yang bekerja sangat baik dengan Hadoop. Kode 19 menunjukkan kode Babi yang digunakan untuk bergabung dengan tabel pelanggan dan tabel staf dari contoh sebelumnya. Listing 19. Contoh babi untuk bergabung dengan tabel Informix ke tabel DB2 Bagaimana cara memilih Java, Hive, atau Pig Anda memiliki banyak pilihan untuk pemrograman Hadoop, dan yang terbaik adalah melihat use case untuk memilih alat yang tepat untuk pekerjaan itu. . Anda tidak terbatas pada mengerjakan data relasional tapi artikel ini difokuskan pada Informix, DB2, dan Hadoop yang bermain bagus bersama. Menulis ratusan baris di Jawa untuk menerapkan gaya relasional hash-join adalah buang-buang waktu sejak algoritma Hadoop MapReduce ini sudah tersedia. Bagaimana Anda memilih Ini adalah masalah preferensi pribadi. Beberapa seperti coding mengatur operasi di SQL. Beberapa memilih kode prosedural. Anda harus memilih bahasa yang akan membuat Anda paling produktif. Jika Anda memiliki beberapa sistem relasional dan ingin menggabungkan semua data dengan kinerja hebat dengan harga rendah, Hadoop, MapReduce, Hive, dan Pig siap membantu. Jangan menghapus data Anda: Menggulir partisi dari Informix ke HDFS Sebagian besar database relasional modern dapat mempartisi data. Kasus penggunaan umum adalah partisi menurut jangka waktu. Jendela data tetap disimpan, misalnya interval 18 bulan bergulir, setelah data diarsipkan. Kemampuan partisi detach sangat kuat. Tapi setelah partisi terlepas apa yang dilakukan seseorang dengan data Tape arsip data lama adalah cara yang sangat mahal untuk membuang byte lama. Setelah pindah ke media yang kurang terjangkau, datanya sangat jarang diakses kecuali ada persyaratan audit legal. Hadoop memberikan alternatif yang jauh lebih baik. Memindahkan byte arsip dari partisi lama ke Hadoop memberikan akses berkinerja tinggi dengan biaya jauh lebih rendah daripada menyimpan data di sistem transaksional atau datamartdatawarehouse asli. Data terlalu tua untuk menjadi nilai transaksional, namun masih sangat berharga bagi organisasi untuk analisis jangka panjang. Contoh Sqoop yang ditunjukkan sebelumnya memberikan dasar-dasar bagaimana memindahkan data ini dari partisi relasional ke HDFS. Fuse - Mendapatkan file HDFS Anda melalui NFS Data file InformixDB2flat di HDFS dapat diakses melalui NFS, seperti yang ditunjukkan pada Listing 20. Ini menyediakan operasi baris perintah tanpa menggunakan antarmuka hadoop fs -yadayada. Dari perspektif penggunaan teknologi, NFS sangat terbatas di lingkungan Data Besar, namun contohnya disertakan untuk pengembang dan bukan data yang sangat besar. Listing 20. Menyiapkan Fuse - mengakses data HDFS Anda melalui NFS Flume - membuat file ready load Flume generasi berikutnya, atau flume-ng adalah loader paralel berkecepatan tinggi. Database memiliki pemuat berkecepatan tinggi, jadi bagaimana ini bisa berjalan dengan baik. Kasus penggunaan relasional untuk Flume-ng adalah membuat file siap beban, secara lokal atau jarak jauh, sehingga server relasional dapat menggunakan loader berkecepatan tinggi. Ya, fungsi ini tumpang tindih dengan Sqoop, namun skrip yang ditunjukkan pada Listing 21 dibuat atas permintaan klien khusus untuk gaya beban basis data ini. Listing 21. Mengekspor data HDFS ke file flat untuk loading oleh database Oozie - menambahkan alur kerja untuk banyak pekerjaan Oozie akan menggabungkan beberapa pekerjaan Hadoop. Ada contoh bagus yang disertakan dengan oozie yang digunakan dalam kumpulan kode yang ditunjukkan pada Listing 22. Listing 22. Kontrol pekerjaan dengan oozie HBase, sebuah toko dengan nilai kunci bernilai tinggi adalah sebuah toko dengan nilai kinerja tinggi. Jika kasus penggunaan Anda memerlukan skalabilitas dan hanya memerlukan database yang setara dengan transaksi komit otomatis, HBase mungkin adalah teknologi yang dapat dikendarai. HBase bukan database. Nama itu sangat disayangkan karena bagi beberapa orang, istilah dasar menyiratkan database. Ini memang melakukan pekerjaan yang sangat baik untuk toko dengan nilai kinerja tinggi. Ada beberapa tumpang tindih antara fungsi basis data HBase, Informix, DB2 dan relasional lainnya. Untuk transaksi ACID, kepatuhan penuh SQL, dan beberapa indeks database relasional tradisional adalah pilihan yang jelas. Latihan kode terakhir ini adalah untuk memberikan keakraban dasar dengan HBASE. Ini sederhana menurut desain dan sama sekali tidak mewakili cakupan fungsionalitas HBases. Silakan gunakan contoh ini untuk memahami beberapa kemampuan dasar dalam HBase. HBase, Panduan Definitif, oleh Lars George, adalah bacaan wajib jika Anda berencana untuk menerapkan atau menolak HBase untuk kasus penggunaan khusus Anda. Contoh terakhir ini, yang ditunjukkan pada Listing 23 dan 24, menggunakan antarmuka REST yang dilengkapi dengan HBase untuk memasukkan nilai kunci ke dalam tabel HBase. Penggunaan tes adalah curl based. Kode 23. Buat tabel HBase dan masukkan daftar baris 24. Menggunakan antarmuka HBase REST Kesimpulan Wow, Anda berhasil mencapai akhir, well done Ini hanyalah awal dari pemahaman Hadoop dan bagaimana ia berinteraksi dengan Informix dan DB2. Berikut adalah beberapa saran untuk langkah selanjutnya. Ambil contoh yang ditunjukkan sebelumnya dan sesuaikan dengan server Anda. Anda ingin menggunakan data kecil karena tidak banyak ruang dalam gambar virtual. Dapatkan sertifikasi sebagai Administrator Hadoop. Kunjungi situs Cloudera untuk kursus dan informasi pengujian. Dapatkan sertifikasi sebagai Pengembang Hadoop. Memulai sebuah cluster menggunakan edisi gratis dari Cloudera Manager. Mulailah dengan IBM Big Sheets yang berjalan di atas CDH4. Sumber daya yang dapat didownload Topik terkaitMySQL Pemicu: Meningkatkan informasi tambahan secara otomatis dalam database Pemicu MySQL adalah salah satu fitur baru di MySQL yang membantu menjadikannya sebagai alternatif untuk aplikasi perusahaan besar. Belum lama ini, mereka yang mencari nafkah dengan menggunakan database komersial besar seperti Oracle dan DB2 menunjukkan bahwa MySQL adalah database kecil yang bagus dan cepat namun tidak memiliki fitur penting seperti prosedur, transaksi, dan pemicu yang tersimpan. Seperti versi 5.0 dari MySQL, fitur ini bisa dilewati dari daftar itu. Jadi, apa pemicu MySQL, dan mengapa kemampuan MySQL menggunakannya membuatnya lebih menarik bagi pengguna database yang serius. Secara sederhana, pemicu adalah program kecil yang tersimpan dalam database itu sendiri, dan diaktifkan oleh kejadian database yang sering berasal dari aplikasi. lapisan. Peristiwa database yang memicu ini adalah kueri UPDATE, DELETE, atau INSERT. Pemicu itu sendiri dapat dijalankan sebelum atau sesudah kueri yang memulai itu. Pemicu sering digunakan untuk menjaga integritas data antar tabel aplikasi. Ketika pengguna di situs web melakukan pembelian, misalnya, tindakan pertama yang terjadi di database mungkin berupa kredit dimasukkan ke dalam tabel akuntansi. Dengan cara pemicu aksi ini bisa memulai reaksi berantai peristiwa di meja lainnya selama aplikasi berlangsung. Jumlah produk item dapat dikurangi dalam tabel persediaan, debit dikurangkan dari saldo akun pelanggan di tabel lain, kredit toko diterapkan ke tabel lain. Anda mungkin mengatakan bahwa Anda telah melakukan ini selama aplikasi Anda menggunakan PHP atau Perl atau Python atau kode ASP. Whats the big deal tentang menggunakan pemicu MySQL Nah, ada beberapa keuntungan menggunakan pemicu kode aplikasi untuk menjaga integritas data di seluruh tabel. Pemicu umumnya melakukan jenis tugas yang dijelaskan lebih cepat daripada kode aplikasi, dan dan dapat diaktifkan dengan mudah dan cepat di belakang layar dan tidak perlu menjadi bagian dari kode aplikasi Anda. Ini menghemat waktu dan memberi Anda kode yang berlebihan. Jika Anda pernah memasukkan aplikasi Anda ke bahasa lain, kemungkinan pemicu Anda dapat bertahan di tempat tanpa modifikasi, bersama dengan tabel dan objek database Anda lainnya. Untuk mendemonstrasikan bagaimana pemicu MySQL bekerja, mari kita siapkan dua tabel sederhana pada database dengan baik pada panggilan 8220salesrecords8221 yang memiliki data yang saling bergantung. Bayangkan sebuah database yang melacak catatan penjualan tiga tenaga penjualan di sebuah department store. Mereka bekerja di departemen elektronik yang menjual barang-barang seperti TV. Stereo, dan MP3 player. Kami memiliki tabel utama yang mencatat setiap penjualan yang dilakukan. Ini mencatat jumlah penjualan (saleamt), tanggal (tanggal), nama salesman (nama), nomor id (employeeid), dan produk id (prodid). Nah panggil tabel ini (cukup cerdik) 8220sales8221. Di tabel kedua, kami ingin menyimpan beberapa data yang memungkinkan kami melacak dengan mudah bagaimana masing-masing tenaga penjualan melakukannya. Ini akan mencakup nomor penjual (employeeid), nama (nama), jumlah penjualan (total), dan kolom yang menyimpan setiap jumlah rata-rata penjualan per penjualan (avesale). Kami ingin melihat siapa yang memindahkan item high-end. Nah, panggillah tabel 8220performance8221 ini. Sekarang datang bagian yang sulit. Seperti yang saya sebutkan, pemicu adalah objek database seperti tabel. Pemicu, bagaimanapun, mampu mengeksekusi kode prosedural yang memodifikasi data di tabel Anda. Dalam kasus ini, kami ingin pemicu kami untuk menembak sebelum pernyataan INSERT yang dijalankan di meja penjualan. Saat catatan penjualan dimasukkan ke dalam tabel penjualan, total penjualan harus diperbarui di tabel kinerja. Kode berikut dapat diketik di editor teks favorit Anda dan disisipkan ke konsole Anda di prompt MySQL. Sebelum melakukannya, Anda ingin mengeksekusi baris ini: Kode prosedural kita menggunakan titik koma di akhir pernyataan, jadi kita perlu menetapkan pembatas yang berbeda agar MySQL tahu kapan blok kode kita selesai, dan sehingga tidak berhenti memprosesnya. Blok kami saat mencapai titik koma. Ingatlah bahwa setelah Anda menyelesaikan blok Anda, Anda harus menyetel pembatas kembali ke titik koma, atau akhiri perintah berikutnya dengan pembatas baru. Sebagai contoh jika Anda membuat kesalahan pada blok CREATE TRIGGER dan ingin menghapusnya, DROP TRIGGER tidak akan berfungsi kecuali jika Anda menyetel pembatas kembali ke titik koma. Berikut adalah kode pemicunya: OK, mari kita bahas kodenya. Dengan menggunakan pernyataan CREATE TRIGGER, kami memulai pemicu, menamainya salesbitrg. Pemicu MySQL dapat menyala sebelum atau sesudah acara INSERT, UPDATE atau DELETE. Yang ini menyala sebelum data dimasukkan ke dalam tabel penjualan. Klausa UNTUK SETIAP ROW berarti bahwa blok akan bertindak pada setiap baris yang memenuhi kriteria pernyataan SQL kami. Kata kunci BEGIN dan END menyertakan pernyataan pemicu yang akan dijalankan saat pemicu menyala. Ada dua variabel yang dideklarasikan. Yang pertama adalah numrow yang memeriksa apakah karyawan tersebut telah melakukan penjualan yang akan dimasuki, sudah ada penjualan yang masuk di meja kinerja sebelumnya. Jika tidak ada karyawan yang cocok, maka ini adalah penjualan pertama karyawan, dan ini memenuhi kondisi ELSE dari pernyataan 8220IF kami. Data ini akan dimasukkan sebagai insert dalam tabel kinerja daripada update. Jika jumlah numrow lebih besar dari 0, maka tabel kinerja akan diperbarui. Variabel kedua, totrows, adalah hitungan berapa banyak penjualan yang dimiliki karyawan di dalam tabel penjualan. Nilai ini digunakan untuk menghitung rata-rata penjualan karyawan. Perhitungan sedang dilakukan sebelum penjualan dimasukkan ke dalam tabel penjualan, jadi kami harus menambahkannya ke meja penjualan. Saat tabel kinerja diperbarui total penjualan rata-rata (totrows1). Jika pemicu MySQL kami bekerja dengan benar, tabel kinerja akan menyimpan total total penjualan setiap saleseller, dan juga jumlah rata-rata dari total penjualan mereka. Ini akan melakukan ini terlepas dari kode aplikasi Anda dan menjadi portabel ke platform aplikasi manapun. Untuk memberikan pusaran, masukkan beberapa data ke dalam tabel penjualan dan pantau isi tabel kinerja. Berikut adalah pernyataannya: Ubah nomor dan nama dan coba beberapa kali. (Ingat, seorang karyawan menyimpan jumlah karyawan yang sama untuk setiap penjualannya.) Jika Anda merasa berjiwa petualang, mulailah memikirkan bagaimana pemicu MySQL harus diperluas untuk memperhitungkan laporan UPDATE dan DELETE di atas meja penjualan. E-book gratis Berlangganan newsletter saya dan dapatkan ebook saya tentang Entity Relationship Modeling Principles sebagai hadiah gratis: Apa yang dikatakan pengunjung. Saya hanya tersandung di situs Anda mencari beberapa teori normalisasi dan saya harus mengatakan itu fantastis. Saya telah berada di bidang database selama 10 tahun dan saya belum pernah menemukan situs yang begitu bermanfaat. Terima kasih telah meluangkan waktu untuk menempatkan situs ini bersama-sama.
Opsi saham San-francisco-tax-stock
Kiplinger-best-online-trading