Veri çözümleri için CSV ve JSON dosyaları ile çalışmaWorking with CSV and JSON files for data solutions

CSV ve JSON başlayan kümeniz, değişimi ve yapılandırılmamış veya yarı yapılandırılmış verileri depolamak için kullanılan en yaygın biçimleri olasılığınız.CSV and JSON are likely the most common formats used for ingesting, exchanging, and storing unstructured or semi-structured data.

CSV biçimi hakkındaAbout CSV format

CSV (virgülle ayrılmış değerler) dosyaları, düz metin sistem arasında tabular veri değişimi için yaygın olarak kullanılır.CSV (comma-separated values) files are commonly used to exchange tabular data between systems in plain text. Bunlar genellikle sütun adları için veri sağlayan bir üst bilgi satırı içeriyor ancak Aksi halde kabul yarı yapılandırılmış.They typically contain a header row that provides column names for the data, but are otherwise considered semi-structured. CSV, hiyerarşik ve ilişkisel veri doğal olarak gösteremez Bunun nedeni, budur.This is due to the fact that CSVs cannot naturally represent hierarchical or relational data. Veri ilişkileri, genellikle birden çok CSV dosyaları burada yabancı anahtarlar, bir veya daha fazla dosya sütunlarında depolanır, ancak bu dosyaları arasındaki ilişkileri biçimi tarafından ifade değil ile işlenir.Data relationships are typically handled with multiple CSV files, where foreign keys are stored in columns of one or more files, but the relationships between those files are not expressed by the format itself. CSV biçimi dosyalarında virgüller, sekme veya boşluk gibi yanı sıra diğer sınırlandırıcılar kullanabilir.Files in CSV format may use other delimiters besides commas, such as tabs or spaces.

Çok sayıda işletme, tüketici ve Bilimsel uygulamalar tarafından desteklenmediğinden bazı sınırlamalara rağmen CSV veri değişimi için popüler bir seçim dosyalarıdır.Despite their limitations, CSV files are a popular choice for data exchange, because they are supported by a wide range of business, consumer, and scientific applications. Örneğin, veritabanı ve elektronik tablo programlar, içeri aktarabilir ve CSV dosyalarına dışarı aktarın.For example, database and spreadsheet programs can import and export CSV files. Benzer şekilde, çoğu batch ve akış veri işleme altyapıları, Spark ve Hadoop gibi yerel olarak serileştirme ve seri kaldırma CSV biçimli dosyalardır desteklemek ve okuma sırasında şema uygulamak için yollar sunar.Similarly, most batch and stream data processing engines, such as Spark and Hadoop, natively support serializing and deserializing CSV-formatted files and offer ways to apply a schema on read. Bu, karşı sorgulayın ve daha verimli bir veri biçimi için daha hızlı işleme bilgileri depolamak için seçenekleri sunarak verilerle çalışmak kolaylaştırır.This makes it easier to work with the data, by offering options to query against it and store the information in a more efficient data format for faster processing.

JSON biçimi hakkındaAbout JSON format

JSON (JavaScript nesne gösterimi) verileri, yarı yapılandırılmış bir biçimde anahtar-değer çiftleri olarak temsil edilir.JSON (JavaScript Object Notation) data is represented as key-value pairs in a semi-structured format. Her ikisi de satır içi üst alt gösterilen veriler ile hiyerarşik bir biçimde veri depolayabilen özelliğine sahip olduğu gibi JSON, XML genellikle karşılaştırılır.JSON is often compared to XML, as both are capable of storing data in hierarchical format, with child data represented inline with its parent. Hem de kendini açıklayan ve insan tarafından okunabilir olması, ancak JSON belgelerini özellikle geliştirilirken REST tabanlı web Hizmetleri ile çevrimiçi veri değişimi yaygın kullanımları için önde gelen daha küçük olma eğilimindedir.Both are self-describing and human readable, but JSON documents tend to be much smaller, leading to their popular use in online data exchange, especially with the advent of REST-based web services.

