모듈 토크:표 데이터

Module talk

대단함

@Mxn: 훌륭합니다!이제 우리는 베라의 작업처럼 표를 편집하는 더 쉬운 방법이 필요합니다.이 데이터로 해보겠습니다.SJ + 2020년 5월 10일 12:41 (UTC) 회신 [답장]

@Sj: 해커톤 때는 몰랐는데, phab:T251759는 이미 진행 중입니다.빨리 생방송으로 보고 싶어요! - 민응우옌 19:38, 2020년 5월 10일 (UTC) 답장 [답장]
핫도그! 링크 고마워요 :) 그리고 여기 있는 예시적인 시도, 구문 분석하기 좋은 연습.SJ + 2020년 5월 11일 00:26 (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 (UTC) 회신 [답장]
@Mxn: 사실 저는 같은 행의 두 개 이상의 필드가 필요한 경우를 생각하고 있었습니다. 템플릿과 같은 템플릿은 동일한 행에 대해 두 번의 룩업을 수행해야 하며, 매번 다른 필드를 반환해야 합니다.이로 인해 페이지 미리보기/렌더링 시간과 Wikimedia 서버 로드가 증가합니다. - Alexis Jazz 03:11, 2020년 5월 21일 (UTC)Reply [Reply]
@알렉시스 재즈: 완료되었습니다. 테이블이나 목록이 크거나 복잡한 경우에는 테이블 데이터와 직접 상호 작용하는 사용자 지정 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일 (UTC)Reply [Reply]
지금은 0.4초 정도로 성능이 향상된 것 같습니다. - 알렉시스 재즈 08:47, 2020년 6월 1일 (UTC)응답하라 [응답하라]

성능

최근 @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)Reply [reply]

@팀바아:{{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, Reply[reply]에 의해 추가된 이전 서명되지 않은 의견

없습니다.261에서 c:Data의 cases:1인당 COVID-19 슬로베니아 사례.탭Ajdovšchina경우 값은 2204입니다.2021년 6월 24일 (UTC) 01: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}}

2021년 6월 24일 (UTC) 01:00, 회신[회신]

모듈을 만들었습니다. 번째 검색 요구 사항을 처리하기 위한 기능이 있는 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) 응답 [응답]
몇 가지 문제가 있었습니다.
  1. 페이지 이름은 번호가 매겨진 매개 변수이므로 잘라내야 합니다.샌드박스는 지금 이 작업을 수행하며 위의 비샌드박스 예제는 빈 공간과 라인 피드를 제거하기 위해 편집됩니다.
  2. 검색 비교는 문자열 값을 가정합니다.모집단 데이터에는 숫자가 있으므로 비교하기 전에(샌드박스에서 수행한 것처럼) 변환하거나 모듈이 유형을 사용하도록 수정해야 합니다(더 관련됨).
어쨌든, 이것은 커먼즈의 데이터 페이지에 있는 데이터를 어떻게 검색할 수 있는지 보여줍니다.두 가지 예(아프가니스탄 1950과 잠비아 2020)는 올바른 숫자를 얻습니다.Jts1882 talk 16:32, 2021년 6월 30일 (UTC) 응답 [응답]
좋아요! 고마워요, Jts1882.
저는 (그 특정 애플리케이션을) 템플릿에 싸서 여기서 테스트를 시작했습니다.작동은 하지만 시간 제한이 꽤 빨리 지나갑니다.좀 더 효율적으로 만들 수 있을까요?𝐆𝐮𝐫𝐚𝐫𝐚𝐚𝐧𝐠𝐢𝐩𝐚46 2021년 7월 1일 (UTC) 02:46 답장 [reply]
당신은 아마도 당신의 끈이 필요하지 않을 것입니다. 그리고 끈이 그 묘기를 부릴 것입니다. 하지만 저는 그것이 큰 차이를 만들 것이라고 생각하지 않습니다.
한 가지 방법은 모듈이 이름으로 열을 검색할 필요가 없도록 번호로 열을 지정하는 것입니다.불편하지만...빠른.(한편, 다시 말씀드리지만, 그 표에 3개의 열만 있으면 큰 차이가 없다고 생각합니다.)𝐆𝐮𝐫𝐚𝐫𝐚𝐚𝐧𝐠𝐢𝐩𝐚,▁02 2021년 7월 1일 (UTC) 02:55, Reply[reply]
아, 그렇군요, 전화할 때마다 테이블 전체를 내려놔야 합니다.
localdata = args.data 또는 mw.ext.data.get(페이지)
네, 작지 않습니다(2MB 한도입니다).대안은 무엇일까요? 매년 다른 테이블로 자릅니다.그렇게 할 수 있는 일괄 절차가 있습니까?𝐆𝐮𝐫𝐚𝐫𝐚𝐚𝐧𝐠𝐢𝐩𝐚,▁07 2021년 7월 1일 (UTC) 07:40, Reply [reply]
메모리 사용량에 대한 우려 사항이었지만 캐시된 것 같습니다.빈 페이지에서 몇 가지 테스트를 해봤는데 템플릿을 여러 번 호출해도 메모리 사용량이 크게 늘지 않았습니다.통화 횟수에 따라 처리 시간이 증가하는 것은 분명합니다.아프가니스탄과 잠비아 사이에는 눈에 띄는 차이가 없기 때문에 루프가 빠릅니다(예상대로)여전히 가능합니다.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, Reply[reply]
지정된 날짜 매개 변수가 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, Reply[reply]
그것이 뒤에 있는 기능이라고 생각합니다.mw.ext.data.get().
초안에 이상한 점이 있습니다.인구 밀도에 따른 국가종속국 목록.14번째 줄에서 타임아웃 오류가 발생하기 시작하는 동안 59번째 줄까지 다른 줄이 오류 없이 표시됩니다.무엇이 이러한 라인이 시간 초과를 방지하도록 합니까?Jts1882 talk 13:46, 2021년 7월 3일 (UTC) 응답 [응답]
네, 알아챘어요.빌어먹을 좋은 질문.호출 대기열이 코드의 순서를 따르지 않는다고 생각했습니다.𝐆𝐮𝐫𝐚𝐫𝐚𝐧𝐚𝐠𝐚𝐢𝐩,▁3 2021년 7월 3일(UTC) 14:23, Reply[reply]