Skip to content

Commit a142b55

Browse files
committed
readme
1 parent 860b6ca commit a142b55

4 files changed

Lines changed: 224 additions & 0 deletions

File tree

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# CommonCrawl.Parquet
2+
3+
[English](README.md) | [中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md)
4+
5+
Une bibliothèque .NET pour lire les données d'index Common Crawl stockées au format Parquet. Cette bibliothèque fournit des modèles fortement typés et un lecteur efficace pour traiter les enregistrements d'index Common Crawl.
6+
7+
## Fonctionnalités
8+
9+
- **Modèles fortement typés** : Mappe le schéma Parquet de Common Crawl à la classe C# `IndexTableRecord`.
10+
- **Lecture efficace** : Utilise `ParquetReader` pour lire les fichiers Parquet de manière asynchrone.
11+
- **Filtrage** : Prend en charge les prédicats pour filtrer les enregistrements lors de la lecture.
12+
13+
## Installation
14+
15+
Assurez-vous de disposer des dépendances nécessaires. Ce projet utilise `Parquet.Net`.
16+
17+
## Utilisation
18+
19+
Vous pouvez utiliser `ParquetReader.Instance` pour lire des fichiers Parquet. Le lecteur renvoie un `IAsyncEnumerable<T>`, permettant un traitement efficace de la mémoire.
20+
21+
```csharp
22+
using CommonCrawl.Readers;
23+
using CommonCrawl.Models;
24+
25+
// Lire à partir d'un chemin de fichier
26+
var reader = ParquetReader.Instance;
27+
string filePath = "path/to/cc-index.parquet";
28+
29+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath))
30+
{
31+
Console.WriteLine($"URL : {record.Url}, Date de récupération : {record.FetchTime}");
32+
}
33+
34+
// Lire avec un filtre (par exemple, uniquement les récupérations réussies)
35+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath, r => r.FetchStatus == 200))
36+
{
37+
Console.WriteLine($"URL valide trouvée : {record.Url}");
38+
}
39+
```
40+
41+
## Modèles
42+
43+
### IndexTableRecord
44+
45+
Représente un enregistrement unique dans l'index Common Crawl. Les propriétés clés incluent :
46+
47+
- `Url` : La chaîne URL complète.
48+
- `UrlSurtKey` : Clé URL SURT pour la canonicalisation.
49+
- `UrlHostName` : Nom d'hôte de l'URL.
50+
- `FetchTime` : Horodatage de la capture.
51+
- `FetchStatus` : Code d'état HTTP.
52+
- `ContentMimeType` : Type MIME du contenu.
53+
- `WarcFilename` : Emplacement du fichier WARC dans le bucket S3 de Common Crawl.
54+
- `WarcRecordOffset` & `WarcRecordLength` : Position de l'enregistrement dans le fichier WARC.
55+
56+
Pour une liste complète des champs, reportez-vous au [code source](Models/IndexTableRecord.cs) ou au [Schéma d'index Common Crawl](https://github.com/commoncrawl/cc-index-table/blob/main/src/main/resources/schema/cc-index-schema-flat.json).
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# CommonCrawl.Parquet
2+
3+
[English](README.md) | [中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md)
4+
5+
Parquet形式で保存されたCommon Crawlインデックスデータを読み取るための.NETライブラリです。このライブラリは、Common Crawlインデックスレコードを処理するための強力に型付けされたモデルと効率的なリーダーを提供します。
6+
7+
## 特徴
8+
9+
- **強力に型付けされたモデル**: Common Crawl Parquetスキーマを `IndexTableRecord` C#クラスにマッピングします。
10+
- **効率的な読み取り**: `ParquetReader`を使用してParquetファイルを非同期に読み取ります。
11+
- **フィルタリング**: 読み取り時に述語(Predicate)を使用してレコードをフィルタリングできます。
12+
13+
## インストール
14+
15+
必要な依存関係があることを確認してください。このプロジェクトは `Parquet.Net` を使用しています。
16+
17+
## 使い方
18+
19+
`ParquetReader.Instance` を使用してParquetファイルを読み取ることができます。リーダーは `IAsyncEnumerable<T>` を返すため、メモリ効率の良い処理が可能です。
20+
21+
```csharp
22+
using CommonCrawl.Readers;
23+
using CommonCrawl.Models;
24+
25+
// ファイルパスから読み取る
26+
var reader = ParquetReader.Instance;
27+
string filePath = "path/to/cc-index.parquet";
28+
29+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath))
30+
{
31+
Console.WriteLine($"URL: {record.Url}, 取得日時: {record.FetchTime}");
32+
}
33+
34+
// フィルタを使用して読み取る(例:成功した取得のみ)
35+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath, r => r.FetchStatus == 200))
36+
{
37+
Console.WriteLine($"有効なURLが見つかりました: {record.Url}");
38+
}
39+
```
40+
41+
## モデル
42+
43+
### IndexTableRecord
44+
45+
Common Crawlインデックス内の単一のレコードを表します。主なプロパティは以下の通りです:
46+
47+
- `Url`: 完全なURL文字列。
48+
- `UrlSurtKey`: 正規化のためのSURT URLキー。
49+
- `UrlHostName`: URLのホスト名。
50+
- `FetchTime`: キャプチャのタイムスタンプ。
51+
- `FetchStatus`: HTTPステータスコード。
52+
- `ContentMimeType`: コンテンツのMIMEタイプ。
53+
- `WarcFilename`: Common CrawlのS3バケット内のWARCファイルの場所。
54+
- `WarcRecordOffset` & `WarcRecordLength`: WARCファイル内のレコードの位置。
55+
56+
フィールドの完全なリストについては、[ソースコード](Models/IndexTableRecord.cs) または [Common Crawl インデックススキーマ](https://github.com/commoncrawl/cc-index-table/blob/main/src/main/resources/schema/cc-index-schema-flat.json) を参照してください。

src/CommonCrawl.Parquet/README.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# CommonCrawl.Parquet
2+
3+
[English](README.md) | [中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md)
4+
5+
A .NET library for reading Common Crawl index data stored in Parquet format. This library provides strongly-typed models and an efficient reader to process Common Crawl index records.
6+
7+
## Features
8+
9+
- **Strongly Typed Models**: Maps Common Crawl Parquet schema to the `IndexTableRecord` C# class.
10+
- **Efficient Reading**: Uses `ParquetReader` to read Parquet files asynchronously.
11+
- **Filtering**: Supports predicates to filter records while reading.
12+
13+
## Installation
14+
15+
Ensure you have the necessary dependencies. This project uses `Parquet.Net`.
16+
17+
## Usage
18+
19+
You can use `ParquetReader.Instance` to read Parquet files. The reader returns an `IAsyncEnumerable<T>`, allowing for memory-efficient processing.
20+
21+
```csharp
22+
using CommonCrawl.Readers;
23+
using CommonCrawl.Models;
24+
25+
// Read from a file path
26+
var reader = ParquetReader.Instance;
27+
string filePath = "path/to/cc-index.parquet";
28+
29+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath))
30+
{
31+
Console.WriteLine($"URL: {record.Url}, Fetch Time: {record.FetchTime}");
32+
}
33+
34+
// Read with a filter (e.g., only successful fetches)
35+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath, r => r.FetchStatus == 200))
36+
{
37+
Console.WriteLine($"Found valid URL: {record.Url}");
38+
}
39+
```
40+
41+
## Models
42+
43+
### IndexTableRecord
44+
45+
Represents a single record in the Common Crawl index. Key properties include:
46+
47+
- `Url`: The full URL string.
48+
- `UrlSurtKey`: SURT URL key for canonicalization.
49+
- `UrlHostName`: Hostname of the URL.
50+
- `FetchTime`: Timestamp of the capture.
51+
- `FetchStatus`: HTTP status code.
52+
- `ContentMimeType`: MIME type of the content.
53+
- `WarcFilename`: Location of the WARC file in Common Crawl's S3 bucket.
54+
- `WarcRecordOffset` & `WarcRecordLength`: Position of the record in the WARC file.
55+
56+
For a full list of fields, refer to the [source code](Models/IndexTableRecord.cs) or the [Common Crawl Index Schema](https://github.com/commoncrawl/cc-index-table/blob/main/src/main/resources/schema/cc-index-schema-flat.json).
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# CommonCrawl.Parquet
2+
3+
[English](README.md) | [中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md)
4+
5+
这是一个用于读取 Parquet 格式的 Common Crawl 索引数据的 .NET 库。该库提供了强类型模型和高效的读取器来处理 Common Crawl 索引记录。
6+
7+
## 功能特性
8+
9+
- **强类型模型**:将 Common Crawl Parquet 模式映射到 `IndexTableRecord` C# 类。
10+
- **高效读取**:使用 `ParquetReader` 异步读取 Parquet 文件。
11+
- **过滤支持**:支持在读取时使用谓词(Predicate)过滤记录。
12+
13+
## 安装
14+
15+
请确保您已安装必要的依赖项。本项目使用 `Parquet.Net`
16+
17+
## 使用方法
18+
19+
您可以使用 `ParquetReader.Instance` 读取 Parquet 文件。读取器返回 `IAsyncEnumerable<T>`,支持内存高效的处理方式。
20+
21+
```csharp
22+
using CommonCrawl.Readers;
23+
using CommonCrawl.Models;
24+
25+
// 从文件路径读取
26+
var reader = ParquetReader.Instance;
27+
string filePath = "path/to/cc-index.parquet";
28+
29+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath))
30+
{
31+
Console.WriteLine($"URL: {record.Url}, 抓取时间: {record.FetchTime}");
32+
}
33+
34+
// 带过滤条件的读取 (例如:仅读取成功的抓取)
35+
await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath, r => r.FetchStatus == 200))
36+
{
37+
Console.WriteLine($"发现有效 URL: {record.Url}");
38+
}
39+
```
40+
41+
## 模型
42+
43+
### IndexTableRecord
44+
45+
表示 Common Crawl 索引中的一条记录。主要属性包括:
46+
47+
- `Url`: 完整的 URL 字符串。
48+
- `UrlSurtKey`: 用于规范化的 SURT URL 键。
49+
- `UrlHostName`: URL 的主机名。
50+
- `FetchTime`: 抓取的时间戳。
51+
- `FetchStatus`: HTTP 状态码。
52+
- `ContentMimeType`: 内容的 MIME 类型。
53+
- `WarcFilename`: WARC 文件在 Common Crawl S3 存储桶中的位置。
54+
- `WarcRecordOffset` & `WarcRecordLength`: 记录在 WARC 文件中的位置。
55+
56+
有关字段的完整列表,请参阅 [源代码](Models/IndexTableRecord.cs)[Common Crawl 索引模式](https://github.com/commoncrawl/cc-index-table/blob/main/src/main/resources/schema/cc-index-schema-flat.json)

0 commit comments

Comments
 (0)