[]
메모리 테이블은 클라이언트에 데이터를 로컬로 저장합니다.
데이터는 addTable을 호출할 때 data 옵션을 통해 직접 제공됩니다.
모든 작업은 메모리에서 수행됩니다.
서버 통신은 포함되지 않습니다.
메모리 테이블은 다음과 같은 경우에 적합합니다.
정적 데이터 집합
클라이언트 측 애플리케이션
프로토타이핑 시나리오
오프라인 사용 사례
IDataSourceOption의 data 속성을 사용합니다.
const dataManager = spread.dataManager();
const table = dataManager.addTable("employees", {
data: [
{ id: 1, name: "Alice", age: 24 },
{ id: 2, name: "Bob", age: 26 },
{ id: 3, name: "Cindy", age: 25 }
]
});이제 테이블은 정의되었지만 아직 초기화되지는 않았습니다.
테이블 생성 후 다음을 호출합니다.
table.fetch();데이터가 이미 로컬에 존재하더라도 fetch()를 호출하면 다음이 보장됩니다.
내부 데이터 상태 초기화
정의된 경우 스키마 처리 적용
View 생성 준비 완료
예제:
table.fetch().then(function () {
const view = table.addView("defaultView");
});모든 테이블 유형은 추가 작업 전에 fetch()가 필요합니다.
data 옵션은 여러 형식을 지원합니다.
JSON 배열(기본값)
CSV 문자열
XML 문자열
data가 JSON 배열인 경우 추가 구성은 필요하지 않습니다.
const table = dataManager.addTable("employees", {
data: [
{ id: 1, name: "Alice", price: 24 },
{ id: 2, name: "Bob", price: 26 },
{ id: 3, name: "Cindy", age: 25 }
]
});JSON은 기본 데이터 형식입니다.
schema.type을 지정하지 않으면 "json"으로 처리됩니다.
CSV 데이터를 문자열로 제공하는 경우 다음을 지정해야 합니다.
schema: {
type: "csv"
}예제:
const table = dataManager.addTable("employees", {
data: `id,name,price
1,Alice,24
2,Bob,26
3,Cindy,25`,
schema: {
type: "csv"
}
});
schema.type = "csv"를 지정하지 않으면 문자열은 일반 JSON 값으로 처리되며 구문 분석이 수행되지 않습니다.
XML 데이터를 제공하는 경우 다음을 지정해야 합니다.
schema.type = "xml"
schema.dataPath (컬렉션이 중첩된 경우)
예제:
const table = dataManager.addTable("employees", {
data: `
<root>
<row>
<id>1</id>
<name>Alice</name>
<price>24</price>
</row>
<row>
<id>2</id>
<name>Bob</name>
<price>26</price>
</row>
<row>
<id>3</id>
<name>Cindy</name>
<price>25</price>
</row>
</root>
`,
schema: {
type: "xml",
dataPath: "root.row"
}
});설명:
type: "xml"은 XML 구문 분석을 활성화합니다.
dataPath는 레코드 컬렉션이 위치한 경로를 지정합니다.
dataPath를 지정하지 않으면 전체 구문 분석 객체가 반환됩니다.
메모리 테이블에서 schema는 두 가지 주요 목적을 가집니다.
데이터 구문 분석(CSV 또는 XML 사용 시)
열 모델링 및 데이터 동작
스키마를 제공하지 않으면:
JSON 데이터는 자동으로 추론됩니다.
열은 객체 키를 기반으로 생성됩니다.
스키마 구성은 스키마 섹션에 설명되어 있습니다.
이 섹션에서는 메모리 테이블에서의 일반적인 사용 방법을 보여줍니다.
schema.type 속성은 data 문자열을 어떻게 구문 분석할지 결정합니다.
schema.type | 예상 데이터 형식 |
|---|---|
json (기본값) | JSON 배열 |
csv | CSV 문자열 |
xml | XML 문자열 |
columnJson | 열 기반 JSON 구조 |
schema.type을 설정하지 않고 문자열을 제공하면 "json"으로 처리되며 CSV 또는 XML로 구문 분석되지 않습니다.
스키마는 열 구조 및 데이터 형식을 정의할 수 있습니다.
const table = dataManager.addTable("orders", {
data: [
{ id: 1, orderDate: "2025-01-01" }
],
schema: {
columns: {
orderDate: {
dataType: "date"
}
}
}
});열 정의를 통해 다음을 수행할 수 있습니다.
데이터 형식 변환
서식 동작 정의
기본 키 정의
고급 열 구성
필드에 중첩 객체가 포함된 경우 spread를 사용하여 여러 열로 펼칠 수 있습니다.
예제:
const table = dataManager.addTable("sales", {
data: [
{
id: 1,
address: {
country: "USA",
state: "California",
city: "San Francisco",
postalCode: "94105"
}
},
{
id: 2,
address: {
country: "Germany",
state: "Berlin",
city: "Berlin",
postalCode: "10115"
}
}
],
schema: {
columns: {
address: {
spread: true
}
}
}
});fetch() 이후 중첩 필드는 개별 열로 변환됩니다.
이를 통해 구조화된 데이터를 View에서 사용할 수 있도록 평면화할 수 있습니다.
메모리 테이블은 다음 형식을 통한 내보내기 및 가져오기를 지원합니다.
JSON
SJS
데이터가 전적으로 메모리에 존재하므로 전체 직렬화를 지원합니다.