JSON biçimli dosyaları CSV üzerinde çeşitli avantajları vardır:JSON-formatted files have several benefits over CSV:

  • JSON, ilgili verileri tek bir belge içinde tutmak ve karmaşık ilişkileri göstermek kolaylaştırarak hiyerarşik yapıları tutar.JSON maintains hierarchical structures, making it easier to hold related data in a single document and represent complex relationships.
  • Çoğu programlama dili, JSON nesnelerini seri durumdan çıkarmak için yerel destek sağlar veya basit JSON serileştirme kitaplıkları sağlar.Most programming languages provide native support for deserializing JSON into objects, or provide lightweight JSON serialization libraries.
  • JSON, ilişkisel veri modeline listelerin kullanmak istemiyor çevirileri önlemeye yardımcı nesnelerinin listelerini destekler.JSON supports lists of objects, helping to avoid messy translations of lists into a relational data model.
  • JSON, MongoDB, Couchbase ve Azure Cosmos DB gibi NoSQL veritabanları için yaygın olarak kullanılan bir dosya biçimidir.JSON is a commonly used file format for NoSQL databases, such as MongoDB, Couchbase, and Azure Cosmos DB.

Çok miktarda veri kablo gelen JSON biçiminde olduğundan, yerel olarak veya JSON verilerini seri hale getrime ve dış kitaplıklar kullanılarak JSON ile çalışan web tabanlı çoğu programlama dillerini destekler.Since a lot of data coming across the wire is already in JSON format, most web-based programming languages support working with JSON natively, or through the use of external libraries to serialize and deserialize JSON data. Bu JSON Evrensel desteği mantıksal biçimlerde veri yapısı temsili aracılığıyla sık erişimli veriler için exchange biçimleri ve soğuk veriler için veri depolama kullanımını açmıştır.This universal support for JSON has led to its use in logical formats through data structure representation, exchange formats for hot data, and data storage for cold data.

Çok sayıda batch ve akış veri işleme altyapıları, JSON seri hale getirme ve seri durumundan çıkarma yerel olarak destekler.Many batch and stream data processing engines natively support JSON serialization and deserialization. JSON belgelerini içinde yer alan verileri Parquet veya Avro, gibi daha fazla performans için iyileştirilmiş bir biçimde sonuçta depolanabilir, ancak ham verileri verileri gereken şekilde yeniden işlemeyerek için kritik olan doğru kaynağı olarak görev yapar.Though the data contained within JSON documents may ultimately be stored in a more performance-optimized formats, such as Parquet or Avro, it serves as the raw data for source of truth, which is critical for reprocessing the data as needed.

CSV veya JSON ne zaman kullanılacağını biçimleriWhen to use CSV or JSON formats

CSV, dışarı aktarma ve veri alma ya da analiz ve makine öğrenimi için işleme için daha yaygın olarak kullanılır.CSVs are more commonly used for exporting and importing data, or processing it for analytics and machine learning. JSON biçimli dosyaları avantajların vardır, ancak sık erişimli veriler exchange çözümleri daha yaygındır.JSON-formatted files have the same benefits, but are more common in hot data exchange solutions. JSON belgeleri genellikle tarafından gönderilen web ve mobil cihazlar tarafından IOT (nesnelerin interneti) cihazlar için çevrimiçi işlem gerçekleştirme tek yönlü veya çift yönlü iletişim veya SaaS ve PaaS Hizmetleri ile iletişim kuran ya da sunucusuz istemci uygulamalar tarafından mimariler.JSON documents are often sent by web and mobile devices performing online transactions, by IoT (internet of things) devices for one-way or bidirectional communication, or by client applications communicating with SaaS and PaaS services or serverless architectures.

CSV ve JSON dosya biçimleri hem de kolaylaştırır, benzer olmayan sistemleri veya cihazlar arasında veri değişimi.CSV and JSON file formats both make it easy to exchange data between dissimilar systems or devices. Yarı yapılandırılmış biçimleri neredeyse her türlü veri aktarma esneklik izin ve bu biçimler Evrensel desteği olun bunları çalışmak basit.Their semi-structured formats allow flexibility in transferring almost any type of data, and universal support for these formats make them simple to work with. Her ikisi de, gerçekte daha verimli sorgulama için ikili biçimde işlenen verilerin depolandığı durumlarda ham kaynağı olarak kullanılabilir.Both can be used as the raw source of truth in cases where the processed data is stored in binary formats for more efficient querying.

