모듈 토크:표 데이터
Module talk대단함
@Mxn: 훌륭합니다!이제 우리는 베라의 작업처럼 표를 편집하는 더 쉬운 방법이 필요합니다.이 데이터로 해보겠습니다.SJ + 2020년 5월 10일 12:41 (UTC)
다중 필드
@Mxn: 여러 필드를 확보할 수 있는 기능이 유용합니다(경우에 따라 성능에 상당한 도움이 됩니다).모듈 방식:Covid19 데이터가 사용자에게 호출:EProdromou(WMF)/COVID-19 사례 데이터({#invoke:Covid19 데이터 영역Table CA QC <tr> <td> %s </td> <td> %s <td> <td> %s <td> <td> %s <td> <tr>}}.
예:
{{#선택사항:표 형식 데이터 조회 검색_column=모델 검색_value=XYZ output_column=brand, year format=<li> XYZ는 %s]에서 제작하여 %s로 출시되었습니다.예.tab}} 이게 얼마나 어려울지 모르겠어요. - 알렉시스 재즈 06:11, 2020년 5월 19일 (UTC)하라[하라
- @알렉시스 재즈:아이디어 감사합니다!물론 실현 가능하겠지만, 효율성이나 깔끔함이 최우선 고려 사항이라면 {{#invoke:}을(를) 더욱 개선하는 것이 좋을 것 같습니다.Table data wikitable} 또는 {{Json2table}}: 각 행에서 원하는 형식을 허용하거나 전체 테이블을 목록 형식으로 출력하는 별도의 함수를 만듭니다.또는 각 행이 서로 다른 Commons 데이터 테이블에서 제공되는 사용 사례를 생각하고 있었습니까?민 응우옌💬 2020년 5월 20일 10:19 () 답장
- @알렉시스 재즈:
완료되었습니다. 테이블이나 목록이 크거나 복잡한 경우에는 테이블 데이터와 직접 상호 작용하는 사용자 지정 Lua 기능을 사용하는 것이 더 나을 것으로 예상합니다. 이 기능을 사용하면 서식에 대한 제어 기능을 더 많이 제공하고 룩업을 재사용할 수 있기 때문입니다.Min Nguyễn💬 05:14, 2020년 5월 21일 (UTC) [ - @Mxn: 감사합니다. {{Tabular query}도 업데이트했습니다.[1]이(가) 모듈을 약 0.5초 전에 업데이트한 후 미리 보기에 거의 1초가 걸린 것 같습니다.새로운 기능을 사용하기 위해 템플릿을 업데이트하기 전입니다.이제 업데이트를 했으니 미리보기/렌더링 시간을 약 0.3초로 단축하기를 바랐던 0.5초의 시간이 다시 소요되었습니다. - Alexis Jazz 06:31, 2020년 5월 21일 (Reply ]
- 지금은 0.4초 정도로 성능이 향상된 것 같습니다. - 알렉시스 재즈 08:47, 2020년 6월 1일 (UTC)하라 하라
- @Mxn: 감사합니다. {{Tabular query}도 업데이트했습니다.[1]이(가) 모듈을 약 0.5초 전에 업데이트한 후 미리 보기에 거의 1초가 걸린 것 같습니다.새로운 기능을 사용하기 위해 템플릿을 업데이트하기 전입니다.이제 업데이트를 했으니 미리보기/렌더링 시간을 약 0.3초로 단축하기를 바랐던 0.5초의 시간이 다시 소요되었습니다. - Alexis Jazz 06:31, 2020년 5월 21일 (Reply ]
- @알렉시스 재즈:
성능
최근 @Johnuniq: 개발됨{{NUMBEROF}}c:Data를 사용합니다.GreenC 봇에서 생성한 Wikipedia statistics/data.tab.템플릿이 호출될 때마다 느린 mw.ext.data.get()을 통해 Commons 파일이 검색되기 때문에 성능 문제가 발생했습니다.위키피디아 목록에는 루아의 10초를 초과하는 4,000개 이상의 호출이 있었고 빨간색 오류가 있었습니다.@Pppery: Commons 파일을 페이지당 1번 로드하는 솔루션을 제안했지만 mw.ext.data.get()은 이를 지원하지 않지만 mw.loadData()는 이를 지원합니다.따라서 mw.ext.data.get()은 다음에 사용됩니다.{{NUMBEROF/data}}그런 다음 mw.loadData()에 의해 로드됩니다.{{NUMBEROF}}모듈이 페이지에서 호출되는 빈도에 관계없이 Commons에서 파일이 한 번 로드되도록 합니다.이 모듈에 문제가 있습니까?독자들에게 사용할 것을 권해야 할까요?{{NUMBEROF}}vs. 이 템플릿이 예시로 사용되고 있기 때문에? -- GreenC 02:26, 2020년 5월 24일 (UTC)
- 모듈:NUMBEROF/data는 모듈이 해당 데이터 형식을 위해 특별히 작성되었으며 메인 모듈이 원하는 내용을 알고 있기 때문에 Common 데이터의 캐시를 쉽게 제공할 수 있습니다.더 일반적으로 그렇게 하는 것은 까다로울 것입니다.수백 건의 모듈 호출 사용:표 형식의 데이터는 많은 리소스를 소비합니다.필요하다면 실행 가능한 솔루션을 위해서는 모듈과 같은 맞춤형 모듈이 필요할 것입니다.숫자/데이터.질문에 답하십시오. {{NUMBEROF}}은(는) 사용해야 하지만 여기 문서의 예제는 이 모듈의 유연성을 보여주기 위한 것으로 생각됩니다.서류에는 "그러나 {{NUMBEROF}}" 메모가 포함되어야 한다고 생각합니다.Johnuniq (talk) 03:43, 2020년 5월 24일 (UTC)
- @그린 C:이 모듈은 다양한 사용 사례를 일반적으로 제공하기 위한 것이므로 {{NUMBEROF}}과(와) 다르지만, 만일의 경우를 대비하여 해당 템플릿에 "참고" 링크를 추가했습니다.이 모듈은 {{#invoke:표 형식의 데이터 wikitable}은(는) 몇 개의 값을 조회하는 것이 아니라 특정 페이지에 전체 표가 필요한 상황에 적합합니다.이 기능은 {{Json2table}}의 라인을 따라 더 유연하게 만들 수 있지만 궁극적으로 동일한 Commons 테이블에서 많은 값을 검색하고 같은 페이지에 결과를 포함해야 하는 사용 사례는 페이지의 전체 부분을 빌드하는 전용 Lua 모듈을 보증합니다.그러면 캐슁은 커먼즈 테이블이 한 번만 로드되기 때문에 그다지 관련이 없습니다.Min Nguyễn 2020년 5월 25일 22:44 (UTC) [
행 또는 열 데이터 가져오기
아이디어일 뿐, 기술적 타당성에 대해서는 확신할 수 없습니다.셀 값을 얻는 것과 마찬가지로 열 값이나 행 값을 얻는 것이 가능합니까?출력은 값 대신 csv(또는 일부 구분된 값)여야 합니다.제가 찾고 있는 사용법 중 하나는 {{Graph:Chart}}에서 데이터 계열로 사용하는 것입니다. - Timbaaa -> ping me 13:31, 2020년 7월 14일 (UTC ]
- @팀바아:{{Graph:}와 통합하는 것이 더 쉬울 수도 있지만, 이는 확실히 실현 가능합니다.Lines}}은(는) 샌프란시스코 베이 지역의 COVID-19 대유행에서 시간이 지남에 따라 카운티별 사례에서 볼 수 있듯이 이미 표 데이터와 함께 사용할 수 있습니다.그것은 기존의 것과 꽤 비슷하게 보일 것입니다.
_wikitable()기능, 그러나 단지 수집하는 부분.title의 요소들 중 s.data.schema.fields템플릿이나 문서에서 직접 사용하는 대신 모듈 내부에서 이 기능을 사용할 계획이라면 다음 작업을 수행하는 것이 좋습니다.mw.ext.data.get(…).schema.fields포맷을 최대한 제어할 수 있도록 직접 설정할 수 있습니다.민 응우옌💬 2020년 9월 19일 19:46 (UTC) [
번호로 검색
정말 잘했어!
어떤 이유에서인지, 그것은 저에게 효과가 없습니다.예를 들어, 다음과 같은 요청이 있습니다.
{{#선택사항:표 데이터 조회 COVID-19 슬로베니아 1인당 사례.탭 검색_값 = 261건 검색_열 = 출력_열 = "Ajdovšchina" 대신 빈 문자열을 반환합니다.
살려주세요.игрьтировмео▁bytalk▁comment▁added▁(▁uns (talk • contribes) 2020년 11월 8일 (UTC) 19:14, 에 의해 추가된 이전 서명되지 않은 의견
- 없습니다.
261에서
c:Data의 cases:1인당 COVID-19 슬로베니아 사례.탭Ajdovšchina의 경우 값은 2204입니다.2021년 6월 24일 (UTC) :05, ☎ 회신
둘 이상의 열 검색
두 개 이상의 열을 검색할 수 있습니까?
예:{{#invoke:Tabular data lookup Page name.tab search_value= search_column= search_value2= search_column2= ... ... output_format=}}
예:{{#invoke:Tabular data lookup UN:Total population, both sexes combined.tab search_value=Afghanistan search_column=Country search_value2=1950 search_column2=Year output_column=Value}}
- 모듈을 만들었습니다.두 번째 검색 요구 사항을 처리하기 위한 기능이 있는 Table_data/sandbox.동작되지 않습니다.그러나 기존 모듈이 c:Data:에서 데이터를 반환하도록 할 수 없습니다.UN: 성별을 모두 합친 총 인구. 탭.
{{#선택사항:표 형식 데이터 조회 검색_column=날짜 검색_value=2020-03-16 출력_column=총 확진자 캘리포니아주 산타클라라 카운티 코로나19.tab} | 모듈의 Lua 오류:table_data at line 48: 출력 열 "totalConfirmedCases"를 찾을 수 없습니다. |
{{#선택사항:표 형식 데이터 조회 검색_값 = 우즈베키스탄 검색_열 = 국가 출력_열 = 값 UN:총 인구, 성별 모두 합산.tab} | 40754.388 |
{{#선택사항:표 형식 데이터/샌드박스 조회 UN:성별을 모두 합친 총 인구.탭 검색_값=우즈베키스탄 검색_칼럼=국가출력_칼럼=값} | 40754.388 |
{{#선택사항:표 형식 데이터/샌드박스 조회2 UN:성별을 모두 합친 총 인구.탭 검색_값=우즈베키스탄 검색_칼럼=국가 검색_값2=1950 검색_칼럼2=연도출력_column=값 | 7752.118 |
{{#선택사항:표 형식 데이터/샌드박스 조회2 UN:남녀합산 총인구. 탭검색_값=검색대상_열=국가검색_값2=2020검색_열2=연도출력_column=값 | 18383.955 |
- 제가 무엇을 빠뜨리고 있나요?잘못된 콜론이 있는 페이지 이름일 수 있습니까?Jts1882 talk 13:41, 2021년 6월 30일 (UTC) [
- 몇 가지 문제가 있었습니다.
- 페이지 이름은 번호가 매겨진 매개 변수이므로 잘라내야 합니다.샌드박스는 지금 이 작업을 수행하며 위의 비샌드박스 예제는 빈 공간과 라인 피드를 제거하기 위해 편집됩니다.
- 검색 비교는 문자열 값을 가정합니다.모집단 데이터에는 숫자가 있으므로 비교하기 전에(샌드박스에서 수행한 것처럼) 변환하거나 모듈이 유형을 사용하도록 수정해야 합니다(더 관련됨).
- 어쨌든, 이것은 커먼즈의 데이터 페이지에 있는 데이터를 어떻게 검색할 수 있는지 보여줍니다.두 가지 예(아프가니스탄 1950과 잠비아 2020)는 올바른 숫자를 얻습니다.Jts1882 talk 16:32, 2021년 6월 30일 (UTC) [
- 좋아요! 고마워요, Jts1882.
- 저는 (그 특정 애플리케이션을) 템플릿에 싸서 여기서 테스트를 시작했습니다.작동은 하지만 시간 제한이 꽤 빨리 지나갑니다.좀 더 효율적으로 만들 수 있을까요?𝐆𝐮𝐫𝐚𝐫𝐚𝐚𝐧𝐠𝐢𝐩𝐚46☎ 2021년 7월 1일 (UTC) 0246 답장 [
- 당신은 아마도 당신의 끈이 필요하지 않을 것입니다. 그리고 끈이 그 묘기를 부릴 것입니다. 하지만 저는 그것이 큰 차이를 만들 것이라고 생각하지 않습니다.
- 한 가지 방법은 모듈이 이름으로 열을 검색할 필요가 없도록 번호로 열을 지정하는 것입니다.불편하지만...빠른.(한편, 다시 말씀드리지만, 그 표에 3개의 열만 있으면 큰 차이가 없다고 생각합니다.)𝐆𝐮𝐫𝐚𝐫𝐚𝐚𝐧𝐠𝐢𝐩𝐚,▁02☎ 2021년 7월 1일 (UTC) 02:55,
- 아, 그렇군요, 전화할 때마다 테이블 전체를 내려놔야 합니다.
localdata = args.data 또는 mw.ext.data.get(페이지)
네, 작지 않습니다(2MB 한도입니다).대안은 무엇일까요? 매년 다른 테이블로 자릅니다.그렇게 할 수 있는 일괄 절차가 있습니까?𝐆𝐮𝐫𝐚𝐫𝐚𝐚𝐧𝐠𝐢𝐩𝐚,▁07☎ 2021년 7월 1일 (UTC) 0740, [- 메모리 사용량에 대한 우려 사항이었지만 캐시된 것 같습니다.빈 페이지에서 몇 가지 테스트를 해봤는데 템플릿을 여러 번 호출해도 메모리 사용량이 크게 늘지 않았습니다.통화 횟수에 따라 처리 시간이 증가하는 것은 분명합니다.아프가니스탄과 잠비아 사이에는 눈에 띄는 차이가 없기 때문에 루프가 빠릅니다(예상대로)여전히 가능합니다.
mw.ext.data.get()캐시를 처리하는 데 시간이 걸릴 수 있으므로 매번 로드하지 않더라도 이 작업을 수행해야 합니다.그것은 좀 더 많은 테스트가 필요합니다. - 덧붙여서, 템플릿에는 상당한 오버헤드가 있어 시간이 두 배로 늘어나고 확장 깊이가 높아집니다.호출을 사용하면 각 호출의 시간이 100ms를 약간 초과합니다.Jts1882 talk 08:00, 2021년 7월 1일 (UTC) [
- 저는 최소한으로 하는 함수를 만들었습니다.
p.lookup2_minimal()208호선)시간이 크게 단축되지는 않습니다(실행에 따라 100-150ms).그래서 저는 이런 종류의 템플릿은 한 페이지에 50번 정도만 안전하게 사용될 수 있다고 생각합니다. - 표를 생성하는 경우 모듈과 같은 국가 목록을 사용하는 모듈이 대안입니다.국가 인구.더 많은 작업이 필요하지만 적절한 옵션을 사용하여 필요한 작업을 수행할 수 있습니다.Jts1882 talk 09:05, 2021년 7월 1일 (UTC) [
덧붙여서, 템플릿에는 상당한 오버헤드가 있어 시간이 두 배로 늘어나고 확장 깊이가 높아집니다.호출을 사용하면 각 호출의 시간이 100ms를 약간 초과합니다.
- 그것이 무엇인지 정확히 알 수 있습니까?지정된 날짜 매개 변수가 년인 경우 모듈을 한 번 호출하고, 특정 날짜에 대한 값을 보간하기 위해 두 번 호출합니다(그리고 국가가 테이블에 있는지 확인하기 위해 값보다 먼저 다시 한 번 호출합니다).Jts1882, 당신은 오버헤드를 줄이기 위해 무엇을 해야 한다고 생각합니까?𝐆𝐮𝐫𝐚𝐫𝐚𝐧𝐚𝐢𝐠𝐩𝐚,☎ 2021년 7월 3일(UTC) 08:30,
- 지정된 날짜 매개 변수가 1년이면 두 번, 특정 날짜이면 세 번 호출되는 것으로 보입니다.테스트를 위해 한 번, 출력을 위해 한 번 또는 두 번 호출됩니다.검사가 필요합니까?템플릿에서 제거했고 설명서의 출력은 동일하지만 처리 시간은 덜 걸립니다(반 이상).Jts1882 talk 09:01, 2021년 7월 3일 (UTC []
-
결론
확장시간
의 큰 덩어리가 {{density}}에서 {convert}}(으)로 호출을 대체하여 매우 일반적이고 유연한 모듈을 호출하고 km 및 sqmi에 대한 간단한2 계산으로 대체했습니다.{{Density}}은(는) 여전히transclusion 확장
시간의 77%에 있습니다(이 pts들이 어떻게 합산되는지 확실하지 않음, {{Density}).UN pop}), 65%) 및 초안:인구 밀도에 따른 국가 및 종속국 목록은 여전히 14번째 테이블 행(저지)에서 루아를 능가하는 것으로 보입니다.루아 시간의 93%가 스크리분토_에 의해 소비되는 것을 알 수 있습니다.루아 샌드박스 콜백:: get -- 그게 뭐죠?건배.𝐆𝐮𝐫𝐚𝐫𝐚𝐧𝐚𝐠𝐚𝐢𝐩,☎ 2021년 7월 3일 (UTC) 12:24,
-
- 지정된 날짜 매개 변수가 1년이면 두 번, 특정 날짜이면 세 번 호출되는 것으로 보입니다.테스트를 위해 한 번, 출력을 위해 한 번 또는 두 번 호출됩니다.검사가 필요합니까?템플릿에서 제거했고 설명서의 출력은 동일하지만 처리 시간은 덜 걸립니다(반 이상).Jts1882 talk 09:01, 2021년 7월 3일 (UTC []
- 저는 최소한으로 하는 함수를 만들었습니다.
- 메모리 사용량에 대한 우려 사항이었지만 캐시된 것 같습니다.빈 페이지에서 몇 가지 테스트를 해봤는데 템플릿을 여러 번 호출해도 메모리 사용량이 크게 늘지 않았습니다.통화 횟수에 따라 처리 시간이 증가하는 것은 분명합니다.아프가니스탄과 잠비아 사이에는 눈에 띄는 차이가 없기 때문에 루프가 빠릅니다(예상대로)여전히 가능합니다.
- 아, 그렇군요, 전화할 때마다 테이블 전체를 내려놔야 합니다.
- 몇 가지 문제가 있었습니다.