Azure'da CSV ve JSON verileri ile çalışmaWorking with CSV and JSON data in Azure

Azure, ihtiyaçlarınıza bağlı olarak, CSV ve JSON dosyaları ile çalışmak için çeşitli çözümler sağlar.Azure provides several solutions for working with CSV and JSON files, depending on your needs. Birincil bu dosyalar için Azure depolama veya Azure Data Lake Store yerdir.The primary landing place for these files is either Azure Storage or Azure Data Lake Store. Bunlar birlikte çalışan çoğu Azure Hizmetleri ve diğer metin tabanlı dosyaları ya da nesne depolama hizmeti ile tümleştirin.Most Azure services that work with these and other text-based files integrate with either object storage service. Ancak, bazı durumlarda, doğrudan Azure SQL veya başka bir veri deposunda veri almak için bırakabilirler.In some situations, however, you may opt to directly import the data into Azure SQL or some other data store. SQL Server, depolama ve kolay hale getiren JSON belgeleri ile çalışmak için yerel destek sahip alın ve bu dosya türlerini işlem.SQL Server has native support for storing and working with JSON documents, which makes it easy to import and process those types of files. SQL toplu içeri aktarılacağı gibi bir yardımcı program bir kolayca kullanabileceğiniz CSV dosyalarını içe.You can use a utility like SQL Bulk Import to easily import CSV files.

Ayrıca, JSON dosyalarını doğrudan Azure Blob depolama alanından Azure SQL'e içeri aktarmadan sorgulayabilirsiniz.You can also query JSON files directly from Azure Blob Storage without importing them into Azure SQL. Bu yaklaşım tam bir örnek için bkz: Azure SQL ile JSON dosyaları ile çalışma.For a complete example of this approach, see Work with JSON files with Azure SQL. CSV dosyaları için bu seçenek şu anda kullanılamıyor.Currently this option isn't available for CSV files.

Senaryoya bağlı olarak, gerçekleştirebilir toplu işleme veya gerçek zamanlı işleme veri.Depending on the scenario, you may perform batch processing or real-time processing of the data.

ZorluklarChallenges

Bu biçimler ile çalışırken dikkate alınması gereken bazı zorluklar vardır:There are some challenges to consider when working with these formats:

  • Veri modeli herhangi kısıtlamaları, CSV ve JSON dosyaları ("Çöp içinde out çöp") veri bozulması eğilimlidir.Without any restraints on the data model, CSV and JSON files are prone to data corruption ("garbage in, garbage out"). Örneğin, dosya biçimi, "ABC123" Tarih alanına, örneğin eklemesi engellemez şekilde ya da dosya bir tarih/saat nesnesinde kavramı yoktur.For instance, there's no notion of a date/time object in either file, so the file format does not prevent you from inserting "ABC123" in a date field, for example.

  • CSV ve JSON dosyaları soğuk depolama çözümünüz olarak kullanarak büyük verilerle çalışırken iyi ölçeklenmez.Using CSV and JSON files as your cold storage solution does not scale well when working with big data. Çoğu durumda bunlar paralel işleme için bölümlere bölünemez ve sıkıştırılmış yanı sıra İkili biçimler olamaz.In most cases, they cannot be split into partitions for parallel processing, and cannot be compressed as well as binary formats. Bu genellikle okuma için iyileştirilmiş biçimlere gibi dizinler ve satır içi İstatistikler yer alan verileri hakkında da sağlayan Parquet ve ORC (en iyi duruma getirilmiş satır sütunlu), bu veri depolama ve işleme neden olur.This often leads to processing and storing this data into read-optimized formats such as Parquet and ORC (optimized row columnar), which also provide indexes and inline statistics about the data contained.

  • Bir şema sorgulanması ve çözümlenmesi daha kolay hale getirmek için yarı yapılandırılmış verilere uygulamak gerekebilir.You may need to apply a schema on the semi-structured data to make it easier to query and analyze. Genellikle bu, içinde bir veritabanı gibi ortamınızın veri depolama gereksinimleri ile uyumlu başka bir biçimde veri depolama gerektirir.Typically, this requires storing the data in another form that complies with your environment's data storage needs, such as within a database.